{
  "$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."
    }
  }
}