# Codex

> 在 Codex 中使用平台的模型：安装、config.toml 配置、环境变量、启动，以及平台对 Codex 请求的处理。

来源：https://www.scirouter.cn/docs/codex · 更新于 2026-10-24

Codex（命令行与 IDE 插件）通过 OpenAI Responses 格式（`POST /v1/responses`）调用平台的模型，平台上的对话模型均可使用。配置前先完成[编程工具概览](https://www.scirouter.cn/docs/coding-tools)「准备」中的三步。

## 安装

```bash
npm install -g @openai/codex
codex --version
```

输出版本号表示安装成功。

## 配置

Codex 的配置文件：

| 系统 | 文件路径 |
|---|---|
| macOS / Linux | `~/.codex/config.toml` |
| Windows | `C:\Users\<用户名>\.codex\config.toml` |

文件不存在时新建。写入以下内容，将 `YOUR_MODEL_ID` 换成平台的模型 id：

```toml
model = "YOUR_MODEL_ID"
model_provider = "scirouter"

[model_providers.scirouter]
name = "SciRouter"
base_url = "https://api.scirouter.cn/v1"
env_key = "SCIROUTER_API_KEY"
wire_api = "responses"
```

`model` 与 `model_provider` 两行须写在所有 `[...]` 段之前；文件中已有这两项时，改为上面的值。

| 配置项 | 取值 | 说明 |
|---|---|---|
| `model` | 平台的模型 id | 默认使用的模型 |
| `model_provider` | `scirouter` | 与 `[model_providers.scirouter]` 中的名称一致 |
| `name` | `SciRouter` | 界面上显示的服务商名称 |
| `base_url` | `https://api.scirouter.cn/v1` | 带 `/v1` |
| `env_key` | `SCIROUTER_API_KEY` | Codex 从该环境变量读取 Key，Key 不写入配置文件 |
| `wire_api` | `responses` | 使用 Responses 格式 |

## 启动

确认环境变量 `SCIROUTER_API_KEY` 已设置（见[编程工具概览](https://www.scirouter.cn/docs/coding-tools)「准备」），然后启动：

```bash
cd my-project
codex
```

发送一条消息，收到回答即接入成功。临时使用其他模型时，在启动命令中指定：

```bash
codex --model YOUR_MODEL_ID
```

IDE 插件读取同一份 `config.toml`。

## 平台对 Codex 请求的处理

| 项 | 平台的处理 |
|---|---|
| 对话历史 | Codex 每轮将完整对话（含其带回的推理项）放入 `input`，`store` 为 `false`，与平台的无状态约束一致，见 [Responses（OpenAI Responses 格式）](https://www.scirouter.cn/docs/responses)「不支持的字段」 |
| `shell` / `apply_patch` 工具 | 函数工具，所有模型均可使用 |
| MCP 工具 | 按 `namespace` 发送，平台展开为 `{namespace}__{name}` 的函数工具（展开后重名时返回 400），所有模型均可使用 |
| 推理项续接 | 只有线路标为「原生 Responses」的模型原样续接厂商的加密推理项。其他模型走转换，平台生成的 `rs_` 推理项带 `encrypted_content`（可验证思考块的序列化），Codex 下一轮原样带回即可续接，见 [Responses（OpenAI Responses 格式）](https://www.scirouter.cn/docs/responses)「转换」 |
| 上下文超长 | 平台发送 `event: response.failed`，`response.error.code` 为 `context_length_exceeded`。Codex 只在收到该事件时自动压缩对话，因此流式请求即使在开流前判定超长，也返回 HTTP 200 加该事件，不返回 400 |
| 退避 | Codex 只读取 `Retry-After`（不读取 `retry-after-ms`），平台的 429 均带该响应头 |

Codex 中接入平台的 MCP 工具见 [MCP 与托管工具](https://www.scirouter.cn/docs/mcp)。
