SpyBara
Go Premium

Documentation 2026-09-15 22:59 UTC to 2026-09-16 20:58 UTC

7 files changed +52 −9. View all changes and history on the product overview
2026
Tue 29 22:57 Mon 28 22:57 Sat 26 23:59 Fri 25 23:58 Thu 24 23:58 Wed 23 23:58 Tue 22 23:57 Mon 21 23:00 Sat 19 23:00 Fri 18 22:59 Thu 17 10:04 Wed 16 20:58 Tue 15 22:59 Mon 14 22:58 Sun 13 15:02 Fri 11 20:00 Thu 10 18:01 Wed 9 23:59 Sat 5 17:01 Fri 4 23:59 Thu 3 23:00 Wed 2 22:59
Details

282 282 

283Each session has its own conversation and work. See the [Agents API reference](https://developers.openai.com/api/reference/resources/beta/subresources/agents) to list, retrieve, update, or delete saved agents. Credentials stay in [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults), separate from the saved configuration.283Each session has its own conversation and work. See the [Agents API reference](https://developers.openai.com/api/reference/resources/beta/subresources/agents) to list, retrieve, update, or delete saved agents. Credentials stay in [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults), separate from the saved configuration.

284 284 

285## Update a saved agent

286 

287Saved-agent updates apply only to new sessions. Each session copies the saved configuration when you create it and keeps those settings for later turns. To change an existing session, [update its settings](#update-settings-for-an-existing-session).

288 

289When updating a saved agent:

290 

291- Omitted fields keep their saved values. Changing only `model` preserves `reasoning`, `service_tier`, and `text`.

292- Supplied objects replace the whole field. Supplying `reasoning` with only `effort` also clears the saved `summary`.

293- `null` resets fields that accept it. For example, `reasoning: null` restores the model's default effort.

294 

295Change or reset any settings the new model does not support in the same request.

296 

285## Override settings for one session297## Override settings for one session

286 298 

287Include both `agent_id` and `agent` to customize a session that uses a saved agent. The session inherits omitted settings, including the model.299Include both `agent_id` and `agent` when creating a session to customize a saved agent's configuration. The session copies omitted settings, including the model, from the saved agent at creation time.

288 300 

289Replace the illustrative `agent_123` value with the saved agent's ID before running this example:301Replace the illustrative `agent_123` value with the saved agent's ID before running this example:

290 302 


434 446 

435See the [Create session reference](https://developers.openai.com/api/reference/resources/beta/subresources/agents/subresources/sessions/methods/create) for request fields.447See the [Create session reference](https://developers.openai.com/api/reference/resources/beta/subresources/agents/subresources/sessions/methods/create) for request fields.

436 448 

449## Update settings for an existing session

450 

451Send `POST /v1/agents/sessions/{session_id}` with an `agent` object to change `model`, `reasoning.effort`, or `service_tier` for one session. These settings are available in the beta and GA API contracts. You can update `metadata` in the same request.

452 

453Changes apply to new turns started by messages sent after the update completes. Messages already in flight can use the previous settings. An active turn keeps its settings, including when you send a steering message. The session keeps its conversation history. The selected model must support the resulting settings, or the update fails.

454 

455- The `agent` and `reasoning` objects merge supplied fields into the current settings. Omitted fields stay unchanged, including reasoning summary. Changing only `model` preserves the session's reasoning effort and service tier.

456- `reasoning.effort: null` resets effort to the selected model's default.

457- `service_tier: null` restores automatic tier selection.

458- A model must remain set, so you cannot supply `model: null`. The `agent` and `reasoning` objects also reject `null`.

459- `metadata` replaces the full map. Omit it to preserve metadata, or pass `null` or `{}` to clear it.

460 

461For example, this request changes reasoning effort and lets the API select the service tier automatically:

462 

463```json

464{

465 "agent": {

466 "reasoning": { "effort": "low" },

467 "service_tier": null

468 }

469}

470```

471 

472Updating a session does not change the saved agent or other sessions. Later saved-agent updates do not change the session.

473 

474You cannot update `reasoning.summary`, `text`, `tools`, `instructions`, or `multi_agent` through this endpoint. Create a new session to change those settings.

475 

437## Environment settings476## Environment settings

438 477 

439Set `environment` alongside `agent` when creating a session. It determines where the agent runs commands and works with files.478Set `environment` alongside `agent` when creating a session. It determines where the agent runs commands and works with files.

Details

186 186 

187Send another `agent.session.input.message` to the same session. If the agent is working, the message steers the active turn. If the session is idle, it starts a new turn with the existing conversation.187Send another `agent.session.input.message` to the same session. If the agent is working, the message steers the active turn. If the session is idle, it starts a new turn with the existing conversation.

188 188 

189Saved-agent updates apply only to new sessions. To change the model, reasoning effort, or service tier for later turns in this session, [update its settings](https://developers.openai.com/api/docs/guides/agents-api/configuration#update-settings-for-an-existing-session).

190 

189Use the conversation's session ID to send input. Subscribe to its [event stream](https://developers.openai.com/api/reference/resources/beta/subresources/agents/subresources/sessions/subresources/events/methods/stream) before sending the message so your application receives the turn's early events.191Use the conversation's session ID to send input. Subscribe to its [event stream](https://developers.openai.com/api/reference/resources/beta/subresources/agents/subresources/sessions/subresources/events/methods/stream) before sending the message so your application receives the turn's early events.

190 192 

191Pass your API client, session ID, and message to a function in your application:193Pass your API client, session ID, and message to a function in your application:

Details

1135 ResponseTool.CreateMcpTool(1135 ResponseTool.CreateMcpTool(

1136 "mycompany_mcp_server",1136 "mycompany_mcp_server",

1137 new Uri(serverUrl),1137 new Uri(serverUrl),

1138 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.NeverRequireApproval1138 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.NeverRequireApproval

1139 )1139 )

1140);1140);

1141options.InputItems.Add(1141options.InputItems.Add(

Details

52 52 

53Administrators can enforce a maximum API key lifetime at the organization or project level in [Platform settings](https://platform.openai.com/settings/organization/general). New keys must expire within the configured limit, preventing them from remaining valid indefinitely. Project limits cannot exceed the organization limit.53Administrators can enforce a maximum API key lifetime at the organization or project level in [Platform settings](https://platform.openai.com/settings/organization/general). New keys must expire within the configured limit, preventing them from remaining valid indefinitely. Project limits cannot exceed the organization limit.

54 54 

55The **API Key Governance** section in Platform settings lets organization and project administrators restrict the types of API keys that can be created. Administrators can allow only service-account keys, allow only user-owned project keys, or disable all new API key creation. Organization-level restrictions always take precedence: project settings can add restrictions but cannot loosen organization-level restrictions. These controls apply only to new key creation; existing API keys are unaffected.

56 

55API key usage can be monitored on the [Usage page](https://platform.openai.com/usage) once tracking is enabled. If you are using an API key generated prior to Dec 20, 2023 tracking will not be enabled by default. You can enable tracking going forward on the [API key management dashboard](https://platform.openai.com/api-keys). All API keys generated past Dec 20, 2023 have tracking enabled. Any previous untracked usage will be displayed as `Untracked` in the dashboard.57API key usage can be monitored on the [Usage page](https://platform.openai.com/usage) once tracking is enabled. If you are using an API key generated prior to Dec 20, 2023 tracking will not be enabled by default. You can enable tracking going forward on the [API key management dashboard](https://platform.openai.com/api-keys). All API keys generated past Dec 20, 2023 have tracking enabled. Any previous untracked usage will be displayed as `Untracked` in the dashboard.

56 58 

57### Staging projects59### Staging projects

guides/tools.md +1 −1

Details

964 ResponseTool.CreateMcpTool(964 ResponseTool.CreateMcpTool(

965 serverLabel: "dmcp",965 serverLabel: "dmcp",

966 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),966 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),

967 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.NeverRequireApproval967 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.NeverRequireApproval

968 )968 )

969);969);

970options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));970options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));

