spawn_agent schema omits supported model and reasoning_effort parameters

Open 💬 3 comments Opened Jul 11, 2026 by DoubleBoba
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of Codex CLI is running?

0.144.1

What subscription do you have?

Plus

Which model were you using?

gpt-5.6 terra xhigh

What platform is your computer?

Darwin 24.6.0 arm64 arm

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

iTerm2codex

Codex doctor report

{
  "schemaVersion": 1,
  "generatedAt": "1783779878s since unix epoch",
  "overallStatus": "warning",
  "codexVersion": "0.144.1",
  "checks": {
    "app_server.status": {
      "id": "app_server.status",
      "category": "app-server",
      "status": "ok",
      "summary": "background server is not running",
      "details": {
        "control socket": "/Users/<redacted>/.codex/app-server-control/app-server-control.sock",
        "daemon state dir": "/Users/<redacted>/.codex/app-server-daemon",
        "mode": "ephemeral",
        "pid file": "/Users/<redacted>/.codex/app-server-daemon/app-server.pid (missing)",
        "settings": "/Users/<redacted>/.codex/app-server-daemon/settings.json (missing)",
        "status": "not running",
        "update-loop pid file": "/Users/<redacted>/.codex/app-server-daemon/app-server-updater.pid (missing)"
      },
      "remediation": null,
      "durationMs": 0
    },
    "auth.credentials": {
      "id": "auth.credentials",
      "category": "auth",
      "status": "ok",
      "summary": "auth is configured",
      "details": {
        "auth file": "/Users/<redacted>/.codex/auth.json",
        "auth storage mode": "File",
        "stored API key": "false",
        "stored ChatGPT tokens": "true",
        "stored agent identity": "false",
        "stored auth mode": "chatgpt"
      },
      "remediation": null,
      "durationMs": 0
    },
    "config.load": {
      "id": "config.load",
      "category": "config",
      "status": "ok",
      "summary": "config loaded",
      "details": {
        "CODEX_HOME": "/Users/<redacted>/.codex",
        "config.toml": "/Users/<redacted>/.codex/config.toml",
        "config.toml parse": "ok",
        "cwd": "/Users/<redacted>/Documents/projects/<redacted-project>",
        "enabled feature flags": "shell_tool, unified_exec, shell_snapshot, code_mode_host, terminal_resize_reflow, sqlite, hooks, enable_request_compression, multi_agent, apps, tool_search_always_defer_mcp_tools, tool_suggest, plugins, in_app_browser, browser_use, browser_use_full_cdp_access, browser_use_external, computer_use, remote_plugin, plugin_sharing, image_generation, resize_all_images, skill_mcp_dependency_install, mentions_v2, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, auth_elicitation, personality, fast_mode, tui_app_server, prevent_idle_sleep, remote_compaction_v2, workspace_dependencies",
        "feature flag overrides": "prevent_idle_sleep=true",
        "feature flags enabled": "36",
        "log dir": "/Users/<redacted>/.codex/log",
        "mcp servers": "4",
        "model": "gpt-5.6-terra",
        "model provider": "openai",
        "sqlite home": "/Users/<redacted>/.codex"
      },
      "remediation": null,
      "durationMs": 0
    },
    "git.environment": {
      "id": "git.environment",
      "category": "git",
      "status": "ok",
      "summary": "git version 2.50.1 (Apple Git-155)",
      "details": {
        ".git entry": "directory",
        "PATH git #1": "/usr/bin/git",
        "PATH git entries": "1",
        "git branch": "main",
        "git build options": "git version 2.50.1 (Apple Git-155); cpu: arm64; no commit associated with this build; sizeof-long: 8; sizeof-size_t: 8; shell-path: /bin/sh; feature: fsmonitor--daemon; libcurl: 8.7.1; zlib: 1.2.12; SHA-1: SHA1_DC; SHA-256: SHA256_BLK",
        "git exec path": "/Library/Developer/CommandLineTools/usr/libexec/git-core",
        "git version": "git version 2.50.1 (Apple Git-155)",
        "repo detected": "true",
        "repo root": "/Users/<redacted>/Documents/projects/<redacted-project>",
        "selected git": "/usr/bin/git"
      },
      "remediation": null,
      "durationMs": 132
    },
    "installation": {
      "id": "installation",
      "category": "install",
      "status": "ok",
      "summary": "installation looks consistent",
      "details": {
        "PATH codex #1": "/Users/<redacted>/.nvm/versions/node/v22.14.0/bin/codex",
        "PATH codex #2": "/opt/homebrew/bin/codex",
        "PATH codex entries": "2",
        "current executable": "/Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin/codex",
        "install context": "npm (package /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin, bin /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin, resources /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-resources, path /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-path)",
        "managed by bun": "false",
        "managed by npm": "true",
        "managed by pnpm": "false",
        "managed package root": "/Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex",
        "npm update target": "/Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex"
      },
      "remediation": null,
      "durationMs": 127
    },
    "mcp.config": {
      "id": "mcp.config",
      "category": "mcp",
      "status": "warning",
      "summary": "MCP configuration has optional issues",
      "details": {
        "configured servers": "4",
        "disabled servers": "1",
        "optional reachability failed": "godot-ai: <redacted-url> (HEAD connect failed; GET connect failed)",
        "stdio servers": "2",
        "streamable_http servers": "2"
      },
      "remediation": "Set the missing MCP env vars or disable the affected server.",
      "durationMs": 180
    },
    "network.env": {
      "id": "network.env",
      "category": "network",
      "status": "ok",
      "summary": "network-related environment looks readable",
      "details": {
        "proxy env vars": "none"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.provider_reachability": {
      "id": "network.provider_reachability",
      "category": "reachability",
      "status": "ok",
      "summary": "active provider endpoints are reachable over HTTP",
      "details": {
        "ChatGPT base URL": "<redacted-url> reachable (HTTP 404)",
        "reachability mode": "ChatGPT auth"
      },
      "remediation": null,
      "durationMs": 266
    },
    "network.websocket_reachability": {
      "id": "network.websocket_reachability",
      "category": "websocket",
      "status": "ok",
      "summary": "Responses WebSocket handshake succeeded",
      "details": {
        "DNS": "2 IPv4, 0 IPv6, first IPv4",
        "auth mode": "chatgpt",
        "connect timeout": "15000 ms",
        "endpoint": "<redacted-url>",
        "handshake result": "HTTP 101 Switching Protocols",
        "model provider": "openai",
        "models etag present": "true",
        "provider name": "OpenAI",
        "proxy env vars": "none",
        "reasoning header": "false",
        "server model present": "false",
        "supports websockets": "true",
        "wire API": "responses"
      },
      "remediation": null,
      "durationMs": 842
    },
    "runtime.provenance": {
      "id": "runtime.provenance",
      "category": "runtime",
      "status": "ok",
      "summary": "running npm on macos-aarch64",
      "details": {
        "commit": "unknown",
        "current executable": "/Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin/codex",
        "install method": "npm (package /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin, bin /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/bin, resources /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-resources, path /Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-path)",
        "platform": "macos-aarch64",
        "version": "0.144.1"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.search": {
      "id": "runtime.search",
      "category": "search",
      "status": "ok",
      "summary": "search is OK (bundled)",
      "details": {
        "search command": "/Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex/node_modules/@openai/codex-darwin-arm64/vendor/aarch64-apple-darwin/codex-path/rg",
        "search command readiness": "file exists",
        "search provider": "bundled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "sandbox.helpers": {
      "id": "sandbox.helpers",
      "category": "sandbox",
      "status": "ok",
      "summary": "sandbox configuration is readable",
      "details": {
        "approval policy": "OnRequest",
        "codex-linux-sandbox helper": "none",
        "execve wrapper helper": "/Users/<redacted>/.codex/tmp/arg0/codex-arg0hTSrQ7/codex-execve-wrapper",
        "filesystem sandbox": "restricted",
        "network sandbox": "enabled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "state.paths": {
      "id": "state.paths",
      "category": "state",
      "status": "ok",
      "summary": "state paths and databases are inspectable",
      "details": {
        "CODEX_HOME": "/Users/<redacted>/.codex (dir)",
        "active rollout files": "522 files, 233317164 total bytes, 446967 average bytes",
        "archived rollout files": "0 files, 0 total bytes, 0 average bytes",
        "goals DB": "/Users/<redacted>/.codex/goals_1.sqlite (file)",
        "goals DB integrity": "ok",
        "log DB": "/Users/<redacted>/.codex/logs_2.sqlite (file)",
        "log DB integrity": "ok",
        "log dir": "/Users/<redacted>/.codex/log (dir)",
        "memories DB": "/Users/<redacted>/.codex/memories_1.sqlite (file)",
        "memories DB integrity": "ok",
        "sqlite home": "/Users/<redacted>/.codex (dir)",
        "state DB": "/Users/<redacted>/.codex/state_5.sqlite (file)",
        "state DB integrity": "ok"
      },
      "remediation": null,
      "durationMs": 363
    },
    "state.rollout_db_parity": {
      "id": "state.rollout_db_parity",
      "category": "threads",
      "status": "ok",
      "summary": "rollout files and state DB thread inventory agree",
      "details": {
        "default model provider": "openai",
        "rollout DB active files": "522",
        "rollout DB active rows": "522",
        "rollout DB archive mismatches": "0",
        "rollout DB archived files": "0",
        "rollout DB archived rows": "0",
        "rollout DB duplicate DB paths": "0",
        "rollout DB duplicate rollout thread ids": "0",
        "rollout DB malformed file names": "0",
        "rollout DB missing active rows": "0",
        "rollout DB missing archived rows": "0",
        "rollout DB model providers": "openai=522",
        "rollout DB rows": "522",
        "rollout DB scan cap reached": "false",
        "rollout DB scan errors": "0",
        "rollout DB sources": "cli=417, vscode=53, subagent:thread_spawn=33, subagent:review=15, exec=4",
        "rollout DB stale rows": "0"
      },
      "remediation": null,
      "durationMs": 1413
    },
    "system.environment": {
      "id": "system.environment",
      "category": "system",
      "status": "ok",
      "summary": "OS language en-RU",
      "details": {
        "EDITOR": "not set",
        "GH_PAGER": "set",
        "GIT_PAGER": "set",
        "LANG": "ru_RU.UTF-8",
        "LC_ALL": "C.UTF-8",
        "LC_CTYPE": "C.UTF-8",
        "PAGER": "set",
        "VISUAL": "not set",
        "os": "Mac OS 15.7.7 [64-bit]",
        "os language": "en-RU",
        "os type": "Mac OS",
        "os version": "15.7.7"
      },
      "remediation": null,
      "durationMs": 3
    },
    "terminal.env": {
      "id": "terminal.env",
      "category": "terminal",
      "status": "ok",
      "summary": "terminal metadata was detected",
      "details": {
        "COLORFGBG": "11;15",
        "COLORTERM": "truecolor",
        "NO_COLOR": "1",
        "TERMINFO_DIRS entry": [
          "/Applications/iTerm.app/Contents/Resources/terminfo (dir)",
          "/usr/share/terminfo (dir)"
        ],
        "TERM_PROGRAM": "iTerm.app",
        "color output": "disabled (NO_COLOR)",
        "effective locale": "C.UTF-8",
        "stderr is terminal": "false",
        "stdin is terminal": "false",
        "stdout is terminal": "false",
        "terminal": "iTerm2",
        "terminal size": "80x24",
        "terminal version": "3.6.10"
      },
      "remediation": null,
      "durationMs": 6
    },
    "terminal.title": {
      "id": "terminal.title",
      "category": "title",
      "status": "ok",
      "summary": "terminal title default",
      "details": {
        "terminal title activity": "true",
        "terminal title items": "activity, project-name",
        "terminal title project source": "git repo root",
        "terminal title project value": "<redacted-project>",
        "terminal title source": "default"
      },
      "remediation": null,
      "durationMs": 0
    },
    "updates.status": {
      "id": "updates.status",
      "category": "updates",
      "status": "ok",
      "summary": "update configuration is locally consistent",
      "details": {
        "cached latest version": "0.144.1",
        "check for update on startup": "true",
        "last checked at": "2026-07-11T05:00:21.806664Z",
        "latest version": "0.144.1",
        "latest version status": "current version is not older",
        "npm update target": "/Users/<redacted>/.nvm/versions/node/v22.14.0/lib/node_modules/@openai/codex",
        "update action": "npm install -g @openai/codex",
        "version cache": "/Users/<redacted>/.codex/version.json"
      },
      "remediation": null,
      "durationMs": 660
    }
  }
}

What issue are you seeing?

spawn_agent exposes an incomplete schema. It lists only task_name, message, and fork_turns, but the runtime also accepts and honors model and reasoning_effort.

Because those fields are absent from the tool definition, schema-driven agents conclude they cannot select a subagent’s model or reasoning effort. My initial subagent therefore ran with inherited/default gpt-5.6-
terra at xhigh, rather than the requested Luna/medium configuration.

This direct call succeeds:

{
"task_name": "luna_medium_probe",
"fork_turns": "none",
"model": "gpt-5.6-luna",
"reasoning_effort": "medium",
"message": "Reply only with the model and reasoning effort you are running under."
}

I verified the result from the child session’s persisted turn_context, rather than relying on its self-report:

{
"model": "gpt-5.6-luna",
"effort": "medium",
"multi_agent_version": "v2"
}

The tool schema should declare the supported model and reasoning_effort fields so agents can reliably configure subagents without relying on undocumented behavior.

What steps can reproduce the bug?

Uploaded thread: 019f517c-e651-7351-b6f7-bd86ad9c3f38

What is the expected behavior?

the spawn_agent schema documents all supported launch parameters.

Additional information

model and reasoning_effort work at runtime but are missing from the schema.

View original on GitHub ↗

3 Comments

github-actions[bot] contributor · 1 month ago

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

  • #32291
  • #31097

Powered by Codex Action

NAEL592 · 1 month ago

Confirmed on Windows Codex Desktop as well.

Environment:

  • Windows x64
  • Codex Desktop Beta package 26.707.3351.0 (embedded app-server resources dated 2026-07-09)
  • Standalone Codex CLI 0.144.3

The model-visible collaboration.spawn_agent schema in the active Desktop session contains only:

  • task_name
  • message
  • fork_turns

It does not expose model or reasoning_effort, so the root agent cannot select a per-child effort through a schema-valid call. Putting an effort request inside the child message is not equivalent, because the child model configuration is chosen before that message is handled.

I traced both the installed binaries and current openai/codex source:

  • The spawn handler already accepts and validates reasoning_effort.
  • #32749, merged on 2026-07-13, adds features.multi_agent_v2.expose_spawn_agent_model_overrides and exposes model plus reasoning_effort by default.
  • Neither the active July 9 Desktop binary nor the installed 0.144.3 CLI binary contains that new config key, which is consistent with the fix not yet being present in these builds.

So this looks fixed on main, but it is still reproducible in the currently installed Windows Desktop build. Please ensure the Desktop release picks up #32749 so the root agent can make schema-valid calls such as:

{
  "task_name": "reviewer",
  "message": "Review this change.",
  "fork_turns": "none",
  "reasoning_effort": "high"
}

Omitting reasoning_effort should continue to inherit the parent effort.

saranya108-cloud · 1 month ago

Confirmed on Codex CLI 0.144.6 with multi_agent_v2 under ChatGPT auth.

Parent session:

  • model: gpt-5.6-sol
  • reasoning effort: medium

I requested exactly two direct workers:

  • worker 1: gpt-5.6-terra, medium
  • worker 2: gpt-5.6-terra, high

Both workers started and completed successfully, but the actual collaboration.spawn_agent calls contained only:

  • task_name
  • fork_turns
  • message

They did not include model or reasoning_effort.

The child session JSONL records then confirmed that both workers inherited the