Allow hiding native tools while retaining the multi-agent V2 runtime (#53617)

## What changed

Add `features.multi_agent_v2.disable_native_tools` to hide native multi-agent tools while keeping the V2 runtime and its instructions enabled for host-provided tools. The option defaults to `false`, preserving existing tool exposure.

## Testing

Extend configuration parsing tests for the new option and parameterize the multi-agent catalog scenario to cover both settings. Add a snapshot showing native tools are absent while the V2 runtime and instructions remain enabled.

GitOrigin-RevId: 21a53584d2395bb678813c876a8b7927bea61c90
This commit is contained in:
jif
2026-10-13 09:06:39 +00:00
committed by copyberry
parent 1a69ad3237
commit 308ddf5e7c
8 changed files with 142 additions and 7 deletions
+3
View File
@@ -331,6 +331,9 @@ pub struct MultiAgentV2ConfigToml {
/// Expose the multi-agent v2 `wait_agent` tool.
#[serde(skip_serializing_if = "Option::is_none")]
pub wait_agent_enabled: Option<bool>,
/// Hide native multi-agent tools while retaining the V2 runtime for host-provided tools.
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_native_tools: Option<bool>,
/// Disable the model's direct-message tools; spawning and automatic child results remain available.
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_direct_message: Option<bool>,
+2
View File
@@ -761,6 +761,7 @@ tool_namespace = "agents"
hide_spawn_agent_metadata = true
expose_spawn_agent_model_overrides = true
wait_agent_enabled = false
disable_native_tools = true
disable_direct_message = true
message_board_in_memory = true
non_code_mode_only = true
@@ -791,6 +792,7 @@ non_code_mode_only = true
hide_spawn_agent_metadata: Some(true),
expose_spawn_agent_model_overrides: Some(true),
wait_agent_enabled: Some(false),
disable_native_tools: Some(true),
disable_direct_message: Some(true),
message_board_in_memory: Some(true),
message_board_remote: None,