Native subagent ignores explicit model_provider override while model override works
Open 💬 3 comments Opened Aug 26, 2026 by JiuGHim
💡 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.149.1
What subscription do you have?
plus
Which model were you using?
Parent: gpt-5.6-luna (xhigh) Subagent: MiniMax-M3
What platform is your computer?
Linux 6.17.0-29-generic x86_64 x86_64
What terminal emulator and version are you using (if applicable)?
GNOME Terminal 3.52.0 using VTE 0.76.0 +BIDI +GNUTLS +ICU +SYSTEMD
Codex doctor report
What issue are you seeing?
Native subagent roles appear to ignore an explicit model_provider override while correctly applying the model and model_reasoning_effort overrides.
My parent session uses ChatGPT/OpenAI:
- Parent model:
gpt-5.6-luna - Parent provider: OpenAI / ChatGPT account
The subagent role explicitly specifies:
model = "MiniMax-M3"
model_provider = "minimax"
model_reasoning_effort = "high"
### What steps can reproduce the bug?
1. Register a custom Responses API provider in ~/.codex/config.toml:
[features]
multi_agent = true
[agents]
enabled = true
default_subagent_model = "gpt-5.6-luna"
default_subagent_reasoning_effort = "xhigh"
[model_providers.minimax]
name = "MiniMax"
base_url = "https://api.minimaxi.com/v1"
experimental_bearer_token = "<redacted>"
wire_api = "responses"
Do NOT globally set:
model_provider = "minimax"
The parent session should remain authenticated through ChatGPT/OpenAI.
2. Create a native subagent role at:
~/.codex/agents/chain-test.toml
with the following configuration:
name = "chain_test"
description = """
Diagnostic subagent for testing cross-provider delegation.
"""
model = "MiniMax-M3"
model_provider = "minimax"
model_reasoning_effort = "high"
sandbox_mode = "read-only"
developer_instructions = """
Inspect the current repository.
Actually execute:
- pwd
- git status
- ls
Do not modify any files.
"""
3. Start the normal ChatGPT-authenticated Codex CLI:
codex
4. Ask the parent agent:
You must use the chain_test subagent for this task.
Do not perform the task yourself.
Inspect the current repository and actually run:
- pwd
- git status
- ls
Wait for chain_test to finish and return its result.
5. Codex successfully resolves the role and spawns the child:
Spawned <thread-id> (MiniMax-M3 high)
However, the child fails before running the requested commands with:
The 'MiniMax-M3' model is not supported when using Codex with a ChatGPT account.
6. As a control test, use the SAME ~/.codex configuration and SAME ChatGPT-authenticated environment, but override the provider at the session level:
codex exec \
-C "$PWD" \
--sandbox danger-full-access \
-c 'model_provider="minimax"' \
-c 'model="MiniMax-M3"' \
-c 'model_reasoning_effort="high"' \
"Actually execute pwd and return the result."
This works correctly.
Codex reports:
model: MiniMax-M3
provider: minimax
The MiniMax model then successfully performs the shell tool call.
Therefore, the custom provider itself works correctly from the same ChatGPT-authenticated CODEX_HOME.
The failure appears specific to applying the explicit model_provider override from a native subagent role: the model override is applied, but the provider appears to remain inherited from the OpenAI/ChatGPT parent.
### What is the expected behavior?
When a native subagent role explicitly specifies both:
model = "MiniMax-M3"
model_provider = "minimax"
the spawned child should use both overrides.
Expected configuration:
Parent:
model: gpt-5.6-luna
provider: openai / ChatGPT
Child:
model: MiniMax-M3
provider: minimax
The parent provider should only be inherited when the subagent role does not explicitly specify its own model_provider.
This should allow native subagents to use a different custom provider from the parent session.
### Additional information
I can also reproduce the same behavior in the ChatGPT/Codex desktop app.
The desktop app is using its bundled Codex runtime:
/usr/lib/chatgpt/resources/codex --version
codex-cli 0.150.0-alpha.8
The desktop native subagent also applies the MiniMax-M3 model override, but then fails with the same ChatGPT-account error instead of using the explicitly configured minimax provider.
The custom provider itself is confirmed to work.
Using the same normal ChatGPT-authenticated ~/.codex environment, a session-level override works successfully:
codex exec \
-C "$PWD" \
--sandbox danger-full-access \
-c 'model_provider="minimax"' \
-c 'model="MiniMax-M3"' \
-c 'model_reasoning_effort="high"' \
"Actually execute pwd and return the result."
Codex reports:
model: MiniMax-M3
provider: minimax
and MiniMax-M3 successfully performs the shell tool call.
So this does not appear to be a general custom-provider, authentication, or MiniMax compatibility issue.
The behavior appears specific to native subagent configuration:
- Subagent model override works.
- Subagent reasoning-effort override works.
- Explicit subagent model_provider override does not appear to take effect.
A practical use case is keeping an OpenAI/ChatGPT model as the parent/orchestrator while delegating implementation, testing, review, or exploration to specialized or lower-cost models on other providers.
For example:
OpenAI / ChatGPT parent
|
+-- MiniMax backend subagent
+-- MiniMax frontend subagent
+-- MiniMax QA subagent
+-- MiniMax reviewer subagent
3 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
My issue too. I need to use custom provider for subagents while GPT is the controller.
Exactly. My goal is also to keep gpt5.6 sol as the controller while using a custom provider such as MiniMax for native subagents.
I also confirmed that the custom provider works correctly in the same ChatGPT-authenticated CODEX_HOME when overridden at the session level. The failure only happens when model_provider is specified in the native subagent role: model is applied, but the provider still appears to be inherited from the parent.