> 内容来源：Onevium 官方文档
> 文章: 让 OpenAI、Gemini 等非 Claude 模型用上 1M 上下文
> 原文: https://onevium.com/zh/docs/providers/context-window
> 语言：简体中文
> 更新于: 2026-09-22
> 适用版本: 1.2.1+

---

# 让 OpenAI、Gemini 等非 Claude 模型用上 1M 上下文

Claude Code 只按模型名判断上下文窗口。了解 Onevium 各连接类型如何处理 1M 上下文，以及如何为 OpenAI Responses、Chat Completions 和 Gemini 服务商添加带 [1m] 的模型条目。

## 为什么 1M 模型仍在 200K 附近压缩

Onevium 的每个会话都运行在 Claude Code 里，包括使用 OpenAI、Grok 或 Gemini 连接的会话。对这些连接，Onevium 会启动一个本地桥接，把 Claude Code 的请求翻译成服务商自己的接口。

Claude Code 不会向服务商查询模型的上下文窗口，而是读取**模型名**：

- 名字里包含 `[1m]`，按 1M token 窗口处理。
- 名字以 `claude-` 开头，走 Claude Code 的内置表。
- 其余名字视为未知模型，按 200K 处理，会话接近该上限时自动压缩。

所以即使 GPT-6 Astra 本身支持 1M 以上，会话里执行 `/context` 仍显示约 `200k`。**管理模型** 里的 `contextWindow` 只驱动 Onevium 自己的用量条，Claude Code 不读取它。

Claude Code 在请求离开本机前会去掉 `[1m]` 后缀，上游服务收到的仍是干净的模型 ID。输入框下方的模型标签和 `/context` 会显示带后缀的名字，这是预期行为。

## 开始之前