Details

163 ResponseTool.CreateMcpTool(163 ResponseTool.CreateMcpTool(

164 serverLabel: "dmcp",164 serverLabel: "dmcp",

165 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),165 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),

166 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.NeverRequireApproval166 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.NeverRequireApproval

167 )167 )

168);168);

169options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));169options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));


355 serverLabel: "Dropbox",355 serverLabel: "Dropbox",

356 connectorId: McpToolConnectorId.Dropbox,356 connectorId: McpToolConnectorId.Dropbox,

357 authorizationToken: dropboxToken,357 authorizationToken: dropboxToken,

358 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.NeverRequireApproval358 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.NeverRequireApproval

359 )359 )

360);360);

361options.InputItems.Add(361options.InputItems.Add(


624 serverLabel: "dmcp",624 serverLabel: "dmcp",

625 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),625 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),

626 allowedTools: new McpToolFilter() { ToolNames = { "roll" } },626 allowedTools: new McpToolFilter() { ToolNames = { "roll" } },

627 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.NeverRequireApproval627 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.NeverRequireApproval

628 )628 )

629);629);

630options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));630options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));


865 ResponseTool.CreateMcpTool(865 ResponseTool.CreateMcpTool(

866 serverLabel: "dmcp",866 serverLabel: "dmcp",

867 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),867 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),

868 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.AlwaysRequireApproval868 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.AlwaysRequireApproval

869 )869 )

870);870);

871 871 


1466 serverLabel: "google_calendar",1466 serverLabel: "google_calendar",

1467 connectorId: McpToolConnectorId.GoogleCalendar,1467 connectorId: McpToolConnectorId.GoogleCalendar,

1468 authorizationToken: authToken,1468 authorizationToken: authToken,

1469 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.NeverRequireApproval1469 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.NeverRequireApproval

1470 )1470 )

1471);1471);

1472options.InputItems.Add(1472options.InputItems.Add(

quickstart.md +1 −1

Details

1960 ResponseTool.CreateMcpTool(1960 ResponseTool.CreateMcpTool(

1961 serverLabel: "dmcp",1961 serverLabel: "dmcp",

1962 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),1962 serverUri: new Uri("https://dmcp-server.deno.dev/mcp"),

1963 toolCallApprovalPolicy: GlobalMcpToolCallApprovalPolicy.NeverRequireApproval1963 toolCallApprovalPolicy: DefaultMcpToolCallApprovalPolicy.NeverRequireApproval

1964 )1964 )

1965);1965);

1966options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));1966options.InputItems.Add(ResponseItem.CreateUserMessageItem("Roll 2d4+1"));