mirror of
https://github.com/openai/codex.git
synced 2026-08-23 13:09:46 +00:00
Use multi-agent V1 for Amazon Bedrock models (#39804)
## Why Amazon Bedrock does not support the response items required by multi-agent V2. ## What changed - Normalize Bedrock model catalogs to advertise `MultiAgentVersion::V1`. - Cover both remote catalog normalization and the static Bedrock Runtime catalog in tests. GitOrigin-RevId: 93832cd4b885daf4b87fb33a7be8502ae15c1b24
This commit is contained in:
@@ -9,6 +9,7 @@ use codex_protocol::openai_models::ModelVisibility;
|
||||
use codex_protocol::openai_models::ModelsResponse;
|
||||
use codex_protocol::openai_models::ReasoningEffort;
|
||||
use codex_protocol::openai_models::WebSearchToolType;
|
||||
use codex_protocol::protocol::MultiAgentVersion;
|
||||
|
||||
const GPT_5_BEDROCK_CONTEXT_WINDOW: i64 = 272_000;
|
||||
const GPT_5_6_SOL_OPENAI_MODEL_ID: &str = "gpt-5.6-sol";
|
||||
@@ -62,6 +63,8 @@ pub(crate) fn normalize_bedrock_catalog(mut catalog: ModelsResponse) -> ModelsRe
|
||||
model.default_service_tier = None;
|
||||
// Bedrock rejects the `search_content_types` field used by multimodal search.
|
||||
model.web_search_tool_type = WebSearchToolType::Text;
|
||||
// Bedrock does not support the response items used by multi-agent V2.
|
||||
model.multi_agent_version = Some(MultiAgentVersion::V1);
|
||||
}
|
||||
catalog
|
||||
}
|
||||
@@ -199,6 +202,7 @@ mod tests {
|
||||
expected.service_tiers.clear();
|
||||
expected.default_service_tier = None;
|
||||
expected.web_search_tool_type = WebSearchToolType::Text;
|
||||
expected.multi_agent_version = Some(MultiAgentVersion::V1);
|
||||
|
||||
assert_eq!(
|
||||
normalize_bedrock_catalog(ModelsResponse {
|
||||
@@ -268,6 +272,7 @@ mod tests {
|
||||
expected.service_tiers.clear();
|
||||
expected.default_service_tier = None;
|
||||
expected.web_search_tool_type = WebSearchToolType::Text;
|
||||
expected.multi_agent_version = Some(MultiAgentVersion::V1);
|
||||
|
||||
assert_eq!(
|
||||
catalog.models.iter().find(|model| model.slug == slug),
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use codex_protocol::protocol::MultiAgentVersion;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
use super::static_runtime_model_catalog;
|
||||
@@ -47,15 +48,46 @@ fn runtime_catalog_disables_web_search_without_overriding_review_models() {
|
||||
model.slug.as_str(),
|
||||
model.auto_review_model_override.as_deref(),
|
||||
model.supports_search_tool,
|
||||
model.multi_agent_version,
|
||||
))
|
||||
.collect::<Vec<_>>(),
|
||||
vec![
|
||||
("global.openai.gpt-5.6-sol", None, false),
|
||||
("global.openai.gpt-5.6-terra", None, false),
|
||||
("global.openai.gpt-5.6-luna", None, false),
|
||||
("us.openai.gpt-5.6-sol", None, false),
|
||||
("us.openai.gpt-5.6-terra", None, false),
|
||||
("us.openai.gpt-5.6-luna", None, false),
|
||||
(
|
||||
"global.openai.gpt-5.6-sol",
|
||||
None,
|
||||
false,
|
||||
Some(MultiAgentVersion::V1),
|
||||
),
|
||||
(
|
||||
"global.openai.gpt-5.6-terra",
|
||||
None,
|
||||
false,
|
||||
Some(MultiAgentVersion::V1),
|
||||
),
|
||||
(
|
||||
"global.openai.gpt-5.6-luna",
|
||||
None,
|
||||
false,
|
||||
Some(MultiAgentVersion::V1),
|
||||
),
|
||||
(
|
||||
"us.openai.gpt-5.6-sol",
|
||||
None,
|
||||
false,
|
||||
Some(MultiAgentVersion::V1),
|
||||
),
|
||||
(
|
||||
"us.openai.gpt-5.6-terra",
|
||||
None,
|
||||
false,
|
||||
Some(MultiAgentVersion::V1),
|
||||
),
|
||||
(
|
||||
"us.openai.gpt-5.6-luna",
|
||||
None,
|
||||
false,
|
||||
Some(MultiAgentVersion::V1),
|
||||
),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user