Skip to content

Commit fddeb8f

Browse files
feat(api): add agent session review and tool settings
Castiron-Promotion-ID: v1:30dc74db4b358fa53c2b4527c9808beb0f65d0b24885047ea615133c2343c8b7
1 parent 9abd656 commit fddeb8f

8 files changed

Lines changed: 140 additions & 20 deletions

File tree

‎.castiron.stats.yml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
schema_version: 1
2-
generation_id: 287e1fa6-451c-4f5f-9a80-498c77a0bd65
3-
openapi_spec_hash: 17689beb6a2da96f6cf9e5ac1e758a99
4-
openapi_transformed_spec_hash: 75a7f7b19910025d8f8f8aa1556d9b69
2+
generation_id: 92191688-2814-4240-a392-408609958bf7
3+
openapi_spec_hash: c3c2cc244c107fdd6e624a7b961015a9
4+
openapi_transformed_spec_hash: 5b121d4b6cca6573c41db323a7399527
55
config_hash: b707b209c892562880c415693d111ad6
6-
codegen_sha: b79c2ec277007e5a097e73a710864b77338da840
7-
codegen_hash: 7acc6ff9d93bbfd3be9e38f79d6b509bfd063f80cdd751f997b86e000327b9ae
6+
codegen_sha: 877cf0eac8dabd1578d463ff47f140c493bd4d1a
7+
codegen_hash: 78d280346819510f8ed577aad3d2df4df8dab155df63a48d6ae06e50a98111aa

