概述
2026 年 9 月 2 日,Moonshot 官方宣布 Kimi API 原生支持双协议接入。这意味着同一个 Kimi 模型可以同时通过 OpenAI Responses API 与 Anthropic Messages API 两种协议对外提供服务。对于已经在使用 Codex 或 Claude Code 的团队来说,这带来了一个非常直接的收益:你不需要改造任何客户端代码,只需要修改几个环境变量与配置文件,就能把底层的模型从原来的供应商切换到 Kimi。
本文是一份可逐步执行的 SOP。它会带你完成从申请密钥、配置 Claude Code、配置 Codex,到最终验证接入是否成功的完整流程,并重点说明双协议路由的玩法、价格口径,以及一批容易踩坑的边界条件。如果你正在评估如何以最低成本把现有开发工具链迁移到国产大模型,这篇文章可以直接照做。
需要强调的是,本文所有配置均经过官方文档核对:端点是 Moonshot 公布的真实地址,模型名与环境变量均来自 Kimi 开放平台的字段说明。你不必担心第三方中转或改写带来的不确定性,照着配置即可复现。
背景与适用场景
过去,如果你希望在一个支持 OpenAI 协议的工具里使用 Kimi,通常需要自己搭建一层兼容网关;而 Claude Code 这类绑定 Anthropic 协议的工具更是难以直接替换底层模型。双协议接入消除了这道门槛,让协议层面的兼容性由 Kimi 服务端直接提供。
典型适用场景包括:
- 你已经在用 Codex(OpenAI Responses 协议)做日常开发,希望把底层模型换成 Kimi K3 以降低成本或提升中文能力,但不想改动任何客户端代码。
- 你团队的主力 IDE 助手是 Claude Code(Anthropic Messages 协议),希望在不重写工具链的前提下切换到 Kimi。
- 你希望把 Kimi 当作统一的多模型路由网关:同一套客户端配置,仅通过切换环境变量指向的模型名,就能在 K3、K2.7 Code、K2.6 之间灵活切换。
需要明确的是:协议兼容并不等于能力或价格与原厂商完全一致。Kimi 提供的是协议层面的兼容,具体的上下文窗口、工具调用行为、价格仍需以 Moonshot 官方文档为准。把它当成「网关」来理解最为贴切——它负责把不同协议翻译成 Kimi 能处理的形式,但模型本身的能力边界由 Kimi 决定。
对于国内团队而言,双协议接入还有一层现实意义:在合规与成本可控的前提下,把开发工具链的底盘从海外模型平滑迁移到国产模型。由于切换只发生在配置层,原有的工程实践、提示词模板与自动化脚本都能原样保留,迁移摩擦被降到最低。
此外,双协议接入也降低了「被单一供应商锁定」的风险。当某个模型的可用性、价格或能力发生变化时,你只需在配置里改一个模型名即可转向备选模型,而不必重新适配整套客户端代码。这种灵活性在快速演进的模型市场中尤为重要。
前置条件
在开始之前,请确认你已经具备以下条件:
- 一个有效的 Moonshot 账号,并已开通 API 访问权限。
- 一张可用的 API Key(下文统一记为
<MOONSHOT_API_KEY>)。 - 本地已安装并可用 Claude Code 与 Codex 命令行工具。
- 操作系统的 shell 配置文件(如
~/.bashrc、~/.zshrc)可正常写入并加载环境变量。
如果你使用的是 Windows,请注意本文中的路径 ~/.claude/settings.json 与 ~/.codex/config.toml 对应的是用户主目录下的对应文件;在 PowerShell 环境中,环境变量应通过 $env: 语法或系统环境变量面板设置,而不是 bash 的 export。
第一步:获取 Moonshot API Key
登录 Moonshot 开放平台控制台,在「API Key 管理」页面创建一个新的密钥。请务必把密钥保存在安全的地方,不要提交到代码仓库,也不要硬编码进任何配置文件。
本文所有配置都通过环境变量注入密钥,因此你只需要把密钥导出到当前 shell 环境即可。例如在 ~/.bashrc 中加入:
export MOONSHOT_API_KEY="sk-xxxxxxxxxxxxxxxx"
export KIMI_API_KEY="sk-xxxxxxxxxxxxxxxx"注意:Claude Code 配置使用 ANTHROPIC_AUTH_TOKEN 读取密钥,Codex 配置使用 KIMI_API_KEY 读取密钥,二者可以指向同一个值,但变量名不同,请勿混淆。建议把两个变量都导出,避免后续切换工具时遗漏。
第二步:配置 Claude Code
Claude Code 通过 Anthropic Messages 协议与模型通信。Kimi 提供了兼容该协议的接入点,因此你只需在 ~/.claude/settings.json 的 env 段写入一组环境变量即可完成切换。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.moonshot.cn/anthropic",
"ANTHROPIC_AUTH_TOKEN": "<MOONSHOT_API_KEY>",
"ANTHROPIC_MODEL": "kimi-k3[1m]",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k3[1m]",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k3[1m]",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k2.7-code",
"ANTHROPIC_DEFAULT_FABLE_MODEL": "kimi-k3[1m]",
"CLAUDE_CODE_SUBAGENT_MODEL": "kimi-k3[1m]",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "1000000",
"CLAUDE_CODE_EFFORT_LEVEL": "max"
}
}关键字段说明:
ANTHROPIC_BASE_URL必须指向https://api.moonshot.cn/anthropic,这是 Kimi 提供的 Anthropic 协议兼容端点(POST/anthropic/v1/messages)。ANTHROPIC_AUTH_TOKEN填入你的 Moonshot API Key。务必删除旧的ANTHROPIC_API_KEY,否则它可能与ANTHROPIC_AUTH_TOKEN冲突,导致鉴权异常。ANTHROPIC_MODEL设为主模型kimi-k3[1m],方括号中的1m表示启用约 100 万 token 的上下文窗口。ANTHROPIC_DEFAULT_HAIKU_MODEL可以设为kimi-k2.7-code,用于在需要轻量模型时走代码专用模型。CLAUDE_CODE_AUTO_COMPACT_WINDOW设为 1000000,与 K3 的长上下文能力对齐。CLAUDE_CODE_EFFORT_LEVEL设为max,让模型在代码任务中投入更高的推理预算。
第三步:配置 Codex
Codex 走的是 OpenAI Responses 协议,对应 Kimi 的 https://api.moonshot.cn/v1 端点(POST /v1/responses)。编辑 ~/.codex/config.toml:
model="kimi-k3"
model_provider="kimi"
model_context_window=1048576
[model_providers.kimi]
name="Kimi"
base_url="https://api.moonshot.cn/v1"
env_key="KIMI_API_KEY"
wire_api="responses"要点:
base_url必须为https://api.moonshot.cn/v1,这是 Kimi 的 OpenAI Responses 协议兼容端点。wire_api="responses"告诉 Codex 使用 Responses API 而非旧的 Chat Completions API。- 密钥通过
env_key="KIMI_API_KEY"从环境变量读取,不要写死在 toml 文件里,以免密钥泄露。 model_context_window=1048576与 K3 的百万级上下文保持一致(1048576 即 1024×1024)。model_provider="kimi"与下方[model_providers.kimi]段对应,二者名字必须一致。
第四步:验证接入
验证 Claude Code
启动 Claude Code 后,输入 /status 命令,正确的输出应当显示:
- Base URL =
https://api.moonshot.cn/anthropic - Model =
kimi-k3[1m]
如果显示的仍是原厂商的地址或模型,说明环境变量未生效,请检查 settings.json 是否被正确加载,以及旧的 ANTHROPIC_API_KEY 是否已删除。也可以直接发起一次简单对话,观察是否返回来自 Kimi 的响应。
验证 Codex
在终端运行一次 Codex 请求,观察返回是否来自 Kimi 端点。若返回模型名与配置一致且能正常对话,则接入成功。若报错,优先检查 KIMI_API_KEY 是否已导出、toml 中的 base_url 拼写是否正确。
双协议路由:不改动客户端代码切换模型
双协议接入的真正价值在于「统一路由」。你可以把 Kimi 视为一个多模型网关,客户端代码始终保持不变,只在配置层做切换:
- 业务高峰期需要更强推理时,把
ANTHROPIC_MODEL与 Codex 的model同时指向kimi-k3[1m]。 - 需要轻量代码补全时,把 HAIKU 档位指向
kimi-k2.7-code。 - 想尝试更早版本时,切换到
kimi-k2.6。
整个过程无需改动任何客户端代码,只改环境变量或配置文件中的模型名即可。这正是「一套配置打通 Codex 与 Claude Code」的含义——同一份接入逻辑,两种协议,各自对应最熟悉的客户端。
需要提醒的是,不同模型在能力上并非完全等价。例如 kimi-k2.7-code 会强制开启思考(thinking),如果 Claude Code 侧未启用 Thinking,请求会直接返回 400。因此切换模型时,要同步确认该模型的协议行为要求,避免触发错误。
迁移策略:灰度切换与回滚
真正落地到团队时,建议不要一次性把所有人切到 Kimi,而是采用灰度策略:先在小范围验证稳定性,再逐步扩大覆盖面。这样即使遇到问题,影响也被控制在极小范围内。
第一步,在个人开发机上完成本文的接入与验证,确保 /status 与 Codex 请求都正确指向 Kimi 端点,且日常任务(如代码补全、函数重构、单元测试生成)都能顺利完成。这一步的核心目标是确认协议层没有遗漏的兼容问题,尤其是工具调用参数能否被正确透传。
第二步,挑选一个非核心项目作为试点,把 Claude Code 与 Codex 的模型同时指向 Kimi,连续运行一到两天,并主动记录三项指标:响应质量、端到端延迟、以及异常请求占比。要重点观察工具调用(tool use)是否按预期返回、长上下文在跨多轮对话时是否保持稳定、以及在业务高峰期是否出现限流或超时。
第三步,如果试点指标达标,再把更多项目按相同方式迁移过来;如果发现问题,回滚操作只需要把环境变量与配置文件还原为原厂商的地址即可,客户端代码完全不需要改动。这种「配置级回滚」正是双协议接入最大的运维优势——风险被限制在配置层,而不是代码层,回退成本极低。
此外,建议把密钥管理纳入团队规范:API Key 统一通过环境变量注入,禁止写死在代码仓库或共享配置文件中;不同成员使用各自独立的 Key,便于在 Moonshot 控制台按 Key 维度分别统计用量、排查异常与控制成本。对于已接入 CI 的自动化流水线,同样建议通过 Secrets 注入密钥,避免明文出现在日志里。
常见边界与坑(Gotchas)
- Responses API 仅支持文本与图片,不支持视频通道。 如果你通过 Responses API 上传视频,请求会被拒绝。
- 不支持
search_context_size参数。 一旦传入该参数,接口会返回 400。Kimi 内置的web_search在服务器端执行,无需客户端指定上下文规模。 kimi-k2.7-code强制思考。 在 Claude Code 中若未开启 Thinking,对该模型的调用会返回 400。- 旧的
ANTHROPIC_API_KEY必须删除。 它与ANTHROPIC_AUTH_TOKEN冲突,残留会导致鉴权失败。 - 协议兼容 ≠ 能力/价格对等。 Kimi 提供的是协议兼容,具体上下文窗口、工具行为与定价以官方为准。
价格参考(官方 RMB 口径)
以下为 Moonshot 官方公布的人民币价格,请勿引用二手美元报价:
| 模型 | 缓存命中 | 输入 | 输出 |
|---|---|---|---|
| K3 | ¥2.00 / MTok | ¥20.00 / MTok | ¥100.00 / MTok |
| K2.7 Code | — | ¥6.50 / MTok | ¥27.00 / MTok |
价格单位:MTok = 百万 token。请以 Moonshot 官方最新公告为准。
常见问题
Q1:什么是双协议接入?
双协议接入指 Kimi API 同时原生支持 OpenAI Responses API 与 Anthropic Messages API 两种协议。同一个 Kimi 模型可以通过 https://api.moonshot.cn/v1 或 https://api.moonshot.cn/anthropic 两种端点访问,从而兼容不同生态的客户端工具,无需各自搭建兼容网关。
Q2:如何在不改动客户端代码的情况下切换模型?
只需修改配置中的模型名与对应环境变量即可。例如把 Claude Code 的 ANTHROPIC_MODEL 从 kimi-k3[1m] 改为 kimi-k2.7-code,或把 Codex 的 model 改为 kimi-k2.6,客户端代码无需任何改动。切换时注意目标模型的协议行为要求,例如 K2.7 Code 强制思考,避免触发 400。
Q3:如何配置 Claude Code 接入 Kimi?
在 ~/.claude/settings.json 的 env 段设置 ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic、ANTHROPIC_AUTH_TOKEN=<MOONSHOT_API_KEY>、ANTHROPIC_MODEL=kimi-k3[1m] 等变量,并删除旧的 ANTHROPIC_API_KEY。启动后用 /status 验证 Base URL 与 Model 是否正确。
Q4:如何配置 Codex 接入 Kimi?
在 ~/.codex/config.toml 中设置 model="kimi-k3"、model_provider="kimi"、model_context_window=1048576,并在 [model_providers.kimi] 段填写 base_url="https://api.moonshot.cn/v1"、env_key="KIMI_API_KEY"、wire_api="responses"。密钥从环境变量读取,不要硬编码。
Q5:有哪些边界条件与常见坑需要注意?
主要包括:Responses API 不支持视频通道;不支持 search_context_size(会返回 400);kimi-k2.7-code 强制思考,未开启 Thinking 会返回 400;旧 ANTHROPIC_API_KEY 必须删除以免冲突;协议兼容不等于能力或价格对等。相关扩展阅读可参考 Gemini 3.8 Flash 安全热点、DeepSeek 开源评测框架 与 CodeArena 代码评审。