阿里云 Model Studio 官方 Codex 网关:profile 写 [model_providers.Model_Studio_Token_Plan],base_url 是 https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1,密钥用 env_key 不要 wire_api = chat
用户层 [model_providers.Model_Studio_Token_Plan],国际站 Token Plan base_url 是 https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1,wire_api = responses。env_key 读 DASHSCOPE_API_KEY。再用 ~/.codex/modelstudio.config.toml 和 --profile modelstudio。模型写 qwen3.8-max。Coding Plan 的 wire_api = chat 是不受支持的配置。
阿里云 Model Studio 官方 Codex 网关:profile 写 [model_providers.Model_Studio_Token_Plan],base_url 是 https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1,密钥用 env_key 不要 wire_api = chat。
这是换 Codex 使用的模型,流量打到阿里云 Model Studio Token Plan 的 Responses 入口,不是添加 MCP 服务。官方 Codex 页给了 [model_providers.Model_Studio_Token_Plan] 和 wire_api = "responses"。同页还留着 Coding Plan 和旧模型的 wire_api = "chat"——现行 Codex 会不受支持的配置,不要为了迁就文档去装 @openai/codex@0.80.0。配置里只要留一张 chat 表,即使用不到也会让整份 config 起不来。
国际站 Token Plan base_url 是 https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1。中国站 Token Plan 换成 https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1。个人套餐表名是 Model_Studio_Token_Plan_Personal,团队套餐是 Model_Studio_Token_Plan,主机一样,密钥不能混。官方示例 env_key = "OPENAI_API_KEY" 会和 ChatGPT 登录抢变量;改成 DASHSCOPE_API_KEY(变量名),在启动 Codex 的进程里 export。不要和 experimental_bearer_token / requires_openai_auth / [model_providers.*.auth] 叠在同一张供应商表。
不要抄 Coding Plan 的 https://coding-intl.dashscope.aliyuncs.com/v1。按量付费才把 WorkspaceId 原样写进 URL,例如 https://YOUR_WORKSPACE_ID.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1。Codex 不会在 base_url 里展开环境变量。不要写 openai_base_url。Token Plan / Coding Plan / 按量密钥不能互换。
不要把顶层 model_provider = "Model_Studio_Token_Plan" 一上来写进用户 config,除非你就是要把所有会话都改走 Model Studio。更稳妥是独立 profile(0.134 起不要再写 [profiles.modelstudio]):
# ~/.codex/config.toml
[model_providers.Model_Studio_Token_Plan]
name = "Model_Studio_Token_Plan"
base_url = "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
env_key = "DASHSCOPE_API_KEY"
wire_api = "responses"
# ~/.codex/modelstudio.config.toml
model_provider = "Model_Studio_Token_Plan"
model = "qwen3.8-max"
model_reasoning_effort = "xhigh"
model_context_window = 983616
export DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
codex --profile modelstudio
codex --profile modelstudio -m qwen3.8-max
可选目录:官方写 model_catalog_json = "~/.codex/model-catalog.local.json",波浪号不会展开。改成启动时能读到的绝对路径。本地 JSON 覆盖内置目录,不是追加。官方示例里 base_instructions 是空字符串,仍不要整段抄人格 blob。需要 /model 列出 qwen3.8-max 时,只留 slug、reasoning 档(low / medium / xhigh)和官方给的 shell_type。
配置说明:
- 不要再写
[profiles.modelstudio]或wire_api = "chat"。 - 不要覆盖内置 ID
openai、ollama、lmstudio。Model_Studio_Token_Plan是新 ID,可以。 - 不要写进项目
.codex/config.toml。项目文件无法修改model_provider/model_providers。 - 不要把这张表当成 MCP。
改完新开会话。codex --profile modelstudio 起得来,说明供应商和 DASHSCOPE_API_KEY 都进了这一进程。401 先看是不是拿 Coding Plan / 按量密钥打了 Token Plan 主机;/model 仍显示 Custom 时,先 codex debug models 再决定要不要绝对路径的目录文件。