‎api_reference/openapi.transformed.yml‎

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33545,7 +33545,7 @@ paths:
3354533545
post:
3354633546
operationId: updateAgentSession
3354733547
summary: Update an agent session
33548-
description: Updates session metadata, model, reasoning effort, or service tier. Model settings apply to subsequent turns. Omitted fields are unchanged. See [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
33548+
description: Updates session tools, metadata, model, reasoning effort, or service tier. Model settings apply to subsequent turns. Omitted fields are unchanged. See [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
3354933549
tags:
3355033550
- Agents
3355133551
parameters:
@@ -92393,6 +92393,9 @@ components:
9239392393
- $ref: '#/components/schemas/TokenUsageResource'
9239492394
- type: 'null'
9239592395
description: Best-effort token usage for the session, or null if unknown. Recorded usage may change.
92396+
review:
92397+
$ref: '#/components/schemas/SessionReviewResource'
92398+
description: Review applied to eligible actions in this session. Omitted when review is none and automatic review is not enabled. Omission means none.
9239692399
spend_control:
9239792400
$ref: '#/components/schemas/SessionSpendControlResource'
9239892401
description: Configured spending limit and best-effort consumption, in USD cents. Unlimited sessions omit this object.
@@ -92511,6 +92514,9 @@ components:
9251192514
type: boolean
9251292515
default: false
9251392516
description: Whether to stream session events as server-sent events. Defaults to `false`.
92517+
review:
92518+
$ref: '#/components/schemas/SessionReviewParam'
92519+
description: Action review mode. Omit to use none.
9251492520
spend_control:
9251592521
anyOf:
9251692522
- $ref: '#/components/schemas/SessionSpendControlParam'
@@ -94121,14 +94127,23 @@ components:
9412194127
- type: 'null'
9412294128
description: Omit to keep the current tier. Null resets it to auto.
9412394129
x-openai-go-optional-enum: true
94130+
tools:
94131+
type:
94132+
- array
94133+
- 'null'
94134+
items:
94135+
$ref: '#/components/schemas/AgentToolConfigParam'
94136+
minItems: 0
94137+
maxItems: 16384
94138+
description: Replaces the session tools. Functions and MCP servers change on the next model call. Built-in tools change by the next turn. Omit to keep the current tools, or pass null or an empty array to clear them.
9412494139
additionalProperties: false
94125-
description: Model settings that can change after session creation.
94140+
description: Agent settings that can change after session creation.
9412694141
UpdateAgentSessionParams:
9412794142
type: object
9412894143
properties:
9412994144
agent:
9413094145
$ref: '#/components/schemas/UpdateSessionAgentParam'
94131-
description: Model settings for subsequent turns. Omitted fields stay unchanged.
94146+
description: Agent settings to update on this session. Omitted fields stay unchanged.
9413294147
metadata:
9413394148
type:
9413494149
- object
@@ -94144,6 +94159,9 @@ components:
9414494159
minProperties: 0
9414594160
maxProperties: 16
9414694161
description: Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it. Up to 16 string key-value pairs, with keys up to 64 and values up to 512 characters.
94162+
review:
94163+
$ref: '#/components/schemas/SessionReviewParam'
94164+
description: Default action review for new root turns. Existing turns and their subagents keep their review mode.
9414794165
spend_control:
9414894166
anyOf:
9414994167
- $ref: '#/components/schemas/SessionSpendControlParam'
@@ -111902,6 +111920,21 @@ components:
111902111920
- $ref: '#/components/schemas/BetaResponseCustomToolCallInputDoneEvent'
111903111921
discriminator:
111904111922
propertyName: type
111923+
SessionReviewParam:
111924+
type: string
111925+
enum:
111926+
- none
111927+
- auto_review
111928+
x-enumDescriptions:
111929+
- Keep the existing execution behavior without automatic action review.
111930+
- Review eligible actions automatically. Deny manual approval fallbacks.
111931+
description: Review applied to eligible actions in a session.
111932+
SessionReviewResource:
111933+
type: string
111934+
enum:
111935+
- none
111936+
- auto_review
111937+
description: The configured action review mode.
111905111938
SessionSpendControlResource:
111906111939
type: object
111907111940
properties:

‎scripts/castiron/generated-files.json‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@
287287
},
288288
"src/openai/resources/beta/agents/sessions/sessions.py": {
289289
"mode": "100644",
290-
"sha256": "d1719b767d0b16e9eba1c405a66e9c11874da30a6ba2fa873603d1e6a9f6f7e2"
290+
"sha256": "264c1c83bc479591e9b70166208a4384e7266c7176a3fea7971f1d876ef54294"
291291
},
292292
"src/openai/resources/beta/agents/sessions/subagents/__init__.py": {
293293
"mode": "100644",
@@ -1703,7 +1703,7 @@
17031703
},
17041704
"src/openai/types/beta/agent_session.py": {
17051705
"mode": "100644",
1706-
"sha256": "4dbf44628416d12c8cdf46a6a73e293239736ca23dfb096e39850d68ffe5daa6"
1706+
"sha256": "c3563e065a7d80a1ee1676d31cd4b835a2363a691db2ac778f8a0c13f265e37b"
17071707
},
17081708
"src/openai/types/beta/agent_session_assistant_message.py": {
17091709
"mode": "100644",
@@ -2019,15 +2019,15 @@
20192019
},
20202020
"src/openai/types/beta/agents/session_create_params.py": {
20212021
"mode": "100644",
2022-
"sha256": "d4566c2d07b1a1469e929763fa12e626cb1dbeae6dedfd00648f8220b4af8581"
2022+
"sha256": "89d1618c6a0a6ef4791ee9376bbd8fdd512b8f0c259eb551c0c27281cbf61170"
20232023
},
20242024
"src/openai/types/beta/agents/session_list_params.py": {
20252025
"mode": "100644",
20262026
"sha256": "2de32d51ce2cfdbcf2224acfa8b04a28234717d6c373a3d68ee66bac90f75d2d"
20272027
},
20282028
"src/openai/types/beta/agents/session_update_params.py": {
20292029
"mode": "100644",
2030-
"sha256": "de3b4a42dfa9591dc07086c3ac888502c8dd0d3c7e77c82969a10a116dcee18e"
2030+
"sha256": "595ab57453c5678034088224417b1946dc37f4dd11e28c7f6df49d75d7dd3dd0"
20312031
},
20322032
"src/openai/types/beta/agents/sessions/__init__.py": {
20332033
"mode": "100644",
@@ -7715,7 +7715,7 @@
77157715
},
77167716
"tests/api_resources/beta/agents/test_sessions.py": {
77177717
"mode": "100644",
7718-
"sha256": "8cfecc54a8e76b3714fa35298725eb6b315750fe5a2b112fff6185e14df8f831"
7718+
"sha256": "3c3b516e8fb4271b93de010045026578ca1f38ba0310491cb6d1a60e61d5de23"
77197719
},
77207720
"tests/api_resources/beta/agents/test_vaults.py": {
77217721
"mode": "100644",

‎src/openai/resources/beta/agents/sessions/sessions.py‎

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ def create(
164164
agent_id: str | Omit = omit,
165165
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
166166
metadata: Optional[Dict[str, str]] | Omit = omit,
167+
review: Literal["none", "auto_review"] | Omit = omit,
167168
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
168169
stream: Literal[False] | Omit = omit,
169170
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
@@ -185,6 +186,7 @@ def create(
185186
agent_id: str | Omit = omit,
186187
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
187188
metadata: Optional[Dict[str, str]] | Omit = omit,
189+
review: Literal["none", "auto_review"] | Omit = omit,
188190
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
189191
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
190192
extra_headers: Headers | None = None,
@@ -205,6 +207,7 @@ def create(
205207
agent_id: str | Omit = omit,
206208
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
207209
metadata: Optional[Dict[str, str]] | Omit = omit,
210+
review: Literal["none", "auto_review"] | Omit = omit,
208211
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
209212
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
210213
extra_headers: Headers | None = None,
@@ -224,6 +227,7 @@ def create(
224227
agent_id: str | Omit = omit,
225228
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
226229
metadata: Optional[Dict[str, str]] | Omit = omit,
230+
review: Literal["none", "auto_review"] | Omit = omit,
227231
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
228232
stream: Literal[False] | Literal[True] | Omit = omit,
229233
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
@@ -242,6 +246,7 @@ def create(
242246
"agent_id": agent_id,
243247
"input": input,
244248
"metadata": metadata,
249+
"review": review,
245250
"spend_control": spend_control,
246251
"vault_ids": vault_ids,
247252
},
@@ -318,6 +323,7 @@ def update(
318323
*,
319324
agent: session_update_params.Agent | Omit = omit,
320325
metadata: Optional[Dict[str, str]] | Omit = omit,
326+
review: Literal["none", "auto_review"] | Omit = omit,
321327
spend_control: Optional[session_update_params.SpendControl] | Omit = omit,
322328
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
323329
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -326,19 +332,26 @@ def update(
326332
extra_body: Body | None = None,
327333
timeout: float | httpx2.Timeout | None | NotGiven = not_given,
328334
) -> AgentSession:
329-
"""Updates session metadata, model, reasoning effort, or service tier.
335+
"""Updates session tools, metadata, model, reasoning effort, or service tier.
330336
331337
Model
332338
settings apply to subsequent turns. Omitted fields are unchanged. See
333339
[managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
334340
335341
Args:
336-
agent: Model settings for subsequent turns. Omitted fields stay unchanged.
342+
agent: Agent settings to update on this session. Omitted fields stay unchanged.
337343
338344
metadata: Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
339345
Up to 16 string key-value pairs, with keys up to 64 and values up to 512
340346
characters.
341347
348+
review: Default action review for new root turns. Existing turns and their subagents
349+
keep their review mode.
350+
351+
- `none` - Keep the existing execution behavior without automatic action review.
352+
- `auto_review` - Review eligible actions automatically. Deny manual approval
353+
fallbacks.
354+
342355
spend_control: Omit to retain the limit; null or a null limit removes it without resetting
343356
spend.
344357
@@ -359,6 +372,7 @@ def update(
359372
{
360373
"agent": agent,
361374
"metadata": metadata,
375+
"review": review,
362376
"spend_control": spend_control,
363377
},
364378
session_update_params.SessionUpdateParams,
@@ -573,6 +587,7 @@ async def create(
573587
agent_id: str | Omit = omit,
574588
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
575589
metadata: Optional[Dict[str, str]] | Omit = omit,
590+
review: Literal["none", "auto_review"] | Omit = omit,
576591
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
577592
stream: Literal[False] | Omit = omit,
578593
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
@@ -594,6 +609,7 @@ async def create(
594609
agent_id: str | Omit = omit,
595610
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
596611
metadata: Optional[Dict[str, str]] | Omit = omit,
612+
review: Literal["none", "auto_review"] | Omit = omit,
597613
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
598614
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
599615
extra_headers: Headers | None = None,
@@ -614,6 +630,7 @@ async def create(
614630
agent_id: str | Omit = omit,
615631
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
616632
metadata: Optional[Dict[str, str]] | Omit = omit,
633+
review: Literal["none", "auto_review"] | Omit = omit,
617634
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
618635
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
619636
extra_headers: Headers | None = None,
@@ -633,6 +650,7 @@ async def create(
633650
agent_id: str | Omit = omit,
634651
input: Union[str, Iterable[AgentSessionInputMessageParam], None] | Omit = omit,
635652
metadata: Optional[Dict[str, str]] | Omit = omit,
653+
review: Literal["none", "auto_review"] | Omit = omit,
636654
spend_control: Optional[session_create_params.SpendControl] | Omit = omit,
637655
stream: Literal[False] | Literal[True] | Omit = omit,
638656
vault_ids: Optional[SequenceNotStr[str]] | Omit = omit,
@@ -651,6 +669,7 @@ async def create(
651669
"agent_id": agent_id,
652670
"input": input,
653671
"metadata": metadata,
672+
"review": review,
654673
"spend_control": spend_control,
655674
"vault_ids": vault_ids,
656675
},
@@ -727,6 +746,7 @@ async def update(
727746
*,
728747
agent: session_update_params.Agent | Omit = omit,
729748
metadata: Optional[Dict[str, str]] | Omit = omit,
749+
review: Literal["none", "auto_review"] | Omit = omit,
730750
spend_control: Optional[session_update_params.SpendControl] | Omit = omit,
731751
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
732752
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -735,19 +755,26 @@ async def update(
735755
extra_body: Body | None = None,
736756
timeout: float | httpx2.Timeout | None | NotGiven = not_given,
737757
) -> AgentSession:
738-
"""Updates session metadata, model, reasoning effort, or service tier.
758+
"""Updates session tools, metadata, model, reasoning effort, or service tier.
739759
740760
Model
741761
settings apply to subsequent turns. Omitted fields are unchanged. See
742762
[managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
743763
744764
Args:
745-
agent: Model settings for subsequent turns. Omitted fields stay unchanged.
765+
agent: Agent settings to update on this session. Omitted fields stay unchanged.
746766
747767
metadata: Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
748768
Up to 16 string key-value pairs, with keys up to 64 and values up to 512
749769
characters.
750770
771+
review: Default action review for new root turns. Existing turns and their subagents
772+
keep their review mode.
773+
774+
- `none` - Keep the existing execution behavior without automatic action review.
775+
- `auto_review` - Review eligible actions automatically. Deny manual approval
776+
fallbacks.
777+
751778
spend_control: Omit to retain the limit; null or a null limit removes it without resetting
752779
spend.
753780
@@ -768,6 +795,7 @@ async def update(
768795
{
769796
"agent": agent,
770797
"metadata": metadata,
798+
"review": review,
771799
"spend_control": spend_control,
772800
},
773801
session_update_params.SessionUpdateParams,

‎src/openai/types/beta/agent_session.py‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,13 @@ class AgentSession(BaseModel):
287287
vault_ids: List[str]
288288
"""The IDs of vaults made available to the session."""
289289

290+
review: Optional[Literal["none", "auto_review"]] = None
291+
"""Review applied to eligible actions in this session.
292+
293+
Omitted when review is none and automatic review is not enabled. Omission means
294+
none.
295+
"""
296+
290297
spend_control: Optional[SpendControl] = None
291298
"""Configured spending limit and best-effort consumption, in USD cents.
292299

‎src/openai/types/beta/agents/session_create_params.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ class SessionCreateParamsBase(TypedDict, total=False):
5757
characters. Omission or null defaults to an empty map.
5858
"""
5959

60+
review: Literal["none", "auto_review"]
61+
"""Action review mode. Omit to use none.
62+
63+
- `none` - Keep the existing execution behavior without automatic action review.
64+
- `auto_review` - Review eligible actions automatically. Deny manual approval
65+
fallbacks.
66+
"""
67+
6068
spend_control: Optional[SpendControl]
6169
"""Optional spending limit in USD cents.
6270

0 commit comments

Comments
 (0)