MultiAgentV2: reserved spawn_agent schema blocks per-child model and reasoning-effort overrides

Open 💬 5 comments Opened Jul 13, 2026 by kckylechen1

Summary

MultiAgentV2 currently cannot expose per-child model or reasoning_effort overrides to users of the native collaboration.spawn_agent tool.

The client implementation supports the fields, but exposing them changes the schema of a server-reserved tool. The backend rejects that request before any model or child-agent work begins.

This is separate from lifecycle/Wait rendering issues: it is a tool-schema compatibility gap that prevents heterogeneous subagent routing.

Environment

  • Codex CLI 0.144.1
  • macOS (Apple Silicon)
  • ChatGPT-authenticated native collaboration tools

Minimal reproduction

The normal configuration keeps the schema hidden:

[features.multi_agent_v2]
hide_spawn_agent_metadata = true

An ephemeral, no-tool request succeeds under that baseline:

codex exec --ephemeral --json --skip-git-repo-check --ignore-rules -C /tmp \
  'Reply with exactly SCHEMA_PROBE_OK. Do not call any tools.'

Output includes:

SCHEMA_PROBE_OK

The same harmless request, with only the V2 schema-exposure override, fails before the model can invoke a tool:

codex exec --ephemeral --json --skip-git-repo-check --ignore-rules -C /tmp \
  -c 'features.multi_agent_v2.hide_spawn_agent_metadata=false' \
  'Reply with exactly SCHEMA_PROBE_OK. Do not call any tools.'

Actual result:

Invalid Value: 'tools'. Function 'collaboration.spawn_agent' is reserved for use by this model and must match the configured schema.

Why this is surprising

The V2 client schema and spawn handler already define and apply optional model and reasoning_effort. However, the default hidden-metadata mode removes them to retain compatibility with the server-reserved schema. Users therefore cannot select a different model or effort for an individual native subagent, even though the underlying child configuration supports it.

Expected behavior

The server-reserved collaboration.spawn_agent schema should accept optional model and reasoning_effort fields and forward them to V2 child configuration. Omitting them should continue to inherit the parent settings.

This would permit model/effort routing for bounded subagent tasks without asking clients to send a schema that the server rejects.

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