openai / openai/codex

[CLI] Custom agent service_tier = "fast" is ignored when the parent runs Standard

Open
#42,612 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI config subagent
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of Codex CLI is running?

codex-cli 0.153.0

This appears to be a regression from 0.152.1. The same custom Reviewer configuration worked with a Standard parent and Fast children on 0.152.1. The earlier child tier is based on direct user observation because 0.152.1 did not persist an effective service-tier field in those child rollout files.

What subscription do you have?

ChatGPT Pro

Which model were you using?
  • Parent: gpt-5.6-sol, high reasoning, Standard service tier.
  • Custom child agents: gpt-5.6-luna, high reasoning, configured for Fast service tier.
What platform is your computer?

Linux 6.18.33.2-microsoft-standard-WSL2 x86_64 unknown

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

Windows Terminal 1.24.11911.0, with Codex running inside WSL2. TERM=xterm-256color.

Codex doctor report

codex doctor --json was run on 0.153.0. The full report is omitted because it contains local paths. The relevant sanitized results were:

{
  "schemaVersion": 1,
  "overallStatus": "fail",
  "codexVersion": "0.153.0",
  "checks": {
    "auth.credentials": { "status": "ok" },
    "config.load": {
      "status": "ok",
      "model": "gpt-5.6-sol",
      "model provider": "openai"
    },
    "installation": {
      "status": "ok",
      "platform": "linux-x86_64",
      "version": "0.153.0"
    },
    "state.rollout_db_parity": { "status": "ok" },
    "network.provider_reachability": {
      "status": "fail",
      "summary": "one or more required provider endpoints are unreachable over HTTP"
    }
  }
}

The network failure was expected because doctor ran inside a restricted diagnostic sandbox. Normal authenticated Codex sessions work. The failure is unrelated to this report.

What issue are you seeing?

A project-local custom agent config sets service_tier = "fast", but a child spawned from a Standard parent does not use Fast. Other settings from the same custom agent file are applied correctly.

Sanitized custom agent configuration:

name = "code-standards-reviewer"
description = "Independently reviews a supplied Git comparison against Repository standards."
model = "gpt-5.6-luna"
model_reasoning_effort = "high"
service_tier = "fast"
sandbox_mode = "read-only"

The parent session recorded:

model: gpt-5.6-sol
reasoning_effort: high
service_tier: default

Two children were spawned with custom agent roles. Their session metadata correctly recorded the requested agent roles, and their turn contexts correctly used gpt-5.6-luna with high reasoning. This proves that Codex found and partially applied the custom agent files.

However, both child startup logs recorded:

TurnStartOptions { ..., service_tier: None, ... }

The children consequently ran Standard instead of using the role's service_tier = "fast" override.

Affected threads:

Root:  01a06684-5bcd-7b30-ad6c-c35a26b6b3f4
Child: 01a06815-c6cb-7ae3-a0f8-14681759d216
Child: 01a06816-3b49-74e2-b765-7dbf522b3c83
What steps can reproduce the bug?
  1. Install Codex CLI 0.153.0.
  2. Set the parent session to Standard, for example with service_tier = "default".
  3. Create a project-local custom agent file under .codex/agents/ with a different model and reasoning effort plus service_tier = "fast".
  4. Start a parent session and spawn that custom agent by its agent_type.
  5. Inspect the child session.
  6. Confirm that the child receives the custom model and reasoning effort.
  7. Observe that the child does not use Fast, and that its startup options show service_tier: None.

The same setup was observed working on 0.152.1: the parent remained Standard while custom Reviewer children ran Fast. Historical evidence confirms that the 0.152.1 parent recorded service_tier = "default", the role files already contained service_tier = "fast", and eight custom Reviewer children were created. The effective child tier in 0.152.1 is a direct user observation rather than a persisted rollout field.

What is the expected behavior?

The child should use the complete custom agent configuration, including service_tier = "fast", even when the parent is Standard.

Official documentation says that custom agents are loaded as configuration layers for spawned sessions and can override the same settings as normal session configuration:

https://learn.chatgpt.com/docs/agent-configuration/subagents

service_tier is a supported session configuration key, and fast maps to the priority request tier:

https://learn.chatgpt.com/docs/config-file/config-reference

Applying the model and reasoning fields while silently discarding the service-tier field makes one custom agent file only partially effective.

Additional information

This is related to, but distinct from, https://github.com/openai/codex/issues/35187. That issue requests a new service_tier parameter on the spawn_agent tool. This report does not require the model to select a tier per call. It reports that an existing, documented custom-agent configuration layer is already selected but one supported field from that layer is ignored.

The following open issues describe the opposite failure mode, where children unexpectedly use Fast while the parent is Standard, so they are not duplicates of this report:

Raw rollout files are not attached because they contain private task context and local paths. The root and child thread IDs plus the sanitized configuration and startup fields above should allow internal correlation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by searching the CLI's agent-spawning and session-configuration code for service_tier, TurnStartOptions, and spawn_agent; the issue identifies the .codex/agents/ configuration as the input. Reproduce with a Standard parent and a custom agent configured with service_tier = "fast", then verify that the child startup options preserve the Fast tier while retaining the custom model and reasoning settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.