- 先向服务商确认模型的真实窗口。只给文档标明窗口不少于 1M token 的模型加 `[1m]`：Claude Code 会按 1M 发送提示，窗口更小的模型会直接报错，而不是压缩。
- 先让该连接用一条短消息正常工作。参见[服务商与模型](https://onevium.com/zh/docs/providers)或[自定义服务商](https://onevium.com/zh/docs/providers/custom)。
- 弄清条目使用的连接类型。**设置 → 服务商** 的每条记录都会显示；预设会替你选好。

## 各连接类型分别需要什么

| 连接类型                                                   | 例子                                        | 1M 窗口来自哪里                                                                                                      | 你要做的                                       |
| ------------------------------------------------------ | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| Anthropic（官方）                                          | Anthropic 预设、Claude Code 登录               | Fable 5.1、Opus 5、Sonnet 5 原生 1M。Opus 4.8 或 Sonnet 4.6 需要 **设置 → Claude CLI → 1M 上下文窗口**，它会为 Claude 模型追加 `[1m]` | 通常不用操作；旧版 Claude 模型打开全局开关                  |
| Anthropic 兼容预设                                         | DeepSeek、GLM (CN) / z.ai、Moonshot、MiniMax | 预设的 **(1M)** 条目已映射到带后缀的上游 ID，例如 `deepseek-flash[1m]`、`glm-5.3[1m]`、`kimi-k3[1m]`、`MiniMax-M3[1m]`              | 选择显示名以 **(1M)** 结尾的条目                      |
| Kimi Coding Plan                                       | `k3-256k`、`kimi-for-coding`               | 预设声明 256K 窗口（`CLAUDE_CODE_MAX_CONTEXT_TOKENS`）。K3 的 1M 是套餐权益，不是默认值                                             | 套餐不含 1M 就保持 256K；含 1M 时按下面的手动步骤为 `k3` 添加条目 |
| 自定义 Anthropic Messages 网关                              | Anthropic API 的中转                         | **高级选项 → 接口支持 1M 上下文** 加全局开关，为 Claude 模型追加 `[1m]`                                                              | 打开两个开关。非 Claude 的 ID 按下面的方法添加 `[1m]` 条目    |
| OpenAI Responses、OpenAI Chat Completions、Google Gemini | OpenAI、Grok、Google Gemini 预设，以及这些类型的自定义网关 | 没有自动处理。桥接原样转发 Claude Code 看到的模型 ID                                                                             | 添加一条模型 ID 以 `[1m]` 结尾、上游模型标识为干净名字的条目       |

最后一行就是本文要解决的情况。Onevium 目前不会替这些连接类型自动加后缀，下面的步骤是受支持的配置方式。

## 为 OpenAI、Grok 或 Gemini 连接添加 \[1m] 模型条目

1. 打开 **设置 → 服务商**，找到该连接，点击 **管理模型**。
2. 点击 **添加自定义模型**，展开新行的 **高级** 字段。
3. 填写三个字段。请用你自己的模型 ID，表中以 OpenAI 预设为例。

| 字段     | 值                  | 原因                         |
| ------ | ------------------ | -------------------------- |
| 模型 ID  | `gpt-6-astra[1m]`  | 这是 Claude Code 看到的名字，必须带后缀 |
| 上游模型标识 | `gpt-6-astra`      | 这是桥接发给服务商的名字，保持干净          |
| 显示名    | `GPT-6 Astra (1M)` | 任何能在模型菜单里区分两个条目的标签         |

4. 勾选新条目，让它出现在模型菜单。原条目可以保留，也可以取消勾选，避免误选 200K 版本。
5. 点击 **保存**。从这个对话框保存后，Onevium 会刷新模型菜单。

需要 1M 的每个模型都重复一次，例如 `gpt-5.6-sol[1m]` → `gpt-5.6-sol`、`gpt-5.6-luna[1m]` → `gpt-5.6-luna`。OpenAI 的 GPT-6 与 GPT-5.6 系列文档标明 1.05M 窗口；Grok 4.7 文档标明 500K，不适用；Gemini 请查对应模型页面。

不要把 `[1m]` 写进 **上游模型标识**。个别网关碰巧接受它，但 OpenAI 和 Gemini 官方接口不接受，而桥接总是原样转发上游字段。

## 角色映射、子任务与子会话

你添加的条目覆盖主会话。另有两处会自行选择模型：

- **角色与子任务。** Claude Code 从连接的角色映射解析 Opus、Sonnet、Haiku 和子任务角色。Anthropic 兼容连接可以在 **高级选项 → 模型路由** 里编辑映射并追加 `[1m]`，字段提示已经这样建议。OpenAI Responses、Chat Completions 和 Gemini 预设的映射来自预设，1.2.1 中不可编辑，所以派生的子任务仍使用预设的默认窗口。后续版本会为这些连接类型开放该映射。
- **AI 创建的子会话。** `create_session` 工具会按同一个模型菜单解析 `model` 参数。Onevium 1.2.1 拒绝含方括号的 ID，`gpt-6-astra[1m]` 传不进去；1.2.2 起接受该后缀。升级前让子会话继承父会话的模型，不要显式传入。

## 确认窗口

1. 新建一个会话。已有会话保持开始时的模型。
2. 选择名字以 **(1M)** 结尾的条目。
3. 发送 `/context`，总量应显示 `1m` 而不是 `200k`。
4. 发一句短消息，例如“只回复：已收到”，确认桥接仍能用干净的上游 ID 正常回复。

如果总量仍是 `200k`，说明会话还在旧条目上，或者模型 ID 保存时漏了后缀。打开 **管理模型** 检查该行。

## 排障

| 现象                                                                   | 检查什么                                                                                    |
| -------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| 模型菜单里没有新条目                                                           | 确认已勾选并保存。若是通过本地 API 而不是这个对话框改的模型，打开服务商条目点一次 **更新**，或重启 Onevium                          |
| 服务商返回未知模型错误                                                          | 后缀写进了 **上游模型标识**。只保留在 **模型 ID** 里                                                       |
| 把连接类型改成 Anthropic Messages 也没用                                       | Claude Code 看到的仍是干净名字，窗口还是 200K；网关也可能拒绝用 OpenAI 密钥访问 `/v1/messages`。保持与接口一致的连接类型，改为添加条目 |
| 在 `~/.claude/settings.json` 里设 `CLAUDE_CODE_AUTO_COMPACT_WINDOW` 没效果 | Claude Code 会把该值限制在模型的假定窗口内，未知名字仍是 200K。开关是后缀，不是这个变量                                    |
| 模型标签显示 `gpt-6-astra[1m]`                                             | 预期行为。Claude Code 发请求前会去掉后缀                                                              |

## 下一步

回看完整的[服务商列表](https://onevium.com/zh/docs/providers#supported-providers)，或用[自定义连接](https://onevium.com/zh/docs/providers/custom)接入团队网关。想了解会话用了多少窗口，阅读[会话数据](https://onevium.com/zh/docs/settings-and-data)。
