{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/openai/main/json-schema/openai-agent-resource-schema.json", "title": "AgentResource", "description": "A reusable agent scoped to the caller's project.", "x-generated": "2026-09-23", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/openai-agents-api-openapi.yml#/components/schemas/AgentResource", "type": "object", "properties": { "id": { "type": "string", "minLength": 0, "description": "The ID of the reusable agent." }, "object": { "type": "string", "enum": [ "agent" ], "default": "agent", "x-stainless-const": true, "description": "The object type. Always `agent`." }, "created_at": { "type": "integer", "format": "int64", "description": "The Unix timestamp, in seconds, when the agent was created." }, "updated_at": { "type": "integer", "format": "int64", "description": "The Unix timestamp, in seconds, when the agent was last updated." }, "name": { "type": [ "string", "null" ], "minLength": 0, "description": "A human-readable name for the agent, or null if it is unnamed." }, "metadata": { "type": "object", "additionalProperties": { "type": "string", "minLength": 0 }, "propertyNames": { "type": "string", "minLength": 0 }, "minProperties": 0, "description": "Custom string key-value pairs attached to the agent." }, "model": { "type": "string", "minLength": 0, "description": "The requested model name used for inference." }, "reasoning": { "$ref": "#/$defs/ReasoningResource", "description": "The resolved reasoning configuration, including the model default for an omitted effort." }, "text": { "$ref": "#/$defs/TextResource", "description": "The resolved configuration for text generated by the agent." }, "service_tier": { "$ref": "#/$defs/ServiceTierResource", "description": "The resolved service-tier policy used for model requests." }, "instructions": { "type": [ "string", "null" ], "minLength": 0, "description": "Custom instructions appended to the agent's default base instructions." }, "tools": { "type": "array", "items": { "$ref": "#/$defs/PersistedAgentToolResource" }, "minItems": 0, "maxItems": 2000, "description": "Tools available to the agent." }, "multi_agent": { "$ref": "#/$defs/MultiAgentConfigResource", "description": "The resolved configuration for creating and coordinating subagents." } }, "required": [ "id", "object", "created_at", "updated_at", "name", "metadata", "model", "reasoning", "text", "service_tier", "instructions", "tools", "multi_agent" ], "additionalProperties": false, "$defs": { "McpConnectionOriginResource": { "type": "string", "enum": [ "service", "environment" ], "description": "Where outbound MCP HTTP connections originate." }, "MultiAgentConfigResource": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether subagent tools are enabled. Defaults to false." }, "max_concurrent_subagents": { "type": [ "integer", "null" ], "format": "int64", "minimum": 1, "maximum": 4294967295, "description": "Maximum number of subagents that may run concurrently, or null when disabled. Defaults to 6 when enabled." } }, "required": [ "enabled", "max_concurrent_subagents" ], "additionalProperties": false, "description": "The resolved configuration for creating and coordinating subagents." }, "PersistedAgentToolResource": { "oneOf": [ { "$ref": "#/$defs/PersistedAgentToolResourceFunction" }, { "$ref": "#/$defs/PersistedAgentToolResourceToolSearch" }, { "$ref": "#/$defs/PersistedAgentToolResourceProgrammaticToolCalling" }, { "$ref": "#/$defs/PersistedAgentToolResourceMcp" }, { "$ref": "#/$defs/PersistedAgentToolResourceWebSearch" } ], "x-oai-discriminator-values": [ "function", "tool_search", "programmatic_tool_calling", "mcp", "web_search" ], "description": "A credential-free tool available to a reusable agent." }, "PersistedAgentToolResourceFunction": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "function" ], "default": "function", "x-stainless-const": true, "description": "The type of the object. Always `function`." }, "name": { "type": "string", "minLength": 0, "description": "The name of the function." }, "description": { "type": "string", "minLength": 0, "description": "A description of what the function does." }, "parameters": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string", "minLength": 0 }, "minProperties": 0, "description": "A JSON Schema object describing the function's arguments." }, "defer_loading": { "type": "boolean", "description": "Whether the function is deferred and discovered through tool search." } }, "required": [ "type", "name", "description", "parameters", "defer_loading" ], "additionalProperties": false, "description": "A function defined by the application." }, "PersistedAgentToolResourceMcp": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "mcp" ], "default": "mcp", "x-stainless-const": true, "description": "The type of the object. Always `mcp`." }, "server_label": { "type": "string", "minLength": 0, "description": "A label used to identify the MCP server in tool calls." }, "credential_id": { "type": [ "string", "null" ], "minLength": 0, "description": "The vault credential selected for this MCP server, if any." }, "transport": { "$ref": "#/$defs/PersistedMcpTransportResource", "description": "The credential-free transport used to connect to the MCP server." }, "request_metadata": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string", "minLength": 0 }, "minProperties": 0, "description": "Metadata included with requests to this MCP server." }, "allowed_tools": { "type": [ "array", "null" ], "items": { "type": "string", "minLength": 0 }, "minItems": 0, "maxItems": 2000, "description": "The MCP tools the agent may call, or null when all server tools are allowed." }, "required": { "type": "boolean", "description": "Whether this MCP server must initialize before the first turn." }, "connection_origin": { "$ref": "#/$defs/McpConnectionOriginResource", "description": "Where outbound MCP HTTP connections originate." } }, "required": [ "type", "server_label", "credential_id", "transport", "request_metadata", "allowed_tools", "required", "connection_origin" ], "additionalProperties": false, "description": "Tools provided by a remote MCP server without stored credentials." }, "PersistedAgentToolResourceProgrammaticToolCalling": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "programmatic_tool_calling" ], "default": "programmatic_tool_calling", "x-stainless-const": true, "description": "The type of the object. Always `programmatic_tool_calling`." }, "enabled": { "type": "boolean", "description": "Whether tools can be called from model-generated code." } }, "required": [ "type", "enabled" ], "additionalProperties": false, "description": "Enables calling tools from model-generated code." }, "PersistedAgentToolResourceToolSearch": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tool_search" ], "default": "tool_search", "x-stainless-const": true, "description": "The type of the object. Always `tool_search`." } }, "required": [ "type" ], "additionalProperties": false, "description": "Discovers deferred function tools and loads them into the model context." }, "PersistedAgentToolResourceWebSearch": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "web_search" ], "default": "web_search", "x-stainless-const": true, "description": "The type of the object. Always `web_search`." }, "mode": { "$ref": "#/$defs/WebSearchModeResource", "description": "The source used for web search results." }, "context_size": { "$ref": "#/$defs/WebSearchContextSizeResource", "description": "The amount of search context made available to the model. Defaults to `medium`." }, "allowed_domains": { "type": [ "array", "null" ], "items": { "type": "string", "minLength": 0 }, "minItems": 0, "maxItems": 2000, "description": "Allowed search domains, or `null` when the search is unrestricted." }, "location": { "anyOf": [ { "$ref": "#/$defs/WebSearchLocationResource" }, { "type": "null" } ], "description": "Approximate location used to localize search results, if provided." } }, "required": [ "type", "mode", "context_size", "allowed_domains", "location" ], "additionalProperties": false, "description": "Web search." }, "PersistedMcpTransportResource": { "oneOf": [ { "$ref": "#/$defs/PersistedMcpTransportResourceHttp" }, { "$ref": "#/$defs/PersistedMcpTransportResourceStdio" } ], "x-oai-discriminator-values": [ "http", "stdio" ], "description": "A credential-free transport used to connect to an MCP server." }, "PersistedMcpTransportResourceHttp": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "http" ], "default": "http", "x-stainless-const": true, "description": "The type of the object. Always `http`." }, "server_url": { "type": "string", "minLength": 0, "description": "The URL of the MCP server." }, "headers": { "type": "object", "additionalProperties": { "type": "string", "minLength": 0 }, "propertyNames": { "type": "string", "minLength": 0 }, "minProperties": 0, "description": "Non-secret HTTP headers sent to the MCP server." } }, "required": [ "type", "server_url", "headers" ], "additionalProperties": false, "description": "Connects to an MCP server over HTTP." }, "PersistedMcpTransportResourceStdio": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "stdio" ], "default": "stdio", "x-stainless-const": true, "description": "The type of the object. Always `stdio`." }, "command": { "type": "string", "minLength": 0, "description": "The command used to start the MCP server." }, "args": { "type": "array", "items": { "type": "string", "minLength": 0 }, "minItems": 0, "maxItems": 2000, "description": "Arguments passed to the MCP server command." }, "cwd": { "type": "string", "minLength": 0, "description": "The working directory used to start the MCP server." }, "env_vars": { "type": "array", "items": { "type": "string", "minLength": 0 }, "minItems": 0, "maxItems": 2000, "description": "Environment variable names inherited from the execution environment." } }, "required": [ "type", "command", "args", "cwd", "env_vars" ], "additionalProperties": false, "description": "Starts an MCP server as a local process." }, "ReasoningEffortResource": { "type": "string", "enum": [ "none", "minimal", "low", "medium", "high", "xhigh", "max" ], "description": "The amount of reasoning effort used by an agent." }, "ReasoningResource": { "type": "object", "properties": { "effort": { "anyOf": [ { "$ref": "#/$defs/ReasoningEffortResource" }, { "type": "null" } ], "description": "The requested reasoning effort, or `null` when the model selects its own default." }, "summary": { "anyOf": [ { "$ref": "#/$defs/ReasoningSummaryResource" }, { "type": "null" } ], "description": "The requested reasoning summary format, or `null` when summaries are disabled." } }, "required": [ "effort", "summary" ], "additionalProperties": false, "description": "The reasoning configuration used by an agent." }, "ReasoningSummaryResource": { "type": "string", "enum": [ "concise", "detailed", "auto" ], "x-enumDescriptions": [ "Returns a concise reasoning summary when supported.", "Returns a detailed reasoning summary when supported.", "Automatically selects the most detailed summary supported by the model." ], "description": "The reasoning summary format requested from an agent." }, "ServiceTierResource": { "type": "string", "enum": [ "auto", "default", "flex", "priority", "fast" ], "description": "The service-tier policy configured for an agent." }, "TextFormatResource": { "oneOf": [ { "$ref": "#/$defs/TextFormatResourceText" }, { "$ref": "#/$defs/TextFormatResourceJsonSchema" } ], "x-oai-discriminator-values": [ "text", "json_schema" ], "description": "The effective output format for generated text." }, "TextFormatResourceJsonSchema": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "json_schema" ], "default": "json_schema", "x-stainless-const": true, "description": "The type of the object. Always `json_schema`." }, "schema": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string", "minLength": 0 }, "minProperties": 0, "description": "The JSON Schema that generated text must match." } }, "required": [ "type", "schema" ], "additionalProperties": false, "description": "Constrains generated text to a JSON Schema." }, "TextFormatResourceText": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "text" ], "default": "text", "x-stainless-const": true, "description": "The type of the object. Always `text`." } }, "required": [ "type" ], "additionalProperties": false, "description": "Generates ordinary text without a structured-output constraint." }, "TextResource": { "type": "object", "properties": { "format": { "$ref": "#/$defs/TextFormatResource", "description": "The effective output format. Defaults to ordinary text." }, "verbosity": { "$ref": "#/$defs/VerbosityResource", "description": "The amount of text produced by the agent. Defaults to `medium`." } }, "required": [ "format", "verbosity" ], "additionalProperties": false, "description": "The text configuration used by an agent." }, "VerbosityResource": { "type": "string", "enum": [ "low", "medium", "high" ], "description": "The amount of text produced by an agent." }, "WebSearchContextSizeResource": { "type": "string", "enum": [ "low", "medium", "high" ], "description": "The amount of web search context made available to the model." }, "WebSearchLocationResource": { "type": "object", "properties": { "country": { "type": [ "string", "null" ], "minLength": 0, "description": "The two-letter ISO country code, such as `US`." }, "region": { "type": [ "string", "null" ], "minLength": 0, "description": "The region or state name." }, "city": { "type": [ "string", "null" ], "minLength": 0, "description": "The city name." }, "timezone": { "type": [ "string", "null" ], "minLength": 0, "description": "The IANA timezone, such as `America/Los_Angeles`." } }, "required": [ "country", "region", "city", "timezone" ], "additionalProperties": false, "description": "Approximate user location used to localize web search results." }, "WebSearchModeResource": { "type": "string", "enum": [ "disabled", "cached", "live" ], "description": "The source used for web search results." } } }