文档 · 供应商
OpenAI 接入 Claude Code、Codex、Gemini CLI 和 OpenCode
OpenAI 在 api.openai.com 上提供两种接口:Responses 和 Chat Completions。它自家的模型最好走 Responses,最新的模型只在那里回答。把 OpenAI 的 API Key 添加到 magpie 一次,Claude Code、Codex、Gemini CLI、OpenCode 以及你接入的其他工具,都能通过 magpie 的本地网关 127.0.0.1:3425 使用 OpenAI 的模型,每个工具各用各的模型。Codex 的请求原样发给 OpenAI,其他工具的请求由 magpie 在路上转换。
本页讲的是 platform.openai.com 的 API Key。ChatGPT Plus 或 Pro 订阅是另外登录的,见 订阅用于任意 Agent。
添加 OpenAI
- 拿到 Key在 platform.openai.com 创建,以
sk-开头。 - 添加供应商在 magpie 的 供应商 页点 + 添加供应商,选 OpenAI,粘贴 Key 并保存。magpie 会向 OpenAI 查询这个 Key 能用哪些模型。
- 给工具选上在 Agent 页点工具那一行的模型,选一个 OpenAI 模型,比如
gpt-6.1-sol。
magpie provider add openai <key> magpie provider test openai
magpie 里的模型 id 是 供应商/模型,所以 OpenAI 的模型写作 openai/gpt-6.1-sol:前面是供应商,后面是 OpenAI 自己的 id。Key 保存在 magpie 的设置里,magpie 不会从 shell 里读取它。
已经在 OpenCode 或其他 magpie 能导入的应用里配好了 OpenAI?导入时会把它变成 OpenAI 供应商。
接口地址
| 接口 | 地址 | 用途 |
|---|---|---|
| Responses | https://api.openai.com/v1 | OpenAI 自家的模型,即 id 以 gpt-、codex 或 o 加数字开头的:Codex 的请求原样发送,Claude Code、Gemini CLI 和 OpenCode 的转换后发送 |
| Chat Completions | https://api.openai.com/v1 | 模型列表,以及 Key 列出的其他模型 |
magpie 的 OpenAI 供应商没有 Anthropic Messages 地址,所以 Claude Code 的请求总是要转换。对 OpenAI 自家的模型,即使工具说的是 Chat Completions,magpie 也先走 Responses。OpenAI 回答某个模型只在 /v1/responses 上提供时,magpie 会改到那里重新请求,并记住这一点。想自己指定某个模型走哪个接口:
magpie model api openai/gpt-5.5 chat magpie model api openai/gpt-5.5 --reset magpie model apis openai
Azure OpenAI 是单独的供应商 Azure OpenAI。填上你的资源地址 https://<resource>.openai.azure.com 和它的 Key。magpie 通过 /openai/v1 下的 v1 接口使用 Chat Completions 和 Responses,Key 放在 api-key 请求头里,并把资源里的部署列为模型。按模型命名的部署(比如 gpt-5-codex)同样先走 Responses。
模型列表
magpie 从 OpenAI 的 https://api.openai.com/v1/models 拉取列表,所以工具里看到的就是这个 Key 能用的模型。名称、上下文长度、推理档位和价格来自 models.dev 的 openai 目录。OpenAI 刚上架、档位还不清楚的推理模型,会沿用同系列最新推理模型的档位:gpt-6.1-sol 用的就是 gpt-6-sol 的。工具能看到哪些模型,可以在供应商的模型列表里挑,也可以在终端里设置:
magpie provider models openai +gpt-6.1-sol +gpt-6-luna +gpt-5.5 magpie provider refresh-every openai 1d
在各个工具里用
magpie claude openai/gpt-6.1-sol magpie codex openai/gpt-6.1-sol magpie gemini model openai/gpt-6.1-sol magpie opencode openai/gpt-6.1-sol
- Claude Code 说的是 Anthropic Messages,OpenAI 不提供这个接口。magpie 把每个请求转换成 Responses,再把回复转换回来;模型的推理摘要会先以思考内容出现在 Claude Code 里,然后才是正文。Claude Code 接入其他模型。
- Codex 说的是 Responses,所以请求原样发给 OpenAI,
apply_patch这类自定义工具、推理条目和 Codex 自己的prompt_cache_key都包括在内。这里 Codex 还能用 Fast,见 推理。Codex 接入其他模型。 - Gemini CLI 说的是 Google 的 Gemini 接口。magpie 把每个请求转换成 Responses,再把回复转换回来。Gemini CLI 接入其他模型。
- OpenCode 说的是 Chat Completions。OpenAI 自家的模型先走 Responses,所以 magpie 把它的请求转换过去,再把回复转换回来;Key 列出的其他模型则原样收到 OpenCode 的请求。OpenCode 接入其他模型。
magpie 为 OpenAI 做的事
- 提示缓存 Key。转换后发给 OpenAI 的请求如果没有
prompt_cache_key,magpie 会补上一个:取工具指明的会话,没有就取第一条用户消息,再做哈希,所以它不透露工具的任何信息。Codex 自己发的会原样保留,你自己设置的优先。如果 OpenAI 因为这个字段回 400,magpie 去掉它重新请求。 - 工具在加载的位置发送。Claude Code 的工具搜索在对话中途加载的工具,会作为一个
additional_tools条目放在加载的位置发给 OpenAI 的 Responses 接口,而不是加进工具列表,这样缓存的前缀保持不变。additional-tools=off会把它和其他工具放在一起。 - 来自别处的加密推理。OpenAI 只认它自己加密的推理(
encrypted_content)。用另一个 Key、组织或账号加密的条目会被拒绝(“could not be verified”);magpie 去掉这些条目重新请求,并在这段对话里记住。Codex 在 Claude 模型上跑过一轮后,会把 Claude 的思考放在推理条目里带着,这部分在请求到达 OpenAI 之前会被去掉。 - 之前的回复。Responses 客户端可以只发这一轮的新输入,并指明它接着哪个回复(
previous_response_id)。magpie 把给这类客户端的每个回复保存在内存里,按调用方的网关 Key 分开。OpenAI 自己也保存回复,所以当被指明的那个回复是同一个 Key 回答的,发给 OpenAI 的就只有它自己的 id 之后的新输入。走 HTTP 的 Codex 会说storefalse,不会指明之前的回复。 - Codex 自己的压缩。设成
compaction=native后,Codex 的压缩请求按 Codex 发出的样子交给 OpenAI,加密的压缩条目再原样还给 Codex。只有加密它的那个 Key 能读,所以之后带着它的请求只发到那里。默认的compaction=magpie由 magpie 来总结。
magpie provider set openai compaction=native magpie provider set openai additional-tools=off
推理
- 推理强度。工具要求的推理强度,会按目录里列出的档位,换成这个模型最接近的一档:
gpt-6-sol有none、low、medium、high、xhigh和max。在 Responses 上它以reasoning.effort发送,同时把summary设为auto,这样模型的推理摘要会一起返回。 - 关闭推理。需要 magpie 转换请求的工具(比如 Gemini CLI)关掉推理时,如果模型的档位里有
none,magpie 就请求 none。 - 加密的推理。工具要求 include 的内容 magpie 会照传,但只在有推理时才请求
reasoning.encrypted_content:OpenAI 会拒绝不推理的模型带上它。Codex 会在下一轮把加密条目传回来,magpie 原样转发。 - Fast。用 OpenAI 的 Key 时,Codex 在 GPT 和 o 系列模型上可以选 Fast。magpie 把它作为
service_tier: "priority"发送,也就是 OpenAI 的优先处理。在 magpie 里给 Codex 设定的服务档位,会覆盖 Codex 自己的要求。
联网搜索
OpenAI 的 Responses 接口自己就能联网搜索。工具给模型提供联网搜索时(Codex 和 Claude Code 都会),magpie 在 Responses 上给模型 OpenAI 自己的 web_search 工具,由 OpenAI 来搜索。
费用与用量
- 费用。用量 页按 models.dev 上 OpenAI 的价格给每次调用计价。
- 缓存 token。回复里报告了缓存命中的提示 token 时,用量页会把它们和其余的提示分开统计。
- 保住缓存。有多个 Key 时,只要一段对话的缓存值得保留(1,024 个 token 以上),而且还热着(五分钟内读过),它就一直用同一个 Key。
- 服务档位。每次调用都记下工具要求的档位、magpie 发出的档位,以及 OpenAI 回复里说实际用的档位。
- 余额。magpie 不会从 OpenAI 读取余额;可以用
key-balance自己填上,用量页会显示它减去 magpie 此后给这个 Key 的调用算出的费用。
多个 Key 与故障切换
一个 OpenAI 供应商可以放多个 Key:在它下面点 添加另一个密钥,也可以一次粘贴好几个。请求先走第一个开着的 Key,它用完或被限流时由下一个接替。如果想把 Key 分开(比如来自两个组织),就再添加一次供应商,第二个叫 openai-2。
- 花费上限。
spend-cap给某个 Key 设一个每天、每月或总计的美元上限,按用量页的计价算;到了上限,路由就转去其他 Key 和备用模型。 - 备用模型。
fallback指定 OpenAI 额度用完或挂掉时请求去哪:另一个供应商的模型,或一个路由分组。
magpie provider spend-cap openai <key> 20 month magpie provider key-balance openai <key> 25 magpie provider fallback openai deepseek/deepseek-v4-pro
常见报错
- “The encrypted content for item rs_… could not be verified”。对话里带着用另一个 Key、组织或账号加密的推理。magpie 会去掉这些条目重新请求,见 magpie 为 OpenAI 做的事。
- 只在
/v1/responses上回答的模型。magpie 会把它改到 Responses 并记住。magpie model apis openai会列出每个模型走哪个接口。 - 因
prompt_cache_key回 400。magpie 会去掉它补上的这个字段重新请求。 - 检查 Key。
magpie provider test openai会向每个接口发一个很小的请求,或者发给你指定的每个模型。加上--as codex或--as claude-code,就按那个工具的方式发送。
常见问题
怎么在 Claude Code 里用 OpenAI 的模型?
在 magpie 里添加 OpenAI API Key(供应商、添加供应商、OpenAI),然后在 Claude Code 那一行选一个模型,比如 gpt-6.1-sol,或者运行 magpie claude openai/gpt-6.1-sol。OpenAI 不提供 Anthropic Messages 接口,所以 magpie 把 Claude Code 的请求转换后发到 OpenAI 的 Responses 接口 https://api.openai.com/v1,再把回复转换回来,推理摘要作为思考内容。
Codex 能用 OpenAI API Key,而不是 ChatGPT 登录吗?
能。添加 Key 后运行 magpie codex openai/gpt-6.1-sol。Codex 说的是 Responses,所以请求原样发给 OpenAI,自定义工具和推理都包括在内,Fast 作为优先处理发送。ChatGPT Plus 或 Pro 登录是另外在订阅里设置的。
怎么在 OpenCode 里用 GPT 模型?
在 magpie 里选好模型,或者运行 magpie opencode openai/gpt-6.1-sol。OpenCode 说的是 Chat Completions,但 OpenAI 自家的模型先走 Responses,所以 magpie 把 OpenCode 的请求转换过去,再把回复转换回来。想让某个模型走 Chat Completions,运行 magpie model api openai/gpt-5.5 chat。
Gemini CLI 能用 OpenAI 吗?
能。Gemini CLI 说的是 Google 的 Gemini 接口,magpie 会把它的请求转换成 OpenAI 的 Responses,再把回复转换回来,流式输出和工具调用都包括在内。运行 magpie gemini model openai/gpt-6.1-sol 即可。
magpie 能保住 OpenAI 的提示缓存吗?
能。Codex 自己的 prompt_cache_key 原样保留。转换过的请求如果没有,会得到一个由会话或第一条用户消息生成的 Key,经过哈希,不透露工具的任何信息。有多个 Key 时,对话的缓存还热着,就一直用同一个 Key。
OpenAI 为什么说 encrypted content could not be verified?
OpenAI 只认同一个 Key、组织或账号加密的推理。对话里带着在别处加密的推理时,magpie 会去掉这些条目重新请求,并在这段对话里记住。
magpie 支持 Azure OpenAI 吗?
支持,它是单独的供应商 Azure OpenAI。填上资源地址和 Key;magpie 使用 /openai/v1 下的 v1 接口,把 Key 放在 api-key 请求头里,并把资源里的部署列为模型。
按供应商:DeepSeek · Kimi 与 Kimi Code · GLM 编程套餐 · 通义千问 · MiniMax · Anthropic · Gemini · Grok · Mistral · OpenRouter · GitHub Copilot · Ollama
各个工具的指南:Claude Code 接入其他模型、Codex 接入其他模型、Gemini CLI 接入其他模型、OpenCode 接入其他模型。遇到问题可以在 Discord 提问。