diff --git a/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.json b/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.json index 3650e0624d8d..253880495c82 100644 --- a/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.json +++ b/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.json @@ -16349,7 +16349,7 @@ "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" }, "description": "The list of tools to include in this version." }, @@ -16858,6 +16858,19 @@ ], "description": "The type of the tool. Always `\"a2a_preview`." }, + "base_url": { + "type": "string", + "format": "uri", + "description": "Base URL of the agent." + }, + "agent_card_path": { + "type": "string", + "description": "The path to the agent card relative to the `base_url`.\nIf not provided, defaults to `/.well-known/agent-card.json`" + }, + "project_connection_id": { + "type": "string", + "description": "The connection ID in the project for the A2A server.\nThe connection stores authentication and other connection details needed to connect to the A2A server." + }, "name": { "type": "string", "description": "Optional user-defined name for this tool or configuration." @@ -16865,13 +16878,26 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "An agent implementing the A2A protocol." + }, + "A2APreviewToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "a2a_preview" + ] }, "base_url": { "type": "string", @@ -16889,10 +16915,10 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" } ], - "description": "An agent implementing the A2A protocol." + "description": "An A2A tool stored in a toolbox." }, "A2AToolCall": { "type": "object", @@ -18553,13 +18579,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "azure_ai_search": { "allOf": [ { @@ -18674,6 +18693,35 @@ }, "description": "A set of index resources used by the `azure_ai_search` tool." }, + "AzureAISearchToolboxTool": { + "type": "object", + "required": [ + "type", + "azure_ai_search" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "azure_ai_search" + ] + }, + "azure_ai_search": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureAISearchToolResource" + } + ], + "description": "The azure ai search index resource." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "An Azure AI Search tool stored in a toolbox." + }, "AzureAITraceDataSourcePreviewEvalRunDataSource": { "type": "object", "required": [ @@ -19206,13 +19254,6 @@ } ], "description": "The Azure Function Tool definition." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -19424,13 +19465,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "bing_custom_search_preview": { "allOf": [ { @@ -19614,13 +19648,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "bing_grounding": { "allOf": [ { @@ -19806,13 +19833,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "browser_automation_preview": { "allOf": [ { @@ -19962,13 +19982,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "outputs": { "allOf": [ { @@ -20198,6 +20211,37 @@ ], "description": "How package dependencies are resolved at deployment time for a code-based hosted agent." }, + "CodeInterpreterToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ] + }, + "container": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.AutoCodeInterpreterToolParam" + } + ], + "description": "The code interpreter container. Can be a container ID or an object that\nspecifies uploaded file IDs to make available to your code, along with an\noptional `memory_limit` setting.\nIf not provided, the service assumes auto." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A code interpreter tool stored in a toolbox." + }, "CompletionMessageToolCallChunk": { "type": "object", "required": [ @@ -24210,13 +24254,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -24226,6 +24263,55 @@ ], "description": "A FabricIQ server-side tool." }, + "FabricIQPreviewToolboxTool": { + "type": "object", + "required": [ + "type", + "project_connection_id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fabric_iq_preview" + ] + }, + "project_connection_id": { + "type": "string", + "description": "The ID of the FabricIQ project connection." + }, + "server_label": { + "type": "string", + "description": "(Optional) The label of the FabricIQ MCP server to connect to." + }, + "server_url": { + "type": "string", + "format": "uri", + "description": "(Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used." + }, + "require_approval": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolRequireApproval" + }, + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "(Optional) Whether the agent requires approval before executing actions. Default is always.", + "default": "always" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A FabricIQ tool stored in a toolbox." + }, "FileDataGenerationJobOutput": { "type": "object", "required": [ @@ -24327,6 +24413,59 @@ ], "description": "FileDatasetVersion Definition" }, + "FileSearchToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ] + }, + "max_num_results": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.integer" + } + ], + "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive." + }, + "ranking_options": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RankingOptions" + } + ], + "description": "Ranking options for search." + }, + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Filters" + }, + { + "type": "null" + } + ] + }, + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The IDs of the vector stores to search." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A file search tool stored in a toolbox." + }, "FilterStrategyType": { "anyOf": [ { @@ -25499,6 +25638,113 @@ }, "description": "Adapter-specific metadata for LoRA models. Drives serving engine configuration at deployment time." }, + "MCPToolboxTool": { + "type": "object", + "required": [ + "type", + "server_label" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp" + ] + }, + "server_label": { + "type": "string", + "description": "A label for this MCP server, used to identify it in tool calls." + }, + "server_url": { + "type": "string", + "format": "uri", + "description": "The URL for the MCP server. One of `server_url` or `connector_id` must be\n provided." + }, + "connector_id": { + "type": "string", + "enum": [ + "connector_dropbox", + "connector_gmail", + "connector_googlecalendar", + "connector_googledrive", + "connector_microsoftteams", + "connector_outlookcalendar", + "connector_outlookemail", + "connector_sharepoint" + ], + "description": "Identifier for service connectors, like those available in ChatGPT. One of\n `server_url` or `connector_id` must be provided. Learn more about service\n connectors [here](/docs/guides/tools-remote-mcp#connectors).\n Currently supported `connector_id` values are:\n - Dropbox: `connector_dropbox`\n - Gmail: `connector_gmail`\n - Google Calendar: `connector_googlecalendar`\n - Google Drive: `connector_googledrive`\n - Microsoft Teams: `connector_microsoftteams`\n - Outlook Calendar: `connector_outlookcalendar`\n - Outlook Email: `connector_outlookemail`\n - SharePoint: `connector_sharepoint`" + }, + "authorization": { + "type": "string", + "description": "An OAuth access token that can be used with a remote MCP server, either\n with a custom MCP server URL or a service connector. Your application\n must handle the OAuth authorization flow and provide the token here." + }, + "server_description": { + "type": "string", + "description": "Optional description of the MCP server, used to provide more context." + }, + "headers": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "string" + } + }, + { + "type": "null" + } + ] + }, + "allowed_tools": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + }, + { + "type": "null" + } + ] + }, + "require_approval": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolRequireApproval" + }, + { + "type": "string", + "enum": [ + "always", + "never" + ] + }, + { + "type": "null" + } + ], + "default": "always" + }, + "defer_loading": { + "type": "boolean", + "description": "Whether this MCP tool is deferred and discovered via tool search." + }, + "project_connection_id": { + "type": "string", + "description": "The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "An MCP tool stored in a toolbox." + }, "ManagedAgentIdentityBlueprintReference": { "type": "object", "required": [ @@ -25826,13 +26072,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "memory_store_name": { "type": "string", "description": "The name of the memory store to use." @@ -26365,13 +26604,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "fabric_dataagent_preview": { "allOf": [ { @@ -27493,13 +27725,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "container": { "anyOf": [ { @@ -32369,13 +32594,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -33931,13 +34149,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -34663,13 +34874,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -41837,13 +42041,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -42056,13 +42253,6 @@ "project_connection_id": { "type": "string", "description": "The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -48807,13 +48997,12 @@ "work_iq_preview": "#/components/schemas/WorkIQPreviewTool", "fabric_iq_preview": "#/components/schemas/FabricIQPreviewTool", "memory_search_preview": "#/components/schemas/MemorySearchPreviewTool", - "toolbox_search_preview": "#/components/schemas/ToolboxSearchPreviewTool", "code_interpreter": "#/components/schemas/OpenAI.CodeInterpreterTool", - "function": "#/components/schemas/OpenAI.FunctionTool", "file_search": "#/components/schemas/OpenAI.FileSearchTool", - "computer_use_preview": "#/components/schemas/OpenAI.ComputerUsePreviewTool", "web_search": "#/components/schemas/OpenAI.WebSearchTool", "mcp": "#/components/schemas/OpenAI.MCPTool", + "function": "#/components/schemas/OpenAI.FunctionTool", + "computer_use_preview": "#/components/schemas/OpenAI.ComputerUsePreviewTool", "image_generation": "#/components/schemas/OpenAI.ImageGenTool", "local_shell": "#/components/schemas/OpenAI.LocalShellToolParam", "shell": "#/components/schemas/OpenAI.FunctionShellToolParam", @@ -49279,7 +49468,6 @@ "memory_search_preview", "work_iq_preview", "fabric_iq_preview", - "toolbox_search_preview", "azure_ai_search", "azure_function", "bing_grounding", @@ -49757,13 +49945,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "custom_search_configuration": { "allOf": [ { @@ -50042,13 +50223,6 @@ } ], "description": "The openapi function definition." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -50149,6 +50323,35 @@ ], "description": "The output of an OpenAPI tool call." }, + "OpenApiToolboxTool": { + "type": "object", + "required": [ + "type", + "openapi" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "openapi" + ] + }, + "openapi": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenApiFunctionDefinition" + } + ], + "description": "The openapi function definition." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "An OpenAPI tool stored in a toolbox." + }, "OptimizationAgentIdentifier": { "type": "object", "required": [ @@ -52757,13 +52960,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "sharepoint_grounding_preview": { "allOf": [ { @@ -53739,7 +53935,7 @@ }, "description": "Policy configuration for a toolbox, including content safety and other governance settings." }, - "ToolboxSearchPreviewTool": { + "ToolboxSearchPreviewToolboxTool": { "type": "object", "required": [ "type" @@ -53751,29 +53947,14 @@ "toolbox_search_preview" ], "description": "The type of the tool. Always `toolbox_search_preview`." - }, - "name": { - "type": "string", - "description": "Optional user-defined name for this tool or configuration." - }, - "description": { - "type": "string", - "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" } ], - "description": "A tool for searching over the agent's toolbox.\nWhen present, deferred tools are hidden from `tools/list` and only\ndiscoverable via `search_tools` queries at runtime." + "description": "A toolbox search tool stored in a toolbox." }, "ToolboxSkill": { "type": "object", @@ -53828,6 +54009,69 @@ ], "description": "A reference to an existing skill to include in a toolbox." }, + "ToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxToolType" + } + ], + "description": "The type of tool." + }, + "name": { + "type": "string", + "description": "Optional user-defined name for this tool or configuration." + }, + "description": { + "type": "string", + "description": "Optional user-defined description for this tool or configuration." + }, + "tool_configs": { + "type": "object", + "unevaluatedProperties": { + "$ref": "#/components/schemas/ToolConfig" + }, + "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "code_interpreter": "#/components/schemas/CodeInterpreterToolboxTool", + "file_search": "#/components/schemas/FileSearchToolboxTool", + "web_search": "#/components/schemas/WebSearchToolboxTool", + "mcp": "#/components/schemas/MCPToolboxTool", + "azure_ai_search": "#/components/schemas/AzureAISearchToolboxTool", + "openapi": "#/components/schemas/OpenApiToolboxTool", + "a2a_preview": "#/components/schemas/A2APreviewToolboxTool", + "work_iq_preview": "#/components/schemas/WorkIQPreviewToolboxTool", + "fabric_iq_preview": "#/components/schemas/FabricIQPreviewToolboxTool", + "toolbox_search_preview": "#/components/schemas/ToolboxSearchPreviewToolboxTool" + } + }, + "description": "An abstract representation of a tool stored in a toolbox." + }, + "ToolboxToolType": { + "type": "string", + "enum": [ + "code_interpreter", + "file_search", + "web_search", + "mcp", + "azure_ai_search", + "openapi", + "a2a_preview", + "work_iq_preview", + "fabric_iq_preview", + "toolbox_search_preview" + ], + "description": "Supported tool types for tools stored in a toolbox." + }, "ToolboxVersionObject": { "type": "object", "required": [ @@ -53880,7 +54124,7 @@ "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" }, "description": "The list of tools contained in this toolbox version." }, @@ -54524,6 +54768,64 @@ }, "description": "A web search configuration for bing custom search" }, + "WebSearchToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search" + ] + }, + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchToolFilters" + }, + { + "type": "null" + } + ] + }, + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchApproximateLocation" + }, + { + "type": "null" + } + ] + }, + "search_context_size": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ], + "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default.", + "default": "medium" + }, + "custom_search_configuration": { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchConfiguration" + } + ], + "description": "The project connections attached to this tool. There can be a maximum of 1 connection\nresource attached to the tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A web search tool stored in a toolbox." + }, "WeeklyRecurrenceSchedule": { "type": "object", "required": [ @@ -54578,13 +54880,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -54594,6 +54889,31 @@ ], "description": "A WorkIQ server-side tool." }, + "WorkIQPreviewToolboxTool": { + "type": "object", + "required": [ + "type", + "project_connection_id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "work_iq_preview" + ] + }, + "project_connection_id": { + "type": "string", + "description": "The ID of the WorkIQ project connection." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A WorkIQ tool stored in a toolbox." + }, "WorkflowActionOutputItem": { "type": "object", "required": [ diff --git a/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml b/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml index 4421cea702ce..c0a63879e83b 100644 --- a/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml +++ b/specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml @@ -10726,7 +10726,7 @@ paths: tools: type: array items: - $ref: '#/components/schemas/OpenAI.Tool' + $ref: '#/components/schemas/ToolboxTool' description: The list of tools to include in this version. skills: type: array @@ -11093,20 +11093,38 @@ components: enum: - a2a_preview description: The type of the tool. Always `"a2a_preview`. + base_url: + type: string + format: uri + description: Base URL of the agent. + agent_card_path: + type: string + description: |- + The path to the agent card relative to the `base_url`. + If not provided, defaults to `/.well-known/agent-card.json` + project_connection_id: + type: string + description: |- + The connection ID in the project for the A2A server. + The connection stores authentication and other connection details needed to connect to the A2A server. name: type: string description: Optional user-defined name for this tool or configuration. description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: An agent implementing the A2A protocol. + A2APreviewToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - a2a_preview base_url: type: string format: uri @@ -11122,8 +11140,8 @@ components: The connection ID in the project for the A2A server. The connection stores authentication and other connection details needed to connect to the A2A server. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: An agent implementing the A2A protocol. + - $ref: '#/components/schemas/ToolboxTool' + description: An A2A tool stored in a toolbox. A2AToolCall: type: object required: @@ -12220,14 +12238,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. azure_ai_search: allOf: - $ref: '#/components/schemas/AzureAISearchToolResource' @@ -12299,6 +12309,23 @@ components: The indices attached to this agent. There can be a maximum of 1 index resource attached to the agent. description: A set of index resources used by the `azure_ai_search` tool. + AzureAISearchToolboxTool: + type: object + required: + - type + - azure_ai_search + properties: + type: + type: string + enum: + - azure_ai_search + azure_ai_search: + allOf: + - $ref: '#/components/schemas/AzureAISearchToolResource' + description: The azure ai search index resource. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: An Azure AI Search tool stored in a toolbox. AzureAITraceDataSourcePreviewEvalRunDataSource: type: object required: @@ -12644,14 +12671,6 @@ components: allOf: - $ref: '#/components/schemas/AzureFunctionDefinition' description: The Azure Function Tool definition. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: The input definition information for an Azure Function Tool, as used to configure an Agent. @@ -12792,14 +12811,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. bing_custom_search_preview: allOf: - $ref: '#/components/schemas/BingCustomSearchToolParameters' @@ -12924,14 +12935,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. bing_grounding: allOf: - $ref: '#/components/schemas/BingGroundingSearchToolParameters' @@ -13047,14 +13050,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. browser_automation_preview: allOf: - $ref: '#/components/schemas/BrowserAutomationToolParameters' @@ -13148,14 +13143,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. outputs: allOf: - $ref: '#/components/schemas/StructuredOutputDefinition' @@ -13329,6 +13316,27 @@ components: - bundled - remote_build description: How package dependencies are resolved at deployment time for a code-based hosted agent. + CodeInterpreterToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - code_interpreter + container: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.AutoCodeInterpreterToolParam' + description: |- + The code interpreter container. Can be a container ID or an object that + specifies uploaded file IDs to make available to your code, along with an + optional `memory_limit` setting. + If not provided, the service assumes auto. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A code interpreter tool stored in a toolbox. CompletionMessageToolCallChunk: type: object required: @@ -16298,17 +16306,39 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A FabricIQ server-side tool. + FabricIQPreviewToolboxTool: + type: object + required: + - type + - project_connection_id + properties: + type: + type: string + enum: + - fabric_iq_preview + project_connection_id: + type: string + description: The ID of the FabricIQ project connection. + server_label: + type: string + description: (Optional) The label of the FabricIQ MCP server to connect to. + server_url: + type: string + format: uri + description: (Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used. + require_approval: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPToolRequireApproval' + - type: string + - type: 'null' + description: (Optional) Whether the agent requires approval before executing actions. Default is always. + default: always + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A FabricIQ tool stored in a toolbox. FileDataGenerationJobOutput: type: object required: @@ -16375,6 +16405,35 @@ components: allOf: - $ref: '#/components/schemas/DatasetVersionUpdate' description: FileDatasetVersion Definition + FileSearchToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - file_search + max_num_results: + allOf: + - $ref: '#/components/schemas/OpenAI.integer' + description: The maximum number of results to return. This number should be between 1 and 50 inclusive. + ranking_options: + allOf: + - $ref: '#/components/schemas/OpenAI.RankingOptions' + description: Ranking options for search. + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.Filters' + - type: 'null' + vector_store_ids: + type: array + items: + type: string + description: The IDs of the vector stores to search. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A file search tool stored in a toolbox. FilterStrategyType: anyOf: - type: string @@ -17134,6 +17193,89 @@ components: format: float description: Dropout rate used during training. Informational — not used at serving time. description: Adapter-specific metadata for LoRA models. Drives serving engine configuration at deployment time. + MCPToolboxTool: + type: object + required: + - type + - server_label + properties: + type: + type: string + enum: + - mcp + server_label: + type: string + description: A label for this MCP server, used to identify it in tool calls. + server_url: + type: string + format: uri + description: |- + The URL for the MCP server. One of `server_url` or `connector_id` must be + provided. + connector_id: + type: string + enum: + - connector_dropbox + - connector_gmail + - connector_googlecalendar + - connector_googledrive + - connector_microsoftteams + - connector_outlookcalendar + - connector_outlookemail + - connector_sharepoint + description: |- + Identifier for service connectors, like those available in ChatGPT. One of + `server_url` or `connector_id` must be provided. Learn more about service + connectors [here](/docs/guides/tools-remote-mcp#connectors). + Currently supported `connector_id` values are: + - Dropbox: `connector_dropbox` + - Gmail: `connector_gmail` + - Google Calendar: `connector_googlecalendar` + - Google Drive: `connector_googledrive` + - Microsoft Teams: `connector_microsoftteams` + - Outlook Calendar: `connector_outlookcalendar` + - Outlook Email: `connector_outlookemail` + - SharePoint: `connector_sharepoint` + authorization: + type: string + description: |- + An OAuth access token that can be used with a remote MCP server, either + with a custom MCP server URL or a service connector. Your application + must handle the OAuth authorization flow and provide the token here. + server_description: + type: string + description: Optional description of the MCP server, used to provide more context. + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + allowed_tools: + anyOf: + - type: array + items: + type: string + - $ref: '#/components/schemas/OpenAI.MCPToolFilter' + - type: 'null' + require_approval: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPToolRequireApproval' + - type: string + enum: + - always + - never + - type: 'null' + default: always + defer_loading: + type: boolean + description: Whether this MCP tool is deferred and discovered via tool search. + project_connection_id: + type: string + description: The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: An MCP tool stored in a toolbox. ManagedAgentIdentityBlueprintReference: type: object required: @@ -17341,14 +17483,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. memory_store_name: type: string description: The name of the memory store to use. @@ -17691,14 +17825,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. fabric_dataagent_preview: allOf: - $ref: '#/components/schemas/FabricDataAgentToolParameters' @@ -18476,14 +18602,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. container: anyOf: - type: string @@ -21770,14 +21888,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). @@ -22801,14 +22911,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that allows the model to execute shell commands. @@ -23428,14 +23530,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that generates images using the GPT image models. @@ -28289,14 +28383,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that allows the model to execute shell commands in a local environment. @@ -28448,14 +28534,6 @@ components: project_connection_id: type: string description: The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: |- @@ -33563,13 +33641,12 @@ components: work_iq_preview: '#/components/schemas/WorkIQPreviewTool' fabric_iq_preview: '#/components/schemas/FabricIQPreviewTool' memory_search_preview: '#/components/schemas/MemorySearchPreviewTool' - toolbox_search_preview: '#/components/schemas/ToolboxSearchPreviewTool' code_interpreter: '#/components/schemas/OpenAI.CodeInterpreterTool' - function: '#/components/schemas/OpenAI.FunctionTool' file_search: '#/components/schemas/OpenAI.FileSearchTool' - computer_use_preview: '#/components/schemas/OpenAI.ComputerUsePreviewTool' web_search: '#/components/schemas/OpenAI.WebSearchTool' mcp: '#/components/schemas/OpenAI.MCPTool' + function: '#/components/schemas/OpenAI.FunctionTool' + computer_use_preview: '#/components/schemas/OpenAI.ComputerUsePreviewTool' image_generation: '#/components/schemas/OpenAI.ImageGenTool' local_shell: '#/components/schemas/OpenAI.LocalShellToolParam' shell: '#/components/schemas/OpenAI.FunctionShellToolParam' @@ -33916,7 +33993,6 @@ components: - memory_search_preview - work_iq_preview - fabric_iq_preview - - toolbox_search_preview - azure_ai_search - azure_function - bing_grounding @@ -34244,14 +34320,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. custom_search_configuration: allOf: - $ref: '#/components/schemas/WebSearchConfiguration' @@ -34437,14 +34505,6 @@ components: allOf: - $ref: '#/components/schemas/OpenApiFunctionDefinition' description: The openapi function definition. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: The input definition information for an OpenAPI tool as used to configure an agent. @@ -34506,6 +34566,23 @@ components: allOf: - $ref: '#/components/schemas/OpenAI.OutputItem' description: The output of an OpenAPI tool call. + OpenApiToolboxTool: + type: object + required: + - type + - openapi + properties: + type: + type: string + enum: + - openapi + openapi: + allOf: + - $ref: '#/components/schemas/OpenApiFunctionDefinition' + description: The openapi function definition. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: An OpenAPI tool stored in a toolbox. OptimizationAgentIdentifier: type: object required: @@ -36252,14 +36329,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. sharepoint_grounding_preview: allOf: - $ref: '#/components/schemas/SharepointGroundingToolParameters' @@ -36901,7 +36970,7 @@ components: - $ref: '#/components/schemas/RaiConfig' description: Responsible AI content filtering configuration. description: Policy configuration for a toolbox, including content safety and other governance settings. - ToolboxSearchPreviewTool: + ToolboxSearchPreviewToolboxTool: type: object required: - type @@ -36911,26 +36980,9 @@ components: enum: - toolbox_search_preview description: The type of the tool. Always `toolbox_search_preview`. - name: - type: string - description: Optional user-defined name for this tool or configuration. - description: - type: string - description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - A tool for searching over the agent's toolbox. - When present, deferred tools are hidden from `tools/list` and only - discoverable via `search_tools` queries at runtime. + - $ref: '#/components/schemas/ToolboxTool' + description: A toolbox search tool stored in a toolbox. ToolboxSkill: type: object required: @@ -36965,6 +37017,57 @@ components: allOf: - $ref: '#/components/schemas/ToolboxSkill' description: A reference to an existing skill to include in a toolbox. + ToolboxTool: + type: object + required: + - type + properties: + type: + allOf: + - $ref: '#/components/schemas/ToolboxToolType' + description: The type of tool. + name: + type: string + description: Optional user-defined name for this tool or configuration. + description: + type: string + description: Optional user-defined description for this tool or configuration. + tool_configs: + type: object + unevaluatedProperties: + $ref: '#/components/schemas/ToolConfig' + description: |- + Per-tool configuration map. Keys are tool names or `*` (catch-all default). + Resolution order: exact tool name match takes priority over `*`. + Unknown tool names are silently ignored at runtime. + discriminator: + propertyName: type + mapping: + code_interpreter: '#/components/schemas/CodeInterpreterToolboxTool' + file_search: '#/components/schemas/FileSearchToolboxTool' + web_search: '#/components/schemas/WebSearchToolboxTool' + mcp: '#/components/schemas/MCPToolboxTool' + azure_ai_search: '#/components/schemas/AzureAISearchToolboxTool' + openapi: '#/components/schemas/OpenApiToolboxTool' + a2a_preview: '#/components/schemas/A2APreviewToolboxTool' + work_iq_preview: '#/components/schemas/WorkIQPreviewToolboxTool' + fabric_iq_preview: '#/components/schemas/FabricIQPreviewToolboxTool' + toolbox_search_preview: '#/components/schemas/ToolboxSearchPreviewToolboxTool' + description: An abstract representation of a tool stored in a toolbox. + ToolboxToolType: + type: string + enum: + - code_interpreter + - file_search + - web_search + - mcp + - azure_ai_search + - openapi + - a2a_preview + - work_iq_preview + - fabric_iq_preview + - toolbox_search_preview + description: Supported tool types for tools stored in a toolbox. ToolboxVersionObject: type: object required: @@ -37010,7 +37113,7 @@ components: tools: type: array items: - $ref: '#/components/schemas/OpenAI.Tool' + $ref: '#/components/schemas/ToolboxTool' description: The list of tools contained in this toolbox version. skills: type: array @@ -37435,6 +37538,40 @@ components: type: string description: Name of the custom configuration instance given to config. description: A web search configuration for bing custom search + WebSearchToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - web_search + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchToolFilters' + - type: 'null' + user_location: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchApproximateLocation' + - type: 'null' + search_context_size: + type: string + enum: + - low + - medium + - high + description: High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. + default: medium + custom_search_configuration: + allOf: + - $ref: '#/components/schemas/WebSearchConfiguration' + description: |- + The project connections attached to this tool. There can be a maximum of 1 connection + resource attached to the tool. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A web search tool stored in a toolbox. WeeklyRecurrenceSchedule: type: object required: @@ -37474,17 +37611,25 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A WorkIQ server-side tool. + WorkIQPreviewToolboxTool: + type: object + required: + - type + - project_connection_id + properties: + type: + type: string + enum: + - work_iq_preview + project_connection_id: + type: string + description: The ID of the WorkIQ project connection. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A WorkIQ tool stored in a toolbox. WorkflowActionOutputItem: type: object required: diff --git a/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.json b/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.json index 10a7bf5a5f63..62506244d560 100644 --- a/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.json +++ b/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.json @@ -19300,7 +19300,7 @@ "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" }, "description": "The list of tools to include in this version." }, @@ -19809,6 +19809,19 @@ ], "description": "The type of the tool. Always `\"a2a_preview`." }, + "base_url": { + "type": "string", + "format": "uri", + "description": "Base URL of the agent." + }, + "agent_card_path": { + "type": "string", + "description": "The path to the agent card relative to the `base_url`.\nIf not provided, defaults to `/.well-known/agent-card.json`" + }, + "project_connection_id": { + "type": "string", + "description": "The connection ID in the project for the A2A server.\nThe connection stores authentication and other connection details needed to connect to the A2A server." + }, "name": { "type": "string", "description": "Optional user-defined name for this tool or configuration." @@ -19816,13 +19829,26 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "An agent implementing the A2A protocol." + }, + "A2APreviewToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "a2a_preview" + ] }, "base_url": { "type": "string", @@ -19840,10 +19866,10 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" } ], - "description": "An agent implementing the A2A protocol." + "description": "An A2A tool stored in a toolbox." }, "A2AToolCall": { "type": "object", @@ -21971,13 +21997,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "azure_ai_search": { "allOf": [ { @@ -22092,6 +22111,35 @@ }, "description": "A set of index resources used by the `azure_ai_search` tool." }, + "AzureAISearchToolboxTool": { + "type": "object", + "required": [ + "type", + "azure_ai_search" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "azure_ai_search" + ] + }, + "azure_ai_search": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureAISearchToolResource" + } + ], + "description": "The azure ai search index resource." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "An Azure AI Search tool stored in a toolbox." + }, "AzureAITraceDataSourcePreviewEvalRunDataSource": { "type": "object", "required": [ @@ -22624,13 +22672,6 @@ } ], "description": "The Azure Function Tool definition." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -22842,13 +22883,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "bing_custom_search_preview": { "allOf": [ { @@ -23032,13 +23066,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "bing_grounding": { "allOf": [ { @@ -23224,13 +23251,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "browser_automation_preview": { "allOf": [ { @@ -23380,13 +23400,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "outputs": { "allOf": [ { @@ -23616,6 +23629,37 @@ ], "description": "How package dependencies are resolved at deployment time for a code-based hosted agent." }, + "CodeInterpreterToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ] + }, + "container": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.AutoCodeInterpreterToolParam" + } + ], + "description": "The code interpreter container. Can be a container ID or an object that\nspecifies uploaded file IDs to make available to your code, along with an\noptional `memory_limit` setting.\nIf not provided, the service assumes auto." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A code interpreter tool stored in a toolbox." + }, "CompletionMessageToolCallChunk": { "type": "object", "required": [ @@ -28686,13 +28730,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -28702,6 +28739,55 @@ ], "description": "A FabricIQ server-side tool." }, + "FabricIQPreviewToolboxTool": { + "type": "object", + "required": [ + "type", + "project_connection_id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fabric_iq_preview" + ] + }, + "project_connection_id": { + "type": "string", + "description": "The ID of the FabricIQ project connection." + }, + "server_label": { + "type": "string", + "description": "(Optional) The label of the FabricIQ MCP server to connect to." + }, + "server_url": { + "type": "string", + "format": "uri", + "description": "(Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used." + }, + "require_approval": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolRequireApproval" + }, + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "(Optional) Whether the agent requires approval before executing actions. Default is always.", + "default": "always" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A FabricIQ tool stored in a toolbox." + }, "FileDataGenerationJobOutput": { "type": "object", "required": [ @@ -28803,6 +28889,59 @@ ], "description": "FileDatasetVersion Definition" }, + "FileSearchToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ] + }, + "max_num_results": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.integer" + } + ], + "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive." + }, + "ranking_options": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RankingOptions" + } + ], + "description": "Ranking options for search." + }, + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Filters" + }, + { + "type": "null" + } + ] + }, + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The IDs of the vector stores to search." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A file search tool stored in a toolbox." + }, "FilterStrategyType": { "anyOf": [ { @@ -30048,6 +30187,113 @@ }, "description": "Adapter-specific metadata for LoRA models. Drives serving engine configuration at deployment time." }, + "MCPToolboxTool": { + "type": "object", + "required": [ + "type", + "server_label" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp" + ] + }, + "server_label": { + "type": "string", + "description": "A label for this MCP server, used to identify it in tool calls." + }, + "server_url": { + "type": "string", + "format": "uri", + "description": "The URL for the MCP server. One of `server_url` or `connector_id` must be\n provided." + }, + "connector_id": { + "type": "string", + "enum": [ + "connector_dropbox", + "connector_gmail", + "connector_googlecalendar", + "connector_googledrive", + "connector_microsoftteams", + "connector_outlookcalendar", + "connector_outlookemail", + "connector_sharepoint" + ], + "description": "Identifier for service connectors, like those available in ChatGPT. One of\n `server_url` or `connector_id` must be provided. Learn more about service\n connectors [here](/docs/guides/tools-remote-mcp#connectors).\n Currently supported `connector_id` values are:\n - Dropbox: `connector_dropbox`\n - Gmail: `connector_gmail`\n - Google Calendar: `connector_googlecalendar`\n - Google Drive: `connector_googledrive`\n - Microsoft Teams: `connector_microsoftteams`\n - Outlook Calendar: `connector_outlookcalendar`\n - Outlook Email: `connector_outlookemail`\n - SharePoint: `connector_sharepoint`" + }, + "authorization": { + "type": "string", + "description": "An OAuth access token that can be used with a remote MCP server, either\n with a custom MCP server URL or a service connector. Your application\n must handle the OAuth authorization flow and provide the token here." + }, + "server_description": { + "type": "string", + "description": "Optional description of the MCP server, used to provide more context." + }, + "headers": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "string" + } + }, + { + "type": "null" + } + ] + }, + "allowed_tools": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + }, + { + "type": "null" + } + ] + }, + "require_approval": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolRequireApproval" + }, + { + "type": "string", + "enum": [ + "always", + "never" + ] + }, + { + "type": "null" + } + ], + "default": "always" + }, + "defer_loading": { + "type": "boolean", + "description": "Whether this MCP tool is deferred and discovered via tool search." + }, + "project_connection_id": { + "type": "string", + "description": "The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "An MCP tool stored in a toolbox." + }, "ManagedAgentIdentityBlueprint": { "type": "object", "required": [ @@ -30387,13 +30633,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "memory_store_name": { "type": "string", "description": "The name of the memory store to use." @@ -30447,13 +30686,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "memory_store_name": { "type": "string", "description": "The name of the memory store to use." @@ -31021,13 +31253,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "fabric_dataagent_preview": { "allOf": [ { @@ -32149,13 +32374,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "container": { "anyOf": [ { @@ -37025,13 +37243,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -38587,13 +38798,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -39319,13 +39523,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -46493,13 +46690,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -46712,13 +46902,6 @@ "project_connection_id": { "type": "string", "description": "The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -53487,13 +53670,12 @@ "fabric_iq_preview": "#/components/schemas/FabricIQPreviewTool", "memory_search_preview": "#/components/schemas/MemorySearchPreviewTool", "memory_search": "#/components/schemas/MemorySearchTool", - "toolbox_search_preview": "#/components/schemas/ToolboxSearchPreviewTool", "code_interpreter": "#/components/schemas/OpenAI.CodeInterpreterTool", - "function": "#/components/schemas/OpenAI.FunctionTool", "file_search": "#/components/schemas/OpenAI.FileSearchTool", - "computer_use_preview": "#/components/schemas/OpenAI.ComputerUsePreviewTool", "web_search": "#/components/schemas/OpenAI.WebSearchTool", "mcp": "#/components/schemas/OpenAI.MCPTool", + "function": "#/components/schemas/OpenAI.FunctionTool", + "computer_use_preview": "#/components/schemas/OpenAI.ComputerUsePreviewTool", "image_generation": "#/components/schemas/OpenAI.ImageGenTool", "local_shell": "#/components/schemas/OpenAI.LocalShellToolParam", "shell": "#/components/schemas/OpenAI.FunctionShellToolParam", @@ -53959,7 +54141,6 @@ "memory_search_preview", "work_iq_preview", "fabric_iq_preview", - "toolbox_search_preview", "azure_ai_search", "azure_function", "bing_grounding", @@ -54438,13 +54619,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "custom_search_configuration": { "allOf": [ { @@ -54723,13 +54897,6 @@ } ], "description": "The openapi function definition." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -54830,6 +54997,35 @@ ], "description": "The output of an OpenAPI tool call." }, + "OpenApiToolboxTool": { + "type": "object", + "required": [ + "type", + "openapi" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "openapi" + ] + }, + "openapi": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenApiFunctionDefinition" + } + ], + "description": "The openapi function definition." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "An OpenAPI tool stored in a toolbox." + }, "OptimizationAgentIdentifier": { "type": "object", "required": [ @@ -57531,13 +57727,6 @@ "type": "string", "description": "Optional user-defined description for this tool or configuration." }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." - }, "sharepoint_grounding_preview": { "allOf": [ { @@ -58539,7 +58728,7 @@ }, "description": "Policy configuration for a toolbox, including content safety and other governance settings." }, - "ToolboxSearchPreviewTool": { + "ToolboxSearchPreviewToolboxTool": { "type": "object", "required": [ "type" @@ -58551,29 +58740,14 @@ "toolbox_search_preview" ], "description": "The type of the tool. Always `toolbox_search_preview`." - }, - "name": { - "type": "string", - "description": "Optional user-defined name for this tool or configuration." - }, - "description": { - "type": "string", - "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" } ], - "description": "A tool for searching over the agent's toolbox.\nWhen present, deferred tools are hidden from `tools/list` and only\ndiscoverable via `search_tools` queries at runtime." + "description": "A toolbox search tool stored in a toolbox." }, "ToolboxSkill": { "type": "object", @@ -58628,6 +58802,69 @@ ], "description": "A reference to an existing skill to include in a toolbox." }, + "ToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxToolType" + } + ], + "description": "The type of tool." + }, + "name": { + "type": "string", + "description": "Optional user-defined name for this tool or configuration." + }, + "description": { + "type": "string", + "description": "Optional user-defined description for this tool or configuration." + }, + "tool_configs": { + "type": "object", + "unevaluatedProperties": { + "$ref": "#/components/schemas/ToolConfig" + }, + "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "code_interpreter": "#/components/schemas/CodeInterpreterToolboxTool", + "file_search": "#/components/schemas/FileSearchToolboxTool", + "web_search": "#/components/schemas/WebSearchToolboxTool", + "mcp": "#/components/schemas/MCPToolboxTool", + "azure_ai_search": "#/components/schemas/AzureAISearchToolboxTool", + "openapi": "#/components/schemas/OpenApiToolboxTool", + "a2a_preview": "#/components/schemas/A2APreviewToolboxTool", + "work_iq_preview": "#/components/schemas/WorkIQPreviewToolboxTool", + "fabric_iq_preview": "#/components/schemas/FabricIQPreviewToolboxTool", + "toolbox_search_preview": "#/components/schemas/ToolboxSearchPreviewToolboxTool" + } + }, + "description": "An abstract representation of a tool stored in a toolbox." + }, + "ToolboxToolType": { + "type": "string", + "enum": [ + "code_interpreter", + "file_search", + "web_search", + "mcp", + "azure_ai_search", + "openapi", + "a2a_preview", + "work_iq_preview", + "fabric_iq_preview", + "toolbox_search_preview" + ], + "description": "Supported tool types for tools stored in a toolbox." + }, "ToolboxVersionObject": { "type": "object", "required": [ @@ -58680,7 +58917,7 @@ "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/ToolboxTool" }, "description": "The list of tools contained in this toolbox version." }, @@ -59404,6 +59641,64 @@ }, "description": "A web search configuration for bing custom search" }, + "WebSearchToolboxTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search" + ] + }, + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchToolFilters" + }, + { + "type": "null" + } + ] + }, + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchApproximateLocation" + }, + { + "type": "null" + } + ] + }, + "search_context_size": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ], + "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default.", + "default": "medium" + }, + "custom_search_configuration": { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchConfiguration" + } + ], + "description": "The project connections attached to this tool. There can be a maximum of 1 connection\nresource attached to the tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A web search tool stored in a toolbox." + }, "WeeklyRecurrenceSchedule": { "type": "object", "required": [ @@ -59458,13 +59753,6 @@ "description": { "type": "string", "description": "Optional user-defined description for this tool or configuration." - }, - "tool_configs": { - "type": "object", - "unevaluatedProperties": { - "$ref": "#/components/schemas/ToolConfig" - }, - "description": "Per-tool configuration map. Keys are tool names or `*` (catch-all default).\nResolution order: exact tool name match takes priority over `*`.\nUnknown tool names are silently ignored at runtime." } }, "allOf": [ @@ -59474,6 +59762,31 @@ ], "description": "A WorkIQ server-side tool." }, + "WorkIQPreviewToolboxTool": { + "type": "object", + "required": [ + "type", + "project_connection_id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "work_iq_preview" + ] + }, + "project_connection_id": { + "type": "string", + "description": "The ID of the WorkIQ project connection." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/ToolboxTool" + } + ], + "description": "A WorkIQ tool stored in a toolbox." + }, "WorkflowActionOutputItem": { "type": "object", "required": [ diff --git a/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.yaml b/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.yaml index a517663a58bc..0725000cc829 100644 --- a/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.yaml +++ b/specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.yaml @@ -12686,7 +12686,7 @@ paths: tools: type: array items: - $ref: '#/components/schemas/OpenAI.Tool' + $ref: '#/components/schemas/ToolboxTool' description: The list of tools to include in this version. skills: type: array @@ -13053,20 +13053,38 @@ components: enum: - a2a_preview description: The type of the tool. Always `"a2a_preview`. + base_url: + type: string + format: uri + description: Base URL of the agent. + agent_card_path: + type: string + description: |- + The path to the agent card relative to the `base_url`. + If not provided, defaults to `/.well-known/agent-card.json` + project_connection_id: + type: string + description: |- + The connection ID in the project for the A2A server. + The connection stores authentication and other connection details needed to connect to the A2A server. name: type: string description: Optional user-defined name for this tool or configuration. description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: An agent implementing the A2A protocol. + A2APreviewToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - a2a_preview base_url: type: string format: uri @@ -13082,8 +13100,8 @@ components: The connection ID in the project for the A2A server. The connection stores authentication and other connection details needed to connect to the A2A server. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: An agent implementing the A2A protocol. + - $ref: '#/components/schemas/ToolboxTool' + description: An A2A tool stored in a toolbox. A2AToolCall: type: object required: @@ -14505,14 +14523,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. azure_ai_search: allOf: - $ref: '#/components/schemas/AzureAISearchToolResource' @@ -14584,6 +14594,23 @@ components: The indices attached to this agent. There can be a maximum of 1 index resource attached to the agent. description: A set of index resources used by the `azure_ai_search` tool. + AzureAISearchToolboxTool: + type: object + required: + - type + - azure_ai_search + properties: + type: + type: string + enum: + - azure_ai_search + azure_ai_search: + allOf: + - $ref: '#/components/schemas/AzureAISearchToolResource' + description: The azure ai search index resource. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: An Azure AI Search tool stored in a toolbox. AzureAITraceDataSourcePreviewEvalRunDataSource: type: object required: @@ -14929,14 +14956,6 @@ components: allOf: - $ref: '#/components/schemas/AzureFunctionDefinition' description: The Azure Function Tool definition. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: The input definition information for an Azure Function Tool, as used to configure an Agent. @@ -15077,14 +15096,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. bing_custom_search_preview: allOf: - $ref: '#/components/schemas/BingCustomSearchToolParameters' @@ -15209,14 +15220,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. bing_grounding: allOf: - $ref: '#/components/schemas/BingGroundingSearchToolParameters' @@ -15332,14 +15335,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. browser_automation_preview: allOf: - $ref: '#/components/schemas/BrowserAutomationToolParameters' @@ -15433,14 +15428,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. outputs: allOf: - $ref: '#/components/schemas/StructuredOutputDefinition' @@ -15614,6 +15601,27 @@ components: - bundled - remote_build description: How package dependencies are resolved at deployment time for a code-based hosted agent. + CodeInterpreterToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - code_interpreter + container: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.AutoCodeInterpreterToolParam' + description: |- + The code interpreter container. Can be a container ID or an object that + specifies uploaded file IDs to make available to your code, along with an + optional `memory_limit` setting. + If not provided, the service assumes auto. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A code interpreter tool stored in a toolbox. CompletionMessageToolCallChunk: type: object required: @@ -19314,17 +19322,39 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A FabricIQ server-side tool. + FabricIQPreviewToolboxTool: + type: object + required: + - type + - project_connection_id + properties: + type: + type: string + enum: + - fabric_iq_preview + project_connection_id: + type: string + description: The ID of the FabricIQ project connection. + server_label: + type: string + description: (Optional) The label of the FabricIQ MCP server to connect to. + server_url: + type: string + format: uri + description: (Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used. + require_approval: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPToolRequireApproval' + - type: string + - type: 'null' + description: (Optional) Whether the agent requires approval before executing actions. Default is always. + default: always + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A FabricIQ tool stored in a toolbox. FileDataGenerationJobOutput: type: object required: @@ -19391,6 +19421,35 @@ components: allOf: - $ref: '#/components/schemas/DatasetVersionUpdate' description: FileDatasetVersion Definition + FileSearchToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - file_search + max_num_results: + allOf: + - $ref: '#/components/schemas/OpenAI.integer' + description: The maximum number of results to return. This number should be between 1 and 50 inclusive. + ranking_options: + allOf: + - $ref: '#/components/schemas/OpenAI.RankingOptions' + description: Ranking options for search. + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.Filters' + - type: 'null' + vector_store_ids: + type: array + items: + type: string + description: The IDs of the vector stores to search. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A file search tool stored in a toolbox. FilterStrategyType: anyOf: - type: string @@ -20196,6 +20255,89 @@ components: format: float description: Dropout rate used during training. Informational — not used at serving time. description: Adapter-specific metadata for LoRA models. Drives serving engine configuration at deployment time. + MCPToolboxTool: + type: object + required: + - type + - server_label + properties: + type: + type: string + enum: + - mcp + server_label: + type: string + description: A label for this MCP server, used to identify it in tool calls. + server_url: + type: string + format: uri + description: |- + The URL for the MCP server. One of `server_url` or `connector_id` must be + provided. + connector_id: + type: string + enum: + - connector_dropbox + - connector_gmail + - connector_googlecalendar + - connector_googledrive + - connector_microsoftteams + - connector_outlookcalendar + - connector_outlookemail + - connector_sharepoint + description: |- + Identifier for service connectors, like those available in ChatGPT. One of + `server_url` or `connector_id` must be provided. Learn more about service + connectors [here](/docs/guides/tools-remote-mcp#connectors). + Currently supported `connector_id` values are: + - Dropbox: `connector_dropbox` + - Gmail: `connector_gmail` + - Google Calendar: `connector_googlecalendar` + - Google Drive: `connector_googledrive` + - Microsoft Teams: `connector_microsoftteams` + - Outlook Calendar: `connector_outlookcalendar` + - Outlook Email: `connector_outlookemail` + - SharePoint: `connector_sharepoint` + authorization: + type: string + description: |- + An OAuth access token that can be used with a remote MCP server, either + with a custom MCP server URL or a service connector. Your application + must handle the OAuth authorization flow and provide the token here. + server_description: + type: string + description: Optional description of the MCP server, used to provide more context. + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + allowed_tools: + anyOf: + - type: array + items: + type: string + - $ref: '#/components/schemas/OpenAI.MCPToolFilter' + - type: 'null' + require_approval: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPToolRequireApproval' + - type: string + enum: + - always + - never + - type: 'null' + default: always + defer_loading: + type: boolean + description: Whether this MCP tool is deferred and discovered via tool search. + project_connection_id: + type: string + description: The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: An MCP tool stored in a toolbox. ManagedAgentIdentityBlueprint: type: object required: @@ -20411,14 +20553,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. memory_store_name: type: string description: The name of the memory store to use. @@ -20458,14 +20592,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. memory_store_name: type: string description: The name of the memory store to use. @@ -20831,14 +20957,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. fabric_dataagent_preview: allOf: - $ref: '#/components/schemas/FabricDataAgentToolParameters' @@ -21616,14 +21734,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. container: anyOf: - type: string @@ -24910,14 +25020,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). @@ -25941,14 +26043,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that allows the model to execute shell commands. @@ -26568,14 +26662,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that generates images using the GPT image models. @@ -31429,14 +31515,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A tool that allows the model to execute shell commands in a local environment. @@ -31588,14 +31666,6 @@ components: project_connection_id: type: string description: The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: |- @@ -36722,13 +36792,12 @@ components: fabric_iq_preview: '#/components/schemas/FabricIQPreviewTool' memory_search_preview: '#/components/schemas/MemorySearchPreviewTool' memory_search: '#/components/schemas/MemorySearchTool' - toolbox_search_preview: '#/components/schemas/ToolboxSearchPreviewTool' code_interpreter: '#/components/schemas/OpenAI.CodeInterpreterTool' - function: '#/components/schemas/OpenAI.FunctionTool' file_search: '#/components/schemas/OpenAI.FileSearchTool' - computer_use_preview: '#/components/schemas/OpenAI.ComputerUsePreviewTool' web_search: '#/components/schemas/OpenAI.WebSearchTool' mcp: '#/components/schemas/OpenAI.MCPTool' + function: '#/components/schemas/OpenAI.FunctionTool' + computer_use_preview: '#/components/schemas/OpenAI.ComputerUsePreviewTool' image_generation: '#/components/schemas/OpenAI.ImageGenTool' local_shell: '#/components/schemas/OpenAI.LocalShellToolParam' shell: '#/components/schemas/OpenAI.FunctionShellToolParam' @@ -37075,7 +37144,6 @@ components: - memory_search_preview - work_iq_preview - fabric_iq_preview - - toolbox_search_preview - azure_ai_search - azure_function - bing_grounding @@ -37404,14 +37472,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. custom_search_configuration: allOf: - $ref: '#/components/schemas/WebSearchConfiguration' @@ -37597,14 +37657,6 @@ components: allOf: - $ref: '#/components/schemas/OpenApiFunctionDefinition' description: The openapi function definition. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: The input definition information for an OpenAPI tool as used to configure an agent. @@ -37666,6 +37718,23 @@ components: allOf: - $ref: '#/components/schemas/OpenAI.OutputItem' description: The output of an OpenAPI tool call. + OpenApiToolboxTool: + type: object + required: + - type + - openapi + properties: + type: + type: string + enum: + - openapi + openapi: + allOf: + - $ref: '#/components/schemas/OpenApiFunctionDefinition' + description: The openapi function definition. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: An OpenAPI tool stored in a toolbox. OptimizationAgentIdentifier: type: object required: @@ -39477,14 +39546,6 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. sharepoint_grounding_preview: allOf: - $ref: '#/components/schemas/SharepointGroundingToolParameters' @@ -40143,7 +40204,7 @@ components: - $ref: '#/components/schemas/RaiConfig' description: Responsible AI content filtering configuration. description: Policy configuration for a toolbox, including content safety and other governance settings. - ToolboxSearchPreviewTool: + ToolboxSearchPreviewToolboxTool: type: object required: - type @@ -40153,26 +40214,9 @@ components: enum: - toolbox_search_preview description: The type of the tool. Always `toolbox_search_preview`. - name: - type: string - description: Optional user-defined name for this tool or configuration. - description: - type: string - description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - A tool for searching over the agent's toolbox. - When present, deferred tools are hidden from `tools/list` and only - discoverable via `search_tools` queries at runtime. + - $ref: '#/components/schemas/ToolboxTool' + description: A toolbox search tool stored in a toolbox. ToolboxSkill: type: object required: @@ -40207,6 +40251,57 @@ components: allOf: - $ref: '#/components/schemas/ToolboxSkill' description: A reference to an existing skill to include in a toolbox. + ToolboxTool: + type: object + required: + - type + properties: + type: + allOf: + - $ref: '#/components/schemas/ToolboxToolType' + description: The type of tool. + name: + type: string + description: Optional user-defined name for this tool or configuration. + description: + type: string + description: Optional user-defined description for this tool or configuration. + tool_configs: + type: object + unevaluatedProperties: + $ref: '#/components/schemas/ToolConfig' + description: |- + Per-tool configuration map. Keys are tool names or `*` (catch-all default). + Resolution order: exact tool name match takes priority over `*`. + Unknown tool names are silently ignored at runtime. + discriminator: + propertyName: type + mapping: + code_interpreter: '#/components/schemas/CodeInterpreterToolboxTool' + file_search: '#/components/schemas/FileSearchToolboxTool' + web_search: '#/components/schemas/WebSearchToolboxTool' + mcp: '#/components/schemas/MCPToolboxTool' + azure_ai_search: '#/components/schemas/AzureAISearchToolboxTool' + openapi: '#/components/schemas/OpenApiToolboxTool' + a2a_preview: '#/components/schemas/A2APreviewToolboxTool' + work_iq_preview: '#/components/schemas/WorkIQPreviewToolboxTool' + fabric_iq_preview: '#/components/schemas/FabricIQPreviewToolboxTool' + toolbox_search_preview: '#/components/schemas/ToolboxSearchPreviewToolboxTool' + description: An abstract representation of a tool stored in a toolbox. + ToolboxToolType: + type: string + enum: + - code_interpreter + - file_search + - web_search + - mcp + - azure_ai_search + - openapi + - a2a_preview + - work_iq_preview + - fabric_iq_preview + - toolbox_search_preview + description: Supported tool types for tools stored in a toolbox. ToolboxVersionObject: type: object required: @@ -40252,7 +40347,7 @@ components: tools: type: array items: - $ref: '#/components/schemas/OpenAI.Tool' + $ref: '#/components/schemas/ToolboxTool' description: The list of tools contained in this toolbox version. skills: type: array @@ -40728,6 +40823,40 @@ components: type: string description: Name of the custom configuration instance given to config. description: A web search configuration for bing custom search + WebSearchToolboxTool: + type: object + required: + - type + properties: + type: + type: string + enum: + - web_search + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchToolFilters' + - type: 'null' + user_location: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchApproximateLocation' + - type: 'null' + search_context_size: + type: string + enum: + - low + - medium + - high + description: High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. + default: medium + custom_search_configuration: + allOf: + - $ref: '#/components/schemas/WebSearchConfiguration' + description: |- + The project connections attached to this tool. There can be a maximum of 1 connection + resource attached to the tool. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A web search tool stored in a toolbox. WeeklyRecurrenceSchedule: type: object required: @@ -40767,17 +40896,25 @@ components: description: type: string description: Optional user-defined description for this tool or configuration. - tool_configs: - type: object - unevaluatedProperties: - $ref: '#/components/schemas/ToolConfig' - description: |- - Per-tool configuration map. Keys are tool names or `*` (catch-all default). - Resolution order: exact tool name match takes priority over `*`. - Unknown tool names are silently ignored at runtime. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: A WorkIQ server-side tool. + WorkIQPreviewToolboxTool: + type: object + required: + - type + - project_connection_id + properties: + type: + type: string + enum: + - work_iq_preview + project_connection_id: + type: string + description: The ID of the WorkIQ project connection. + allOf: + - $ref: '#/components/schemas/ToolboxTool' + description: A WorkIQ tool stored in a toolbox. WorkflowActionOutputItem: type: object required: diff --git a/specification/ai-foundry/data-plane/Foundry/src/toolboxes/models.tsp b/specification/ai-foundry/data-plane/Foundry/src/toolboxes/models.tsp index bf89316cee92..199192ff5e43 100644 --- a/specification/ai-foundry/data-plane/Foundry/src/toolboxes/models.tsp +++ b/specification/ai-foundry/data-plane/Foundry/src/toolboxes/models.tsp @@ -7,6 +7,189 @@ using TypeSpec.Http; namespace Azure.AI.Projects; +const ToolboxesRequiredPreviews = #{ + conditional_previews: #[FoundryFeaturesOptInKeys.toolboxes_v1_preview], +}; + +/** + * Per-tool configuration that controls tool visibility and search behavior. + */ +model ToolConfig { + /** + * When true, the tool is always included in agent context and visible in `tools/list`. + * When false (default), the tool is hidden from `tools/list` and only discoverable via `tool_search`. + */ + pin?: boolean; + + /** + * Additional text indexed for tool_search. Supplements the native tool description + * to improve discoverability. Does not alter `tools/list` output. + */ + @maxLength(1000) + additional_search_text?: string; +} + +/** + * Optional tool configuration extension for controlling tool visibility and search behavior. + */ +alias ToolConfigExtension = { + /** + * Per-tool configuration map. Keys are tool names or `*` (catch-all default). + * Resolution order: exact tool name match takes priority over `*`. + * Unknown tool names are silently ignored at runtime. + */ + tool_configs?: Record; +}; + +/** + * Spreads `Source`, changing the selected properties to optional. + */ +model WithFieldsOptional { + ...OmitProperties; + ...PickProperties, Keys>; +} + +/** + * Spreads tool-specific fields from `Source`, excluding fields owned by `ToolboxTool`. + */ +alias ToolFields = { + ...OmitProperties; +}; + +alias ToolboxCodeInterpreterToolType = "code_interpreter"; +alias ToolboxFileSearchToolType = "file_search"; +alias ToolboxWebSearchToolType = "web_search"; +alias ToolboxMCPToolType = "mcp"; +alias ToolboxAzureAISearchToolType = "azure_ai_search"; +alias ToolboxOpenApiToolType = "openapi"; +alias ToolboxA2APreviewToolType = "a2a_preview"; +alias ToolboxWorkIQPreviewToolType = "work_iq_preview"; +alias ToolboxFabricIQPreviewToolType = "fabric_iq_preview"; +alias ToolboxSearchPreviewToolType = "toolbox_search_preview"; + +/** + * Supported tool types for tools stored in a toolbox. + */ +union ToolboxToolType { + code_interpreter: ToolboxCodeInterpreterToolType, + file_search: ToolboxFileSearchToolType, + web_search: ToolboxWebSearchToolType, + mcp: ToolboxMCPToolType, + azure_ai_search: ToolboxAzureAISearchToolType, + openapi: ToolboxOpenApiToolType, + a2a_preview: ToolboxA2APreviewToolType, + work_iq_preview: ToolboxWorkIQPreviewToolType, + fabric_iq_preview: ToolboxFabricIQPreviewToolType, + toolbox_search_preview: ToolboxSearchPreviewToolType, +} + +/** + * An abstract representation of a tool stored in a toolbox. + */ +@discriminator("type") +model ToolboxTool { + /** + * The type of tool. + */ + type: ToolboxToolType; + + ...ToolNameAndDescriptionExtension; + ...ToolConfigExtension; +} + +/** + * A code interpreter tool stored in a toolbox. + */ +model CodeInterpreterToolboxTool extends ToolboxTool { + type: ToolboxCodeInterpreterToolType; + + ...ToolFields; +} + +/** + * A file search tool stored in a toolbox. + */ +model FileSearchToolboxTool extends ToolboxTool { + type: ToolboxFileSearchToolType; + + ...WithFieldsOptional< + ToolFields, + "vector_store_ids" + >; +} + +/** + * A web search tool stored in a toolbox. + */ +model WebSearchToolboxTool extends ToolboxTool { + type: ToolboxWebSearchToolType; + + ...ToolFields; +} + +/** + * An MCP tool stored in a toolbox. + */ +model MCPToolboxTool extends ToolboxTool { + type: ToolboxMCPToolType; + + ...ToolFields; +} + +/** + * An Azure AI Search tool stored in a toolbox. + */ +model AzureAISearchToolboxTool extends ToolboxTool { + type: ToolboxAzureAISearchToolType; + + ...ToolFields; +} + +/** + * An OpenAPI tool stored in a toolbox. + */ +model OpenApiToolboxTool extends ToolboxTool { + type: ToolboxOpenApiToolType; + + ...ToolFields; +} + +/** + * An A2A tool stored in a toolbox. + */ +model A2APreviewToolboxTool extends ToolboxTool { + type: ToolboxA2APreviewToolType; + + ...ToolFields; +} + +/** + * A WorkIQ tool stored in a toolbox. + */ +model WorkIQPreviewToolboxTool extends ToolboxTool { + type: ToolboxWorkIQPreviewToolType; + + ...ToolFields; +} + +/** + * A FabricIQ tool stored in a toolbox. + */ +model FabricIQPreviewToolboxTool extends ToolboxTool { + type: ToolboxFabricIQPreviewToolType; + + ...ToolFields; +} + +/** + * A toolbox search tool stored in a toolbox. + */ +model ToolboxSearchPreviewToolboxTool extends ToolboxTool { + /** + * The type of the tool. Always `toolbox_search_preview`. + */ + type: ToolboxSearchPreviewToolType; +} @doc("Policy configuration for a toolbox, including content safety and other governance settings.") model ToolboxPolicies { @doc("Responsible AI content filtering configuration.") @@ -68,7 +251,7 @@ model ToolboxVersionObject { created_at: utcDateTime; @doc("The list of tools contained in this toolbox version.") - tools: OpenAI.Tool[]; + tools: ToolboxTool[]; @doc("The list of skill sources included in this toolbox version.") skills?: ToolboxSkill[]; @@ -91,7 +274,7 @@ alias CreateToolboxVersionRequest = { metadata?: Record; @doc("The list of tools to include in this version.") - tools: OpenAI.Tool[]; + tools: ToolboxTool[]; @doc("The list of skill sources to include in this version. A skill reference specifies a skill name and optionally a version. If version is omitted, the skill's default version is used.") skills?: ToolboxSkill[]; diff --git a/specification/ai-foundry/data-plane/Foundry/src/tools/models.tsp b/specification/ai-foundry/data-plane/Foundry/src/tools/models.tsp index b4bed43d4e80..23265c30cf41 100644 --- a/specification/ai-foundry/data-plane/Foundry/src/tools/models.tsp +++ b/specification/ai-foundry/data-plane/Foundry/src/tools/models.tsp @@ -19,7 +19,6 @@ namespace Azure.AI.Projects { memory_search_preview: "memory_search_preview", work_iq_preview: "work_iq_preview", fabric_iq_preview: "fabric_iq_preview", - toolbox_search_preview: "toolbox_search_preview", } // General availability tools: @@ -44,24 +43,6 @@ namespace Azure.AI.Projects { #suppress "@azure-tools/typespec-azure-core/experimental-feature" "Using experimental feature" @@copyVariants(OpenAI.IncludeEnum, Azure.AI.Projects._AgentIncludable); - /** - * Per-tool configuration that controls tool visibility and search behavior. - */ - model ToolConfig { - /** - * When true, the tool is always included in agent context and visible in `tools/list`. - * When false (default), the tool is hidden from `tools/list` and only discoverable via `tool_search`. - */ - pin?: boolean; - - /** - * Additional text indexed for tool_search. Supplements the native tool description - * to improve discoverability. Does not alter `tools/list` output. - */ - @maxLength(1000) - additional_search_text?: string; - } - #suppress "@azure-tools/typespec-azure-core/experimental-feature" "Using experimental feature" @@copyProperties( OpenAI.MCPTool, @@ -70,8 +51,6 @@ namespace Azure.AI.Projects { * The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server. */ project_connection_id?: string, - - ...ToolConfigExtension, } ); @@ -80,7 +59,6 @@ namespace Azure.AI.Projects { OpenAI.WebSearchTool, { ...ToolNameAndDescriptionExtension, - ...ToolConfigExtension, /** * The project connections attached to this tool. There can be a maximum of 1 connection @@ -95,7 +73,6 @@ namespace Azure.AI.Projects { OpenAI.CodeInterpreterTool, { ...ToolNameAndDescriptionExtension, - ...ToolConfigExtension, } ); @@ -104,7 +81,6 @@ namespace Azure.AI.Projects { OpenAI.ImageGenTool, { ...ToolNameAndDescriptionExtension, - ...ToolConfigExtension, } ); @@ -113,7 +89,6 @@ namespace Azure.AI.Projects { OpenAI.LocalShellToolParam, { ...ToolNameAndDescriptionExtension, - ...ToolConfigExtension, } ); @@ -122,7 +97,6 @@ namespace Azure.AI.Projects { OpenAI.FunctionShellToolParam, { ...ToolNameAndDescriptionExtension, - ...ToolConfigExtension, } ); @@ -131,7 +105,6 @@ namespace Azure.AI.Projects { OpenAI.FileSearchTool, { ...ToolNameAndDescriptionExtension, - ...ToolConfigExtension, } ); @@ -165,18 +138,6 @@ namespace Azure.AI.Projects { description?: string; }; - /** - * Optional tool configuration extension for controlling tool visibility and search behavior. - */ - alias ToolConfigExtension = { - /** - * Per-tool configuration map. Keys are tool names or `*` (catch-all default). - * Resolution order: exact tool name match takes priority over `*`. - * Unknown tool names are silently ignored at runtime. - */ - tool_configs?: Record; - }; - /** * The input definition information for a bing grounding search tool as used to configure an agent. */ @@ -187,7 +148,6 @@ namespace Azure.AI.Projects { type: "bing_grounding"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The bing grounding search tool parameters. @@ -217,7 +177,6 @@ namespace Azure.AI.Projects { type: "fabric_dataagent_preview"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The fabric data agent tool parameters. @@ -247,7 +206,6 @@ namespace Azure.AI.Projects { type: "sharepoint_grounding_preview"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The sharepoint grounding tool parameters. @@ -265,7 +223,6 @@ namespace Azure.AI.Projects { type: "azure_ai_search"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The azure ai search index resource. @@ -360,8 +317,6 @@ namespace Azure.AI.Projects { * The openapi function definition. */ openapi: OpenApiFunctionDefinition; - - ...ToolConfigExtension; } /** @@ -374,7 +329,6 @@ namespace Azure.AI.Projects { type: "bing_custom_search_preview"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The bing custom search tool parameters. @@ -392,7 +346,6 @@ namespace Azure.AI.Projects { type: "browser_automation_preview"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The Browser Automation Tool parameters. @@ -433,8 +386,6 @@ namespace Azure.AI.Projects { * The Azure Function Tool definition. */ azure_function: AzureFunctionDefinition; - - ...ToolConfigExtension; } /** @@ -785,7 +736,6 @@ namespace Azure.AI.Projects { type: "capture_structured_outputs"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The structured outputs to capture from the model. @@ -802,9 +752,6 @@ namespace Azure.AI.Projects { */ type: "a2a_preview"; - ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; - /** * Base URL of the agent. */ @@ -821,6 +768,8 @@ namespace Azure.AI.Projects { * The connection stores authentication and other connection details needed to connect to the A2A server. */ project_connection_id?: string; + + ...ToolNameAndDescriptionExtension; } /** @@ -838,7 +787,6 @@ namespace Azure.AI.Projects { project_connection_id: string; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; } /** @@ -873,7 +821,6 @@ namespace Azure.AI.Projects { require_approval?: OpenAI.MCPToolRequireApproval | string | null = "always"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; } /** @@ -886,7 +833,6 @@ namespace Azure.AI.Projects { type: "memory_search_preview"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The name of the memory store to use. @@ -922,7 +868,6 @@ namespace Azure.AI.Projects { type: "memory_search"; ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; /** * The name of the memory store to use. @@ -947,21 +892,6 @@ namespace Azure.AI.Projects { update_delay?: int32 = 300; } - /** - * A tool for searching over the agent's toolbox. - * When present, deferred tools are hidden from `tools/list` and only - * discoverable via `search_tools` queries at runtime. - */ - model ToolboxSearchPreviewTool extends OpenAI.Tool { - /** - * The type of the tool. Always `toolbox_search_preview`. - */ - type: "toolbox_search_preview"; - - ...ToolNameAndDescriptionExtension; - ...ToolConfigExtension; - } - // ============================================================================== // Grounding Tool Call Status and Document Models // ==============================================================================