From 670f69416bf91c5dfd8b58669e78050b584ff053 Mon Sep 17 00:00:00 2001 From: guinness-oai Date: Fri, 31 Jul 2026 23:46:56 +0000 Subject: [PATCH] Allow custom Codex instructions for realtime transitions (#36408) ## What changed - Add optional `realtimeStartInstructions` and `realtimeEndInstructions` fields to `thread/realtime/start`. - Apply the instructions when Codex enters and leaves realtime mode, while preserving the existing defaults when either field is omitted. - Limit each field to 8,192 estimated tokens. ## Testing - Cover custom entry and exit instructions across realtime state transitions. - Cover token-limit validation for both fields. GitOrigin-RevId: b9cfa1ff22e084d8a6b2ed56bd27d95ffdd6b6bd --- .../app-server-exports-experimental.json.zst | Bin 131279 -> 131372 bytes .../src/protocol/common.rs | 14 ++ .../src/protocol/v2/realtime.rs | 6 + codex-rs/app-server/README.md | 9 +- .../src/request_processors/turn_processor.rs | 2 + .../tests/suite/v2/experimental_api.rs | 4 + .../tests/suite/v2/realtime_conversation.rs | 147 ++++++++++++++++++ .../src/context/realtime_end_instructions.rs | 20 ++- .../core/src/context/world_state/realtime.rs | 19 ++- .../src/context/world_state/realtime_tests.rs | 8 +- ...rld_state__realtime__tests__snapshots.snap | 2 - codex-rs/core/src/realtime_conversation.rs | 54 ++++++- codex-rs/core/src/session/tests.rs | 2 +- codex-rs/core/src/session/world_state.rs | 15 +- codex-rs/core/tests/suite/compact_remote.rs | 8 +- .../core/tests/suite/realtime_conversation.rs | 86 ++++++++++ .../tests/suite/realtime_initial_items.rs | 28 ++++ codex-rs/protocol/src/protocol.rs | 4 + 18 files changed, 395 insertions(+), 33 deletions(-) diff --git a/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-experimental.json.zst b/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-experimental.json.zst index 3a0f3fe566e434582810ba0c804a15f0de932bbe..f13010e0a4b7256455b19fb18a1d60f2556682bc 100644 GIT binary patch delta 101315 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 H1M+GKWk0Hp delta 101238 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
TIzb;>rj2DW2MmA`t+^kio{|Ot$$DG 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

oi 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

mf(6%ae<_?><$Z=QYLu$DO{eIrEwfp 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 diff --git a/codex-rs/app-server-protocol/src/protocol/common.rs b/codex-rs/app-server-protocol/src/protocol/common.rs index b66e33988e..10b684720f 100644 --- a/codex-rs/app-server-protocol/src/protocol/common.rs +++ b/codex-rs/app-server-protocol/src/protocol/common.rs @@ -3632,6 +3632,8 @@ mod tests { text: "Understood.".to_string(), }, ]), + realtime_start_instructions: Some("Use realtime output channels.".to_string()), + realtime_end_instructions: Some("Resume normal text responses.".to_string()), prompt: Some(Some("You are on a call".to_string())), realtime_session_id: Some("sess_456".to_string()), transport: None, @@ -3668,6 +3670,8 @@ mod tests { "text": "Understood." } ], + "realtimeStartInstructions": "Use realtime output channels.", + "realtimeEndInstructions": "Resume normal text responses.", "prompt": "You are on a call", "realtimeSessionId": "sess_456", "transport": null, @@ -3696,6 +3700,8 @@ mod tests { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: None, realtime_session_id: None, transport: None, @@ -3719,6 +3725,8 @@ mod tests { "outputModality": "audio", "includeStartupContext": null, "initialItems": null, + "realtimeStartInstructions": null, + "realtimeEndInstructions": null, "realtimeSessionId": null, "transport": null, "version": null, @@ -3742,6 +3750,8 @@ mod tests { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(None), realtime_session_id: None, transport: None, @@ -3765,6 +3775,8 @@ mod tests { "outputModality": "audio", "includeStartupContext": null, "initialItems": null, + "realtimeStartInstructions": null, + "realtimeEndInstructions": null, "prompt": null, "realtimeSessionId": null, "transport": null, @@ -3988,6 +4000,8 @@ mod tests { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("You are on a call".to_string())), realtime_session_id: None, transport: None, diff --git a/codex-rs/app-server-protocol/src/protocol/v2/realtime.rs b/codex-rs/app-server-protocol/src/protocol/v2/realtime.rs index 950590c366..1b7ae70043 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2/realtime.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2/realtime.rs @@ -106,6 +106,12 @@ pub struct ThreadRealtimeStartParams { /// limited to 128 items and 8,192 estimated text tokens in total. #[ts(optional = nullable)] pub initial_items: Option>, + /// Developer instructions given to the backing Codex model when this realtime session starts. + #[ts(optional = nullable)] + pub realtime_start_instructions: Option, + /// Developer instructions given to the backing Codex model when this realtime session ends. + #[ts(optional = nullable)] + pub realtime_end_instructions: Option, #[serde( default, deserialize_with = "crate::protocol::serde_helpers::deserialize_double_option", diff --git a/codex-rs/app-server/README.md b/codex-rs/app-server/README.md index b8c00d8a38..2e7a384bb3 100644 --- a/codex-rs/app-server/README.md +++ b/codex-rs/app-server/README.md @@ -180,7 +180,7 @@ Example with notification opt-out: - `thread/inject_items` — append raw Responses API items to a loaded thread’s model-visible history without starting a user turn; returns `{}` on success. - `turn/steer` — add user input to an already in-flight regular turn without starting a new turn; returns the active `turnId` that accepted the input. `clientUserMessageId` is optional; when supplied, the corresponding `userMessage` item echoes it as `clientId`. Review and manual compaction turns reject `turn/steer`. - `turn/interrupt` — request cancellation of an in-flight turn by `(thread_id, turn_id)`; success is an empty `{}` response and the turn finishes with `status: "interrupted"`. -- `thread/realtime/start` — start a thread-scoped realtime session (experimental); pass `outputModality: "text"` or `outputModality: "audio"` to choose model output, optionally pass `model` and `version` to override configured realtime selection for this session only, pass `includeStartupContext: false` to omit Codex's generated startup context, and optionally pass `initialItems` to seed V3 with complete role-bearing text messages at session creation. Version `"v1"` uses legacy Bidi `conversation.handoff.*`, `"v2"` uses the Realtime Voice API, and `"v3"` preserves V1 Codex Voice behavior while using Frameless Bidi `delegation.*`. For V3 automatic Codex text, `codexResponseHandoffMode` accepts `"thinking"` (the default; all output uses channel-less thinking appends), `"commentary"` (all output uses the commentary channel), or `"bemTags"` (the raw BEM envelope selects the API channel: BEM `analysis` and `commentary` use `commentary`, while BEM `final` and unparsable output use `speakable`). The BEM envelope remains in the appended text for the frontend model to interpret. V1 and V2 ignore this setting. V3 handoffs do not prepend the legacy `"Agent Final Message"` label. Pass `clientManagedHandoffs: true` to disable automatic Codex response delivery so only the client's explicit append calls produce handoffs. Pass `codexResponsesAsItems: true` to send automatic Codex responses as realtime conversation items instead, and optionally pass `codexResponseItemPrefix` to prepend experiment instructions to those items. Returns `{}` and streams `thread/realtime/*` notifications. Omit `transport` for the websocket transport, or pass `{ "type": "webrtc", "sdp": "..." }` to create a Bidi WebRTC session from a browser-generated SDP offer; the remote answer SDP is emitted as `thread/realtime/sdp`. Conversation `version: "v2"` requests remain unsupported for WebRTC. +- `thread/realtime/start` — start a thread-scoped realtime session (experimental); pass `outputModality: "text"` or `outputModality: "audio"` to choose model output, optionally pass `model` and `version` to override configured realtime selection for this session only, pass `includeStartupContext: false` to omit Codex's generated startup context, and optionally pass `initialItems` to seed V3 with complete role-bearing text messages at session creation. Pass `realtimeStartInstructions` and `realtimeEndInstructions` to control the developer instructions given to the backing Codex model when this session starts and ends. Version `"v1"` uses legacy Bidi `conversation.handoff.*`, `"v2"` uses the Realtime Voice API, and `"v3"` preserves V1 Codex Voice behavior while using Frameless Bidi `delegation.*`. For V3 automatic Codex text, `codexResponseHandoffMode` accepts `"thinking"` (the default; all output uses channel-less thinking appends), `"commentary"` (all output uses the commentary channel), or `"bemTags"` (the raw BEM envelope selects the API channel: BEM `analysis` and `commentary` use `commentary`, while BEM `final` and unparsable output use `speakable`). The BEM envelope remains in the appended text for the frontend model to interpret. V1 and V2 ignore this setting. V3 handoffs do not prepend the legacy `"Agent Final Message"` label. Pass `clientManagedHandoffs: true` to disable automatic Codex response delivery so only the client's explicit append calls produce handoffs. Pass `codexResponsesAsItems: true` to send automatic Codex responses as realtime conversation items instead, and optionally pass `codexResponseItemPrefix` to prepend experiment instructions to those items. Returns `{}` and streams `thread/realtime/*` notifications. Omit `transport` for the websocket transport, or pass `{ "type": "webrtc", "sdp": "..." }` to create a Bidi WebRTC session from a browser-generated SDP offer; the remote answer SDP is emitted as `thread/realtime/sdp`. Conversation `version: "v2"` requests remain unsupported for WebRTC. - `thread/realtime/appendAudio` — append an input audio chunk to the active realtime session (experimental); returns `{}`. - `thread/realtime/appendText` — append text input to the active realtime session with a required `role` of `user`, `developer`, or `assistant` (experimental); returns `{}`. Older clients that omit `role` default to `user`. - `thread/realtime/appendSpeech` — append text that the realtime model should speak to the user (experimental); returns `{}`. @@ -983,6 +983,13 @@ Then send `offer.sdp` to app-server. Core uses `experimental_realtime_ws_backend Omit `prompt` to use Codex's default realtime backend prompt. Send `prompt: null` or `prompt: ""` when the session should start without that default backend prompt. +Pass `realtimeStartInstructions` to provide the developer instructions given to +the backing Codex model when the thread enters realtime mode, and +`realtimeEndInstructions` to provide its developer instructions when the session +ends. These instructions configure Codex, not the realtime frontend model. They +are emitted on realtime state transitions, rather than repeated on every turn. +Each instructions field is limited to 8,192 estimated tokens. Omitting either +field preserves Codex's existing default instructions. Clients may also pass `model` on `thread/realtime/start` to select a different realtime session configuration without changing thread or user config. Clients may pass `version` to select the realtime protocol for this session diff --git a/codex-rs/app-server/src/request_processors/turn_processor.rs b/codex-rs/app-server/src/request_processors/turn_processor.rs index f2ca6132f3..2ac576cac7 100644 --- a/codex-rs/app-server/src/request_processors/turn_processor.rs +++ b/codex-rs/app-server/src/request_processors/turn_processor.rs @@ -1095,6 +1095,8 @@ impl TurnRequestProcessor { role: item.role, }) .collect(), + realtime_start_instructions: params.realtime_start_instructions, + realtime_end_instructions: params.realtime_end_instructions, prompt: params.prompt, realtime_session_id: params.realtime_session_id, transport: params.transport.map(|transport| match transport { diff --git a/codex-rs/app-server/tests/suite/v2/experimental_api.rs b/codex-rs/app-server/tests/suite/v2/experimental_api.rs index e099c514c6..c408ac0d6a 100644 --- a/codex-rs/app-server/tests/suite/v2/experimental_api.rs +++ b/codex-rs/app-server/tests/suite/v2/experimental_api.rs @@ -100,6 +100,8 @@ async fn realtime_conversation_start_requires_experimental_api_capability() -> R output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("hello".to_string())), realtime_session_id: None, transport: None, @@ -231,6 +233,8 @@ async fn realtime_webrtc_start_requires_experimental_api_capability() -> Result< output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("hello".to_string())), realtime_session_id: None, transport: Some(ThreadRealtimeStartTransport::Webrtc { diff --git a/codex-rs/app-server/tests/suite/v2/realtime_conversation.rs b/codex-rs/app-server/tests/suite/v2/realtime_conversation.rs index 06620b95bd..0d2c91bfc2 100644 --- a/codex-rs/app-server/tests/suite/v2/realtime_conversation.rs +++ b/codex-rs/app-server/tests/suite/v2/realtime_conversation.rs @@ -374,6 +374,8 @@ impl RealtimeE2eHarness { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ThreadRealtimeStartTransport::Webrtc { @@ -432,6 +434,8 @@ impl RealtimeE2eHarness { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -466,6 +470,8 @@ impl RealtimeE2eHarness { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -484,6 +490,25 @@ impl RealtimeE2eHarness { read_notification(&mut self.mcp, method).await } + async fn complete_turn(&mut self, text: &str) -> Result<()> { + let request_id = self + .mcp + .send_turn_start_request(TurnStartParams { + thread_id: self.thread_id.clone(), + input: vec![V2UserInput::Text { + text: text.to_string(), + text_elements: Vec::new(), + }], + ..Default::default() + }) + .await?; + let _: TurnStartResponse = + timeout(DEFAULT_TIMEOUT, self.mcp.read_response(request_id)).await??; + self.read_notification::("turn/completed") + .await?; + Ok(()) + } + /// Returns the nth JSON message app-server wrote to the fake Realtime API /// sideband websocket. async fn sideband_outbound_request(&self, request_index: usize) -> Value { @@ -715,6 +740,8 @@ async fn realtime_conversation_streams_v2_notifications() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: None, realtime_session_id: None, transport: None, @@ -994,6 +1021,8 @@ async fn realtime_start_can_skip_startup_context() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: Some(false), initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: None, realtime_session_id: None, transport: None, @@ -1089,6 +1118,8 @@ async fn realtime_text_output_modality_requests_text_output_and_final_transcript output_modality: RealtimeOutputModality::Text, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: None, realtime_session_id: None, transport: None, @@ -1265,6 +1296,8 @@ async fn realtime_conversation_stop_emits_closed_notification() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -1300,6 +1333,114 @@ async fn realtime_conversation_stop_emits_closed_notification() -> Result<()> { Ok(()) } +#[tokio::test] +async fn realtime_mode_uses_client_instructions_on_entry_and_exit() -> Result<()> { + skip_if_no_network!(Ok(())); + + let start_instructions = "Use [analysis], [final], and ::realtime-inline for voice output."; + let end_instructions = "Voice has ended. Resume the normal text output protocol."; + let mut harness = RealtimeE2eHarness::new( + RealtimeTestVersion::V1, + main_loop_responses(vec![ + create_final_assistant_message_sse_response("first voice response")?, + create_final_assistant_message_sse_response("second voice response")?, + create_final_assistant_message_sse_response("text response after voice")?, + ]), + realtime_sideband(vec![open_realtime_sideband_connection(vec![ + vec![session_updated("sess_client_controlled_mode")], + vec![], + vec![], + ])]), + ) + .await?; + + let start_request_id = harness + .mcp + .send_thread_realtime_start_request(ThreadRealtimeStartParams { + thread_id: harness.thread_id.clone(), + client_managed_handoffs: None, + flush_transcript_tail_on_session_end: None, + codex_responses_as_items: None, + codex_response_item_prefix: None, + codex_response_handoff_mode: None, + codex_response_handoff_channel_prefixes: None, + model: None, + output_modality: RealtimeOutputModality::Audio, + include_startup_context: None, + initial_items: None, + realtime_start_instructions: Some(start_instructions.to_string()), + realtime_end_instructions: Some(end_instructions.to_string()), + prompt: Some(Some("backend prompt".to_string())), + realtime_session_id: None, + transport: None, + version: None, + voice: None, + }) + .await?; + let _: ThreadRealtimeStartResponse = + timeout(DEFAULT_TIMEOUT, harness.mcp.read_response(start_request_id)).await??; + harness + .read_notification::("thread/realtime/started") + .await?; + + for input in ["first voice turn", "second voice turn"] { + harness.complete_turn(input).await?; + } + + let stop_request_id = harness + .mcp + .send_thread_realtime_stop_request(ThreadRealtimeStopParams { + thread_id: harness.thread_id.clone(), + }) + .await?; + let _: ThreadRealtimeStopResponse = + timeout(DEFAULT_TIMEOUT, harness.mcp.read_response(stop_request_id)).await??; + harness + .read_notification::("thread/realtime/closed") + .await?; + + harness.complete_turn("continue in text").await?; + + let requests = harness.main_loop_responses_requests().await?; + assert_eq!(requests.len(), 3); + assert!(response_request_contains_text( + &requests[0], + start_instructions + )); + assert!(!response_request_contains_text( + &requests[0], + end_instructions + )); + assert!(!response_request_contains_text( + &requests[1], + end_instructions + )); + assert!(response_request_contains_text( + &requests[2], + end_instructions + )); + assert!(response_request_contains_text( + &requests[2], + &format!("\n{end_instructions}\n"), + )); + + let start_message_count = requests[1]["input"] + .as_array() + .context("second voice Responses request should contain input")? + .iter() + .filter(|item| { + item["role"] == "developer" && response_request_contains_text(item, start_instructions) + }) + .count(); + assert!( + start_message_count <= 1, + "realtime entry instructions should not be injected again on subsequent turns" + ); + + harness.shutdown().await; + Ok(()) +} + #[tokio::test] async fn realtime_webrtc_start_emits_sdp_notification() -> Result<()> { skip_if_no_network!(Ok(())); @@ -1362,6 +1503,8 @@ async fn realtime_webrtc_start_emits_sdp_notification() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ThreadRealtimeStartTransport::Webrtc { @@ -2997,6 +3140,8 @@ async fn realtime_webrtc_start_surfaces_backend_error() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ThreadRealtimeStartTransport::Webrtc { @@ -3060,6 +3205,8 @@ async fn realtime_conversation_requires_feature_flag() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: None, initial_items: None, + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, diff --git a/codex-rs/core/src/context/realtime_end_instructions.rs b/codex-rs/core/src/context/realtime_end_instructions.rs index 2db5947618..872e4dd90c 100644 --- a/codex-rs/core/src/context/realtime_end_instructions.rs +++ b/codex-rs/core/src/context/realtime_end_instructions.rs @@ -5,13 +5,17 @@ use codex_protocol::protocol::REALTIME_CONVERSATION_OPEN_TAG; #[derive(Debug, Clone, PartialEq, Eq)] pub(crate) struct RealtimeEndInstructions { - reason: String, + instructions: Option, } impl RealtimeEndInstructions { - pub(crate) fn new(reason: impl Into) -> Self { + pub(crate) fn new() -> Self { + Self { instructions: None } + } + + pub(crate) fn with_instructions(instructions: impl Into) -> Self { Self { - reason: reason.into(), + instructions: Some(instructions.into()), } } } @@ -32,11 +36,11 @@ impl ContextualUserFragment for RealtimeEndInstructions { ) } - fn matches_text(text: &str) -> bool { - text.contains(END_INSTRUCTIONS.trim()) - } - fn body(&self) -> String { - format!("\n{}\n\nReason: {}\n", END_INSTRUCTIONS.trim(), self.reason) + let instructions = self + .instructions + .as_deref() + .unwrap_or_else(|| END_INSTRUCTIONS.trim()); + format!("\n{instructions}\n") } } diff --git a/codex-rs/core/src/context/world_state/realtime.rs b/codex-rs/core/src/context/world_state/realtime.rs index 383bb4b2cd..7911854c08 100644 --- a/codex-rs/core/src/context/world_state/realtime.rs +++ b/codex-rs/core/src/context/world_state/realtime.rs @@ -12,6 +12,7 @@ use serde::Serialize; pub(crate) struct RealtimeState { snapshot: RealtimeSnapshot, start_instructions: Option, + end_instructions: Option, } #[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)] @@ -20,10 +21,15 @@ pub(crate) struct RealtimeSnapshot { } impl RealtimeState { - pub(crate) fn new(active: bool, start_instructions: Option<&str>) -> Self { + pub(crate) fn new( + active: bool, + start_instructions: Option<&str>, + end_instructions: Option<&str>, + ) -> Self { Self { snapshot: RealtimeSnapshot { active }, start_instructions: start_instructions.map(str::to_string), + end_instructions: end_instructions.map(str::to_string), } } @@ -37,7 +43,12 @@ impl RealtimeState { fn render_transition(&self, previous_active: bool) -> Option> { match (previous_active, self.snapshot.active) { (false, true) => Some(self.render_start()), - (true, false) => Some(Box::new(RealtimeEndInstructions::new("inactive"))), + (true, false) => Some(match self.end_instructions.as_deref() { + Some(instructions) => { + Box::new(RealtimeEndInstructions::with_instructions(instructions)) + } + None => Box::new(RealtimeEndInstructions::new()), + }), (false, false) | (true, true) => None, } } @@ -52,9 +63,7 @@ impl WorldStateSection for RealtimeState { } fn matches_legacy_fragment(role: &str, text: &str) -> bool { - role == "developer" - && RealtimeStartInstructions::matches_text(text) - && !RealtimeEndInstructions::matches_text(text) + role == "developer" && RealtimeStartInstructions::matches_text(text) } fn has_retained_fragment_matcher() -> bool { diff --git a/codex-rs/core/src/context/world_state/realtime_tests.rs b/codex-rs/core/src/context/world_state/realtime_tests.rs index 06e3d8e4ce..f172e19bf2 100644 --- a/codex-rs/core/src/context/world_state/realtime_tests.rs +++ b/codex-rs/core/src/context/world_state/realtime_tests.rs @@ -2,7 +2,7 @@ use super::super::test_support::render_section_cases; use super::*; fn state(active: bool, start_instructions: Option<&str>) -> RealtimeState { - RealtimeState::new(active, start_instructions) + RealtimeState::new(active, start_instructions, /*end_instructions*/ None) } #[test] @@ -34,10 +34,10 @@ fn snapshots() { } #[test] -fn retained_fragment_matcher_only_matches_starts() { +fn retained_fragment_matcher_matches_realtime_fragments() { let start = RealtimeStartWithInstructions::new("custom instructions").render(); - let end = RealtimeEndInstructions::new("inactive").render(); + let end = RealtimeEndInstructions::new().render(); assert!(RealtimeState::matches_legacy_fragment("developer", &start)); - assert!(!RealtimeState::matches_legacy_fragment("developer", &end)); + assert!(RealtimeState::matches_legacy_fragment("developer", &end)); } diff --git a/codex-rs/core/src/context/world_state/snapshots/codex_core__context__world_state__realtime__tests__snapshots.snap b/codex-rs/core/src/context/world_state/snapshots/codex_core__context__world_state__realtime__tests__snapshots.snap index f5f4345b9f..3507c2d020 100644 --- a/codex-rs/core/src/context/world_state/snapshots/codex_core__context__world_state__realtime__tests__snapshots.snap +++ b/codex-rs/core/src/context/world_state/snapshots/codex_core__context__world_state__realtime__tests__snapshots.snap @@ -50,8 +50,6 @@ None Realtime conversation ended. Subsequent user input will return to typed text rather than transcript-style text. Do not assume recognition errors or missing punctuation once realtime has ended. Resume normal chat behavior. - -Reason: inactive Unknown -> {"active":true} (role - developer) diff --git a/codex-rs/core/src/realtime_conversation.rs b/codex-rs/core/src/realtime_conversation.rs index 740cd6f98c..b56da61bbe 100644 --- a/codex-rs/core/src/realtime_conversation.rs +++ b/codex-rs/core/src/realtime_conversation.rs @@ -92,6 +92,7 @@ const REALTIME_STARTUP_CONTEXT_TOKEN_BUDGET: usize = 5_300; const REALTIME_ASSISTANT_OUTPUT_TOKEN_BUDGET: usize = 1_000; const REALTIME_INITIAL_ITEMS_MAX_COUNT: usize = 128; const REALTIME_INITIAL_ITEMS_MAX_TOKENS: usize = 8_192; +const REALTIME_MODE_INSTRUCTIONS_MAX_TOKENS: usize = 8_192; const HANDOFF_STREAM_FLUSH_INTERVAL: Duration = Duration::from_millis(200); const HANDOFF_STREAM_TRUNCATION_MARKER: &str = "\n…output truncated…\n"; const AGENT_FINAL_MESSAGE_PREFIX: &str = "\"Agent Final Message\":\n\n"; @@ -122,6 +123,13 @@ enum RealtimeFanoutTaskStop { pub(crate) struct RealtimeConversationManager { state: Mutex>, + mode_instructions: Mutex>, +} + +#[derive(Clone, Debug)] +pub(crate) struct RealtimeModeInstructions { + pub(crate) start: Option, + pub(crate) end: Option, } #[derive(Clone, Copy, Debug, PartialEq, Eq)] @@ -484,9 +492,14 @@ impl RealtimeConversationManager { pub(crate) fn new() -> Self { Self { state: Mutex::new(None), + mode_instructions: Mutex::new(None), } } + pub(crate) async fn mode_instructions(&self) -> Option { + self.mode_instructions.lock().await.clone() + } + pub(crate) async fn running_state(&self) -> Option<()> { let state = self.state.lock().await; state @@ -504,7 +517,11 @@ impl RealtimeConversationManager { ) } - async fn start(&self, start: RealtimeStart) -> CodexResult { + async fn start( + &self, + start: RealtimeStart, + mode_instructions: RealtimeModeInstructions, + ) -> CodexResult { let previous_state = { let mut guard = self.state.lock().await; guard.take() @@ -513,7 +530,9 @@ impl RealtimeConversationManager { stop_conversation_state(state, RealtimeFanoutTaskStop::Await).await; } - self.start_inner(start).await + let output = self.start_inner(start).await?; + *self.mode_instructions.lock().await = Some(mode_instructions); + Ok(output) } async fn start_inner(&self, start: RealtimeStart) -> CodexResult { @@ -1104,6 +1123,8 @@ struct PreparedRealtimeConversationStart { codex_response_item_prefix: Option, codex_response_handoff_mode: CodexResponseHandoffMode, codex_response_handoff_channel_prefixes: Option>>, + realtime_start_instructions: Option, + realtime_end_instructions: Option, realtime_call_api_provider: Option, requested_realtime_session_id: Option, version: RealtimeWsVersion, @@ -1198,6 +1219,8 @@ async fn prepare_realtime_start( codex_response_item_prefix: params.codex_response_item_prefix, codex_response_handoff_mode: params.codex_response_handoff_mode, codex_response_handoff_channel_prefixes: params.codex_response_handoff_channel_prefixes, + realtime_start_instructions: params.realtime_start_instructions, + realtime_end_instructions: params.realtime_end_instructions, realtime_call_api_provider, requested_realtime_session_id, version, @@ -1229,6 +1252,25 @@ pub(crate) async fn build_realtime_session_config( version: RealtimeWsVersion, configured_voice: ConfiguredRealtimeVoice, ) -> CodexResult { + for (name, instructions) in [ + ( + "realtime start instructions", + params.realtime_start_instructions.as_deref(), + ), + ( + "realtime end instructions", + params.realtime_end_instructions.as_deref(), + ), + ] { + if instructions.is_some_and(|instructions| { + approx_token_count(instructions) > REALTIME_MODE_INSTRUCTIONS_MAX_TOKENS + }) { + return Err(CodexErr::InvalidRequest(format!( + "{name} must not exceed {REALTIME_MODE_INSTRUCTIONS_MAX_TOKENS} estimated tokens" + ))); + } + } + let config = sess.get_config().await; let prompt = prepare_realtime_backend_prompt( params.prompt.clone(), @@ -1398,6 +1440,8 @@ async fn handle_start_inner( codex_response_item_prefix, codex_response_handoff_mode, codex_response_handoff_channel_prefixes, + realtime_start_instructions, + realtime_end_instructions, realtime_call_api_provider, requested_realtime_session_id, version, @@ -1409,6 +1453,10 @@ async fn handle_start_inner( ConversationStartTransport::Websocket => None, ConversationStartTransport::Webrtc { sdp } => Some(sdp), }; + let mode_instructions = RealtimeModeInstructions { + start: realtime_start_instructions, + end: realtime_end_instructions, + }; let start = RealtimeStart { api_provider, realtime_sideband_base_url, @@ -1424,7 +1472,7 @@ async fn handle_start_inner( model_client: sess.services.model_client.clone(), sdp, }; - let start_output = sess.conversation.start(start).await?; + let start_output = sess.conversation.start(start, mode_instructions).await?; info!("realtime conversation started"); diff --git a/codex-rs/core/src/session/tests.rs b/codex-rs/core/src/session/tests.rs index 70ddf6e8f7..302e9bcc16 100644 --- a/codex-rs/core/src/session/tests.rs +++ b/codex-rs/core/src/session/tests.rs @@ -8808,7 +8808,7 @@ async fn record_context_updates_emits_realtime_end_when_session_stops_being_live assert!( developer_texts .iter() - .any(|text| text.contains("Reason: inactive")), + .any(|text| text.contains("")), "expected a realtime end update, got {developer_texts:?}" ); } diff --git a/codex-rs/core/src/session/world_state.rs b/codex-rs/core/src/session/world_state.rs index 3686f778c3..c96c2d7cc9 100644 --- a/codex-rs/core/src/session/world_state.rs +++ b/codex-rs/core/src/session/world_state.rs @@ -96,12 +96,19 @@ impl Session { { world_state.add_section(ContextWindowGuidanceState::new(guidance)); } + let realtime_mode_instructions = self.conversation.mode_instructions().await; world_state.add_section(RealtimeState::new( turn_context.realtime_active, - turn_context - .config - .experimental_realtime_start_instructions - .as_deref(), + realtime_mode_instructions + .as_ref() + .and_then(|instructions| instructions.start.as_deref()) + .or(turn_context + .config + .experimental_realtime_start_instructions + .as_deref()), + realtime_mode_instructions + .as_ref() + .and_then(|instructions| instructions.end.as_deref()), )); world_state.add_section(AgentsMdState::new(step_context.loaded_agents_md.as_deref())); if turn_context.config.include_permissions_instructions { diff --git a/codex-rs/core/tests/suite/compact_remote.rs b/codex-rs/core/tests/suite/compact_remote.rs index d4ad3327d7..c9e64f78a8 100644 --- a/codex-rs/core/tests/suite/compact_remote.rs +++ b/codex-rs/core/tests/suite/compact_remote.rs @@ -253,6 +253,8 @@ async fn start_realtime_conversation(codex: &codex_core::CodexThread) -> Result< output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -300,10 +302,6 @@ fn assert_request_contains_realtime_start(request: &responses::ResponsesRequest) body.contains(""), "expected request to restate realtime instructions" ); - assert!( - !body.contains("Reason: inactive"), - "expected request to use realtime start instructions" - ); } fn assert_request_contains_custom_realtime_start( @@ -332,7 +330,7 @@ fn assert_request_contains_realtime_end(request: &responses::ResponsesRequest) { "expected request to restate realtime instructions" ); assert!( - body.contains("Reason: inactive"), + body.contains("Realtime conversation ended."), "expected request to use realtime end instructions" ); } diff --git a/codex-rs/core/tests/suite/realtime_conversation.rs b/codex-rs/core/tests/suite/realtime_conversation.rs index bd37b35389..c9f991e63a 100644 --- a/codex-rs/core/tests/suite/realtime_conversation.rs +++ b/codex-rs/core/tests/suite/realtime_conversation.rs @@ -296,6 +296,8 @@ async fn conversation_start_audio_text_close_round_trip() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -446,6 +448,8 @@ async fn conversation_start_defaults_to_v2_and_gpt_realtime_1_5() -> Result<()> output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -537,6 +541,8 @@ async fn conversation_webrtc_frameless_chatgpt_sends_codex_headers_to_backend() output_modality: RealtimeOutputModality::Audio, include_startup_context: false, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -661,6 +667,8 @@ async fn conversation_webrtc_start_posts_generated_session() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -852,6 +860,8 @@ async fn conversation_webrtc_start_uses_avas_query() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -954,6 +964,8 @@ async fn conversation_webrtc_default_v1_ignores_configured_v2_voice() -> Result< output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -1018,6 +1030,8 @@ async fn conversation_webrtc_default_v1_rejects_explicit_v2_voice() -> Result<() output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -1092,6 +1106,8 @@ async fn conversation_webrtc_start_uses_configured_call_base_url_for_avas() -> R output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -1203,6 +1219,8 @@ async fn conversation_webrtc_close_while_sideband_connecting_drops_pending_join( output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -1307,6 +1325,8 @@ async fn conversation_webrtc_sideband_connect_failure_closes_with_error() -> Res output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: Some(ConversationStartTransport::Webrtc { @@ -1404,6 +1424,8 @@ async fn conversation_start_uses_openai_env_key_fallback_with_chatgpt_auth() -> output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -1499,6 +1521,8 @@ async fn assert_transport_close_tail_flush( output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -1619,6 +1643,8 @@ async fn conversation_start_preflight_failure_emits_realtime_error_only() -> Res output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -1674,6 +1700,8 @@ async fn conversation_start_connect_failure_emits_realtime_error_only() -> Resul output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -1777,6 +1805,8 @@ async fn conversation_second_start_replaces_runtime() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("old".to_string())), realtime_session_id: Some("conv_old".to_string()), transport: None, @@ -1811,6 +1841,8 @@ async fn conversation_second_start_replaces_runtime() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("new".to_string())), realtime_session_id: Some("conv_new".to_string()), transport: None, @@ -1916,6 +1948,8 @@ async fn conversation_uses_experimental_realtime_ws_base_url_override() -> Resul output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -1989,6 +2023,8 @@ async fn conversation_uses_default_realtime_backend_prompt() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: None, realtime_session_id: None, transport: None, @@ -2070,6 +2106,8 @@ async fn conversation_uses_empty_instructions_for_null_or_empty_prompt() -> Resu output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt, realtime_session_id: None, transport: None, @@ -2144,6 +2182,8 @@ async fn conversation_uses_explicit_start_voice() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -2210,6 +2250,8 @@ async fn conversation_uses_configured_realtime_voice() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -2264,6 +2306,8 @@ async fn conversation_rejects_voice_for_wrong_realtime_version() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -2319,6 +2363,8 @@ async fn conversation_uses_experimental_realtime_ws_backend_prompt_override() -> output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("prompt from op".to_string())), realtime_session_id: None, transport: None, @@ -2400,6 +2446,8 @@ async fn conversation_uses_experimental_realtime_ws_startup_context_override() - output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("prompt from op".to_string())), realtime_session_id: None, transport: None, @@ -2475,6 +2523,8 @@ async fn conversation_disables_realtime_startup_context_with_empty_override() -> output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("prompt from op".to_string())), realtime_session_id: None, transport: None, @@ -2543,6 +2593,8 @@ async fn conversation_start_injects_startup_context_from_thread_history() -> Res output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -2666,6 +2718,8 @@ async fn conversation_startup_context_current_thread_selects_many_turns_by_budge output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -2782,6 +2836,8 @@ async fn conversation_startup_context_falls_back_to_workspace_map() -> Result<() output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -2850,6 +2906,8 @@ async fn conversation_startup_context_is_truncated_and_sent_once_per_start() -> output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -2939,6 +2997,8 @@ async fn conversation_user_text_turn_is_not_sent_to_realtime() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -3044,6 +3104,8 @@ async fn realtime_v2_noop_tool_call_returns_empty_function_output_without_respon output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -3151,6 +3213,8 @@ async fn conversation_mirrors_assistant_message_text_to_realtime_handoff() -> Re output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -3325,6 +3389,8 @@ async fn conversation_flushes_assistant_deltas_every_200ms_for_v3_handoff() -> R output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -3495,6 +3561,8 @@ async fn conversation_handoff_persists_across_item_done_until_turn_complete() -> output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -3655,6 +3723,8 @@ async fn inbound_handoff_request_starts_turn() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -3773,6 +3843,8 @@ async fn inbound_handoff_request_uses_active_transcript() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -3884,6 +3956,8 @@ async fn inbound_handoff_request_sends_transcript_delta_after_each_handoff() -> output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -4014,6 +4088,8 @@ async fn conversation_close_routes_only_remaining_transcript_tail_once() -> Resu output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -4105,6 +4181,8 @@ async fn inbound_conversation_item_does_not_start_turn_and_still_forwards_audio( output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -4236,6 +4314,8 @@ async fn delegated_turn_user_role_echo_does_not_redelegate_and_still_forwards_au output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -4397,6 +4477,8 @@ async fn inbound_handoff_request_does_not_block_realtime_event_forwarding() -> R output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -4547,6 +4629,8 @@ async fn inbound_handoff_request_steers_active_turn() -> Result<()> { output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, @@ -4708,6 +4792,8 @@ async fn inbound_handoff_request_starts_turn_and_does_not_block_realtime_audio() output_modality: RealtimeOutputModality::Audio, include_startup_context: true, initial_items: Vec::new(), + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, diff --git a/codex-rs/core/tests/suite/realtime_initial_items.rs b/codex-rs/core/tests/suite/realtime_initial_items.rs index 53f9ff7fc3..4fc037eae0 100644 --- a/codex-rs/core/tests/suite/realtime_initial_items.rs +++ b/codex-rs/core/tests/suite/realtime_initial_items.rs @@ -150,6 +150,32 @@ async fn initial_items_enforce_aggregate_token_limit() -> Result<()> { .await } +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn realtime_start_instructions_enforce_token_limit() -> Result<()> { + skip_if_no_network!(Ok(())); + + let mut params = start_params(RealtimeConversationVersion::V3); + params.realtime_start_instructions = Some("x".repeat(8_192 * 4 + 1)); + assert_start_error( + params, + "realtime start instructions must not exceed 8192 estimated tokens", + ) + .await +} + +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn realtime_end_instructions_enforce_token_limit() -> Result<()> { + skip_if_no_network!(Ok(())); + + let mut params = start_params(RealtimeConversationVersion::V3); + params.realtime_end_instructions = Some("x".repeat(8_192 * 4 + 1)); + assert_start_error( + params, + "realtime end instructions must not exceed 8192 estimated tokens", + ) + .await +} + async fn assert_start_error(params: ConversationStartParams, expected_error: &str) -> Result<()> { let api_server = start_mock_server().await; let test = test_codex().build_with_auto_env(&api_server).await?; @@ -195,6 +221,8 @@ fn start_params(version: RealtimeConversationVersion) -> ConversationStartParams role: ConversationTextRole::Assistant, }, ], + realtime_start_instructions: None, + realtime_end_instructions: None, prompt: Some(Some("backend prompt".to_string())), realtime_session_id: None, transport: None, diff --git a/codex-rs/protocol/src/protocol.rs b/codex-rs/protocol/src/protocol.rs index c17ada9342..724630c017 100644 --- a/codex-rs/protocol/src/protocol.rs +++ b/codex-rs/protocol/src/protocol.rs @@ -220,6 +220,10 @@ pub struct ConversationStartParams { pub include_startup_context: bool, /// Complete role-bearing text items to include in the initial realtime session history. pub initial_items: Vec, + /// Developer instructions given to Codex when this realtime session starts. + pub realtime_start_instructions: Option, + /// Developer instructions given to Codex when this realtime session ends. + pub realtime_end_instructions: Option, pub prompt: Option>, pub realtime_session_id: Option, pub transport: Option,