mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Track multi-agent usage hints in world state (#37189)
## Why Resumed sessions need the current multi-agent usage instructions when configuration changes or the saved history predates usage-hint tracking. ## What changed - Store multi-agent usage hints in world state and refresh changed or previously untracked hints before re-emitting the active multi-agent mode. - Present `wait_agent` polling guidance in the overridable developer instructions only when the tool is enabled, instead of embedding it in the tool schema. ## Testing - Cover cold resumes, changes to `wait_agent` availability, custom usage hints, message ordering, and tool-schema behavior. GitOrigin-RevId: a9c6798d5dc2dedc8dadc49e0a80ff50a757ab83
This commit is contained in:
1 parent
98da2c4499
commit
92b83e226d
13 files changed
+561
-25
No files matched your search
@@ -3549,15 +3549,17 @@ impl Session {
|
||||
"developer" if fragment.markers().0 == MULTI_AGENT_MODE_OPEN_TAG => {
|
||||
initial_multi_agent_mode = Some(fragment);
|
||||
}
|
||||
"developer"
|
||||
if fragment.requires_separate_message() && fragment.markers().0.is_empty() =>
|
||||
{
|
||||
separate_developer_sections.push(fragment.render());
|
||||
}
|
||||
"developer" => developer_sections.push(fragment.render()),
|
||||
"user" => contextual_user_sections.push(fragment.render()),
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
||||
let multi_agent_v2_usage_hint_text =
|
||||
multi_agents::usage_hint_text(turn_context, &session_source);
|
||||
|
||||
let mut items = Vec::with_capacity(4);
|
||||
if let Some(developer_message) =
|
||||
crate::context_manager::updates::build_developer_update_item(developer_sections)
|
||||
@@ -3571,14 +3573,6 @@ impl Session {
|
||||
items.push(developer_message);
|
||||
}
|
||||
}
|
||||
if let Some(usage_hint_text) = multi_agent_v2_usage_hint_text
|
||||
&& let Some(usage_hint_message) =
|
||||
crate::context_manager::updates::build_developer_update_item(vec![
|
||||
usage_hint_text.to_string(),
|
||||
])
|
||||
{
|
||||
items.push(usage_hint_message);
|
||||
}
|
||||
if let Some(initial_multi_agent_mode) = initial_multi_agent_mode {
|
||||
items.push(initial_multi_agent_mode.into_boxed_response_item());
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user