Codex sub-agent spawn supports per-launch reasoning_effort, but tool schema/docs make agents think it cannot be changed

Resolved 💬 2 comments Opened Jun 8, 2026 by ForrestGrump Closed Aug 4, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of Codex CLI is running?

codex-cli 0.137.0

What subscription do you have?

Pro x20

Which model were you using?

gpt-5.5 Sub-agent probes tested: - gpt-5.5 medium - gpt-5.5 high - gpt-5.5 xhigh

What platform is your computer?

Linux 5.15.167.4-microsoft-standard-WSL2 x86_64 x86_64 Ubuntu 24.04 on WSL2 Windows Terminal host

What terminal emulator and version are you using (if applicable)?

Windows Terminal 1.24.11321.0 WSL_DISTRO_NAME=Ubuntu-24.04 TERM=xterm-256color No tmux/zellij detected

Codex doctor report

codex doctor --json status: ok
  codexVersion: 0.137.0
  auth: ChatGPT tokens configured
  config model: gpt-5.5
  model provider: openai
  install method: npm
  platform: linux-x86_64
  terminal: Windows Terminal
  sandbox: filesystem unrestricted, network enabled, approval policy Never
  latest version: 0.137.0, current version is not older

What issue are you seeing?

The native sub-agent launch tool appears to support per-spawn model and reasoning settings, but the exposed tool
schema/documentation visible to agents does not advertise the working fields clearly.

Observed behavior:

  • The visible spawn_agent schema shown to the parent agent only listed message, items, and fork_context.
  • Because of that schema, an agent concluded that sub-agent reasoning level could not be changed and that children

were pinned to/inherited from the parent setting.

  • Passing the requested level only in prompt text, e.g. “launch gpt-5.5 xhigh”, did not prove a runtime change.
  • Passing model_reasoning_effort also caused confusion; it appears to be the TOML/custom-agent config key, not the

live per-spawn key.

  • The live per-spawn field that actually worked was reasoning_effort.

Verified working launches from parent UI:

  • spawn_agent with model: "gpt-5.5", reasoning_effort: "medium" showed (gpt-5.5 medium).
  • spawn_agent with model: "gpt-5.5", reasoning_effort: "high" showed (gpt-5.5 high).
  • spawn_agent with model: "gpt-5.5", reasoning_effort: "xhigh" showed (gpt-5.5 xhigh).

The child agents themselves could not introspect their actual runtime model or reasoning effort, so their self-report
was unknown. The reliable confirmation was the parent UI spawn label.

What steps can reproduce the bug?

Uploaded thread: 019ea57a-efb1-7cc3-9429-d82d4c366272

  1. Ask Codex whether native sub-agents can be launched with different reasoning levels.
  2. Inspect the exposed spawn_agent tool schema available to the agent.
  3. Notice the schema only documents message, items, and fork_context, not model or reasoning_effort.
  4. Try launching a sub-agent by putting “gpt-5.5 xhigh” or similar only in the prompt text.
  5. The child agent cannot confirm any runtime setting and reports that it cannot observe model/reasoning effort.
  6. Try live launch with this payload shape:

{
"message": "XHIGH runtime probe. Do not do external work. Reply only: xhigh probe completed.",
"model": "gpt-5.5",
"reasoning_effort": "xhigh"
}

  1. Parent UI correctly shows the spawn as (gpt-5.5 xhigh).
  2. Repeat with "reasoning_effort": "medium" and "reasoning_effort": "high"; parent UI correctly shows `(gpt-5.5

medium) and (gpt-5.5 high)`.

What is the expected behavior?

The sub-agent launch schema and documentation should clearly expose the supported per-spawn fields:

  • model
  • reasoning_effort

It should also clarify that:

  • reasoning_effort is the live per-spawn tool field.
  • model_reasoning_effort is the config/custom-agent TOML field.
  • Child agents may not be able to introspect their actual runtime model/effort.
  • The parent spawn label is the reliable confirmation.

Alternatively, if model and reasoning_effort are intentionally unsupported public fields, the runtime should
reject them rather than silently accepting hidden fields that work.

Additional information

This appears to be a schema/documentation mismatch, not a model capability issue.

The functionality works when using:
{
"model": "gpt-5.5",
"reasoning_effort": "xhigh"
}

But the exposed schema led the agent to believe it could not change sub-agent reasoning settings. This is likely to
cause incorrect guidance and unnecessary workarounds.

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 2 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #26679
  • #26828

Powered by Codex Action

ForrestGrump · 2 months ago

Thanks. I reviewed #26679 and #26828.

I agree these are related and likely the same root cause as #26363 / #26599: in Codex CLI 0.137.0 the v1 spawn_agent
schema exposed to the agent only shows fork_context, items, and message, while the actual runtime can still
accept hidden model and reasoning_effort fields.

The closest duplicate is #26828, because it specifically describes the schema exposure problem: expected fields like
agent_type, model, reasoning_effort, and service_tier are missing from the visible tool schema on some
environments.

My report adds one data point: even though the schema did not expose those fields, manually passing model: "gpt-5.5"
and reasoning_effort: "xhigh" did work, and the parent UI showed (gpt-5.5 xhigh). So the runtime capability
exists; the problem is that the model-visible tool schema/docs make the agent believe it cannot change the sub-agent
reasoning level.

I’m fine with this being treated as a duplicate of #26828 / #26363 if maintainers prefer. The remaining request is to
make sure the fix is included in a released version after 0.137.0, and ideally clarify the naming distinction:

  • live spawn_agent field: reasoning_effort
  • TOML/custom-agent config field: model_reasoning_effort
  • child agents cannot introspect their actual model/effort, so the parent spawn label is the reliable confirmation.