文档 · 供应商
Anthropic 接入 Claude Code、Codex、Gemini CLI 和 OpenCode
Anthropic 通过 api.anthropic.com 上的 Messages 接口提供 Claude。把 Anthropic 的 API Key 添加到 magpie 一次,Claude Code、Codex、Gemini CLI、OpenCode 以及你接入的其他工具,都能通过 magpie 的本地网关 127.0.0.1:3425 使用 Claude 模型,每个工具各用各的模型。说其他接口的工具,magpie 会在路上替它转换。
添加 Anthropic
- 拿到 Key在 console.anthropic.com 创建。API Key 以
sk-ant-api开头。 - 添加供应商在 magpie 的 供应商 页点 + 添加供应商,选 Anthropic,粘贴 Key 并保存。magpie 会向 Anthropic 查询这个 Key 能用哪些模型。
- 给工具选上在 Agent 页点工具那一行的模型,选一个 Claude 模型,比如
claude-opus-5-5。
magpie provider add anthropic <key> magpie provider test anthropic
magpie 里的模型 id 是 供应商/模型,所以 Anthropic 的模型写作 anthropic/claude-opus-5-5:前面是供应商,后面是 Anthropic 自己的 id。Key 保存在 magpie 的设置里,magpie 不会从 shell 里读取它。
已经在 OpenCode 或 Alma 里配好了 Anthropic?magpie 从这些应用导入时,会把它变成 Anthropic 供应商。
本页讲的是 API Key。Claude Pro 或 Max 订阅另有登录方式,见 订阅用于任意 Agent。
接口地址
| 接口 | 地址 | 用途 |
|---|---|---|
| Messages | https://api.anthropic.com/v1/messages | 所有工具的请求:Claude Code 的原样发送,Codex、Gemini CLI 和 OpenCode 的转换后发送 |
| 模型 | https://api.anthropic.com/v1/models | 模型列表 |
magpie 的 Anthropic 供应商没有 Chat Completions 或 Responses 地址,所以说这两种接口的工具,以及说 Google Gemini 接口的工具,请求都会转换成 Messages,回复再转换回去,流式输出和工具调用都包括在内。
模型列表
magpie 从 Anthropic 的 https://api.anthropic.com/v1/models 获取列表,每一页都会取到,所以工具里看到的就是你的 Key 能用的模型。名称、上下文窗口和价格来自 models.dev 的 anthropic 目录。工具能看到哪些模型,可以在供应商的模型列表里选,也可以在终端里选:
magpie provider models anthropic +claude-opus-5-5 +claude-sonnet-5-5 +claude-haiku-5-5 magpie provider refresh-every anthropic 1d
Claude Opus 5.5、Sonnet 5.5 和 Haiku 5.5 能接受 1M token。窗口这么长时,Codex 会在 272K 处压缩对话,而不是每一轮都发送越来越多的内容;magpie model compact off 可以让它一直用到整个窗口。在 Claude Code 里,Claude 模型按它自己的窗口运行,和 Anthropic 一样:200K,除非选的是带 [1m] 的那个。
在各个工具里用
magpie claude anthropic/claude-opus-5-5 magpie codex anthropic/claude-opus-5-5 magpie gemini model anthropic/claude-sonnet-5-5 magpie opencode anthropic/claude-sonnet-5-5
- Claude Code 说的是 Anthropic Messages,所以请求按 Claude Code 发出的样子发给 Anthropic,它自己的缓存标记、思考和 beta 都保留,只做下面这些修正。Claude Code 接入其他模型。
- Codex 说的是 OpenAI Responses,Anthropic 不提供这个接口。magpie 把每个请求转换成 Messages,再把回复转换回来,给提示加上 Anthropic 的缓存标记,并在工具调用循环里保住 Claude 签过名的思考。Codex 接入其他模型。
- Gemini CLI 说的是 Google 的 Gemini 接口。magpie 把每个请求转换成 Messages,再把回复转换回来。Gemini CLI 接入其他模型。
- OpenCode 对 magpie 说的是 Chat Completions,所以它的请求也会转换成 Messages。OpenCode 接入其他模型。
magpie 替你处理的请求
magpie 转换的请求,会按 Anthropic Messages 接口要求的样子来构造;Anthropic 会拒绝的几样东西,在 Claude Code 的请求里也会修正:
- 提示缓存。Anthropic 只缓存到标了
cache_control的那个块为止,而从其他接口来的请求没有任何标记。magpie 会标记系统提示(没有系统提示时标记最后一个工具)和对话的最后一个块,最多两个标记,这样下一轮就能从缓存里读到之前的内容。自己带了cache_control的请求保留它自己的标记,magpie 不再添加。 - Codex 的一小时缓存。Codex 的两轮之间常常隔了五分钟以上,所以 magpie 给它的请求加的标记保留一小时,除非 Codex 请求了
prompt_cache_retentionin_memory。上游不接受一小时的ttl时,magpie 改用五分钟的标记重新请求,并记住这一点。 - 签名的思考。Claude 会给自己的思考签名,并要求在工具调用循环的下一轮原样传回。Codex 在推理条目的
encrypted_content里拿到每个思考块,签名也在里面,magpie 再原样发回给 Anthropic;被遮蔽的思考也原封不动地传回。没有签名的思考会被去掉,其他厂商签名的思考也会被去掉(比如路由分组里先用 DeepSeek 时留下的),因为 Claude 会拒绝它们。 - 工具调用。被中断的一轮留下没有回应的调用时,magpie 会补一个说明结果不可用的回应;回应了一个 Anthropic 从没见过的调用时,这个回应会变成文本,否则 Anthropic 会拒绝整个请求。历史里有调用、却没声明工具时,magpie 会声明这些工具,并设
tool_choice为 none。必须调用工具时发any,指定某个工具时发tool,关掉并行调用时发disable_parallel_tool_use。 - 采样参数。Opus 4.7 及以后、Sonnet 5 和 5.5、Haiku 5.5 以及 Fable 5 会拒绝
temperature、top_p和top_k,而 Claude Code 的自动模式分类器会发送它们。magpie 对这些模型不发送这几项。 - Beta。工具在
anthropic-beta里请求的 beta 会发给 Anthropic,只有 Claude Code 自己登录用的 beta(oauth-…)除外,它指向的凭据不会离开 magpie。 - 结构化输出。要求按 schema 输出 JSON 的请求,会以
output_config.format发给 Anthropic。
推理
- 推理强度。Claude 4.6 及以后的模型是自适应思考。转换后的请求,推理强度放在
output_config.effort里,思考设为自适应并要求显示摘要(display: summarized),因为 Opus 4.7 及以后不要求就不返回思考文本。Opus 和 Sonnet 4.6 没有 xhigh,所以 xhigh 按 max 请求。 - 思考预算。更早的 Claude 模型用思考预算:low 4,096 token,medium 10,000,high 24,000,xhigh 和 max 32,000,并且会控制在请求的
max_tokens之内。 - 发给新模型的预算。带思考预算的请求发给 4.6 及以后的模型时(Claude Opus 5.5 会以 “requires adaptive thinking” 拒绝),会改成自适应思考,预算换成最接近的推理强度。
- 关闭推理。Codex 或 Chat 客户端把推理强度设为 none 时,思考会被关掉,而不是降成一个很低的预算。每个模型关闭的方式不同:Sonnet 5.5 发
between_tools,高于 high 的强度按 high 请求;Opus 5.5 和 Fable 5 总是在思考,所以不发 thinking;Opus 5 和 Haiku 5.5 在 xhigh 或 max 时改按 high 请求;更早的 Claude 原样接受。Claude Code 关掉思考的请求也按同样的方式处理。
联网搜索
Anthropic 自己就能联网搜索。Claude Code 的 WebSearch 原样发给 Anthropic。Codex、Gemini CLI 或 Chat 客户端要求搜索时,magpie 交给 Claude 的是 Anthropic 自己的 web_search_20250305 工具,每个请求最多搜索五次,而不是 magpie 的搜索器。
费用与用量
- 缓存 token。用量 页按 Anthropic 报告的数字,把缓存读取、五分钟的缓存写入和一小时的缓存写入,与其余的提示分开统计。
- 费用。用量页按 models.dev 上 Anthropic 的价格给每次调用计价。目录里没给一小时写入价格时,按输入价格的两倍计,和 Anthropic 的计费一样。magpie 不会从 Anthropic 读取余额;可以用
key-balance自己填上,用量页会显示它减去 magpie 此后给这个 Key 的调用算出的费用。 - 保住缓存。有多个 Key 时,只要一段对话的缓存值得保留(1,024 个 token 以上),而且还热着(五分钟内读过,按一小时写入的则是一小时内),它就一直用同一个 Key。
多个 Key 与故障切换
一个 Anthropic 供应商可以放多个 Key:在它下面点 添加另一个密钥,也可以一次粘贴好几个。请求先走第一个开着的 Key,它用完或被限流时由下一个接替。
- 花费上限。
spend-cap给某个 Key 设一个每天、每月或总计的美元上限,按用量页的计价算;到了上限,路由就转去其他 Key 和备用模型。 - 备用模型。
fallback指定 Anthropic 额度用完或挂掉时请求去哪:另一个供应商的模型,或一个路由分组。 - 工作区。能访问多个工作区的 Key,用
anthropic-workspace-id请求头指定每个请求用哪个工作区。用另一个 id 再添加一次这个供应商,在它的请求头一栏或终端里设好这个请求头;它的模型就写作anthropic-ws2/…。
magpie provider spend-cap anthropic <key> 20 month magpie provider key-balance anthropic <key> 25 magpie provider fallback anthropic deepseek/deepseek-v4-pro magpie provider add anthropic <key> id=anthropic-ws2 name="Anthropic WS2" header.anthropic-workspace-id=wrkspc_…
常见报错
- “requires adaptive thinking”。给 4.6 及以后的模型发了思考预算。magpie 会改成自适应思考,用最接近的推理强度,见 推理。
- 关闭思考时报 400。Sonnet 5.5、Opus 5.5 和 Fable 5 都拒绝
disabled,Opus 5 和 Haiku 5.5 在 xhigh 和 max 时拒绝。magpie 按每个模型接受的方式关闭思考。 - “
temperatureis deprecated for this model”。对拒绝temperature、top_p和top_k的模型,magpie 不发送这几项。 - “
tool_useids were found withouttool_resultblocks”。被中断的一轮留下了没有回应的调用。在 magpie 转换的请求里,这个调用会补上一个说明结果不可用的回应。 - “Invalid
signatureinthinkingblock”。这段对话之前在其他厂商的模型上跑过。magpie 会把其他厂商签名的、或没有签名的思考,从发给 Claude 的内容里去掉。 - 关于
cache_control和ttl的 400。上游不接受 magpie 给 Codex 加的一小时标记。magpie 会改用五分钟的标记重新请求,之后对这个供应商一直这样。 - “this is an Anthropic API key, not a setup-token”。这个 Key 被填进了 Claude 订阅的登录里。请把它添加成 Anthropic 供应商。
- 检查 Key。
magpie provider test anthropic会向每个接口发一个很小的请求,或者发给你指定的每个模型。加上--as codex或--as claude-code,就按那个工具的方式发送。
常见问题
怎么在 Claude Code 里用 Anthropic API Key?
在 magpie 里添加 Anthropic API Key(供应商、添加供应商、Anthropic),然后在 Claude Code 那一行选一个 Claude 模型,比如 claude-opus-5-5,或者运行 magpie claude anthropic/claude-opus-5-5。Claude Code 说的是 Anthropic Messages,所以请求按它发出的样子发到 https://api.anthropic.com,只在路上修掉模型会拒绝的内容。
Codex 能用 Claude 模型吗?
能。Codex 说的是 OpenAI Responses 接口,Anthropic 不提供,所以 magpie 把每个请求转换成 Messages 接口,再把回复转换回来。它会给提示加上保留一小时的缓存标记,并通过 Codex 的 encrypted_content 在工具调用循环里保住 Claude 签过名的思考。运行 magpie codex anthropic/claude-opus-5-5 即可。
怎么通过 magpie 在 OpenCode 里用 Claude?
在 magpie 里选好模型,或者运行 magpie opencode anthropic/claude-sonnet-5-5。OpenCode 对 magpie 说的是 Chat Completions,所以 magpie 把它的请求转换成 Anthropic 的 Messages 接口,给提示加上缓存标记,并把推理强度换成这个模型能接受的样子。
Gemini CLI 能用 Claude 吗?
能。Gemini CLI 说的是 Google 的 Gemini 接口,magpie 会把它的请求转换成 Anthropic 的 Messages 接口,再把回复转换回来,流式输出和工具调用都包括在内。运行 magpie gemini model anthropic/claude-sonnet-5-5 即可。
magpie 转换的请求能用上 Anthropic 的提示缓存吗?
能。Codex、Gemini CLI 和 OpenCode 的请求自己没有缓存标记,所以 magpie 标记系统提示和对话的最后一个块,最多两个标记,下一轮就能从缓存里读到之前的内容。自己带了 cache_control 的请求保留它自己的标记。Codex 的标记保留一小时,其他的五分钟。
关掉思考时 Claude 为什么回 400?
较新的 Claude 模型并不都接受 thinking disabled。magpie 给 Sonnet 5.5 发 between_tools;Opus 5.5 和 Fable 5 总是在思考,所以不发 thinking;Opus 5 和 Haiku 5.5 在 xhigh 或 max 时改按 high 请求。更早的 Claude 原样发送。
按供应商:DeepSeek · Kimi 与 Kimi Code · GLM 编程套餐 · 通义千问 · MiniMax · OpenAI · Gemini · Grok · Mistral · OpenRouter · GitHub Copilot · Ollama
各个工具的指南:Claude Code 接入其他模型、Codex 接入其他模型、Gemini CLI 接入其他模型、OpenCode 接入其他模型。遇到问题可以在 Discord 提问。