Expose spawn agent types only when roles are configured (#33572)

## Why

The `agent_type` argument is only useful when agent roles are configured. Avoid
advertising an inapplicable override in the model-visible `spawn_agent` schema.

## What changed

- Include `agent_type` in the V1 and V2 spawn tools only when configured roles
  are available.
- Clarify that `agent_type` is an explicit override and document its interaction
  with context forking.
- Remove the unused `agents.support_agent_type` configuration field.

## Testing

- Add coverage for hiding `agent_type` without roles and exposing it when a role
  is configured.

GitOrigin-RevId: 32e0f123b15f317e9cdb71774029375bc073d9ad
This commit is contained in:
jif
2026-07-16 10:28:36 +00:00
committed by copyberry
parent 03bb3b1236
commit 9ff47868eb
14 changed files with 96 additions and 49 deletions
-6
View File
@@ -70,11 +70,6 @@ fn render_agents_config_lines(config: &Config) -> Vec<Line<'static>> {
config.agent_max_depth
)
.into(),
format!(
" - support_agent_type = {} (not yet wired)",
format_optional(config.agent_support_agent_type)
)
.into(),
format!(
" - default_subagent_model = {} (not yet wired)",
format_optional(config.agent_default_subagent_model.as_deref())
@@ -654,7 +649,6 @@ mod tests {
enabled = false
max_concurrent_threads_per_session = 7
max_depth = -2
support_agent_type = true
default_subagent_model = "gpt-5.6-terra"
default_subagent_reasoning_effort = "high"
job_max_runtime_seconds = 900
@@ -8,7 +8,6 @@ expression: render_to_text(&render_agents_config_lines(&config))
- enabled = false
- max_concurrent_threads_per_session = 7
- max_depth = -2 (V1 only; ignored by V2)
- support_agent_type = true (not yet wired)
- default_subagent_model = gpt-5.6-terra (not yet wired)
- default_subagent_reasoning_effort = high (not yet wired)
- job_max_runtime_seconds = 900