Kimi(Moonshot)API 的 OpenAI 兼容接入 —— 以及它默认开思考

Kimi 以超长上下文著称。通过 DaoXE 就是一次 OpenAI 兼容调用 —— 但思考行为分代而异:K2.6 默认开启、K2.7-code 锁死、K3 用 reasoning_effort 调档。

更新于 2026-09-15

Kimi 的长上下文适合大文件和仓库级 prompt,通过 DaoXE 它和 GPT、Claude、DeepSeek 共用一个 key —— 无需单独注册 Moonshot。用 Kimi ID 调 /v1/chat/completions。成本分流见最便宜 API 教程。

通过 DaoXE 调用 Kimi (Moonshot)#

用 /v1/chat/completions,模型填准确的 Kimi ID。推理控制在当前家族内分代而异:K2.6 保留 thinking 字段(默认开,要普通输出就关掉),K2.7-code 锁死思考不可关,K3 则整体换成顶层 reasoning_effort(low/high/max,默认 max)。

bash
# Kimi's reasoning contract differs by generation: K2.6 keeps the thinking
# field (ON by default - send disabled for plain output), K2.7-code locks it
# on, and K3 drops the field for a top-level reasoning_effort instead.
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/chat/completions \
  -H "Authorization: Bearer ${DAOXE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_EXACT_MODEL_ID",
    "max_tokens": 64,
    "messages": [{"role": "user", "content": "Reply with OK."}],
    "thinking": {"type": "disabled"}
  }'

Kimi 如何暴露思考内容#

随着家族演进,Kimi 的推理契约裂成了三支。K2.6 保留 K2.x 的 thinking 对象(默认 enabled,可发 disabled 关闭)—— 这是 K2.x 专属字段,OpenAI SDK 没有原生槽位,走 extra-body。K2.7-code 锁死:thinking 恒开,传 {"type": "disabled"} 会报错,只接受 {"type": "enabled", "keep": "all"}。K3 则干脆弃用该字段,改为顶层 reasoning_effort(low/high/max,默认 max),且永远以 Preserved Thinking 推理 —— 轨迹仍落在 reasoning_content,多轮工具调用要原样回传。两个成本陷阱:对话中途切换 effort 会使 prefix-cache 失效;各档里只有 K3 的文档承诺 tool_choice: required。这些按代际而异的字段能否穿过某条中转路径,正是要验证的事 —— 绑定客户端前先发一次测试调用。

Kimi (Moonshot) 特有的注意点#

  • 三代行为,一个家族。 K2.6:thinking 默认开 —— 要普通输出就发 {"type": "disabled"}。K2.7-code:思考恒开,传 disabled 会报错。K3 根本没有 thinking 字段 —— 换成顶层 reasoning_effort。钉住哪个 ID 先查清楚再发版客户端。
  • 推理档采样被锁。 K2.6 固定 temperature 1.0(思考)/0.6(非思考),K2.7-code 与 K3 固定 1.0;top_p 0.95、n 1 与惩罚系数同样固定 —— 厂商文档写明其他值会报错。这些 ID 上别显式传 temperature。
  • K3 调 effort 有缓存代价。 对话中途切换 reasoning_effort 会使 prefix-cache 失效 —— 对话开始前定好档位并保持。K3 还带着 1M token 上下文,K2.x 各档为 256K。
  • reasoning_content 回传。 开思考时,多轮工具调用要把上一条 assistant 消息原样传回 —— 包括 reasoning_content —— 否则请求失败。准确 ID 永远从 GET /v1/models 读。

这要花多少钱#

一个余额,一个充值汇率

充值统一按 1 元人民币 = $1 额度,所有支付方式一致;模型再各按自己的美元标价计费 —— 实时单价见定价页。支付宝、微信、USDT、银行卡(Visa · Mastercard)、Apple Pay 与 Google Pay 都是同一个汇率 —— 目录里所有模型共用一个余额,不用选套餐,也没有月度低消。单价与账户绑定且会变动,所以请用一小笔充值去确认,而不是相信教程里的某个数字。

验证你拿到的是真模型#

先证明端点可用,再怀疑客户端 —— 这一步失败,改任何设置都没用:

bash
export DAOXE_API_KEY="your_api_key"

# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/models \
  -H "Authorization: Bearer ${DAOXE_API_KEY}"

先确认连通,再在 temperature 0 下把长上下文 prompt 与官方 Moonshot API 对比,检查召回:

别信我们 —— 自己验证

把 开源 benchmark 对准 DaoXE 和官方 API,在 temperature 0 下对比。再学会如何鉴别掉包,让便宜端点无法悄悄把你换成更小的模型。

常见问题#

我没要求,为什么 Kimi 在「思考」?

当前的 K2.6 档把 thinking 字段默认设为开启 —— 要普通输出就发 {"type": "disabled"}。K2.7-code 的思考是锁死的,K3 则永远推理、用 reasoning_effort 调档。

Kimi 也有 reasoning_content 回传吗?

开思考时有 —— 多轮工具调用要把 assistant 消息原样传回,包括 reasoning_content。

能调 Kimi 的 temperature 吗?

推理档不能:K2.6 固定 temperature 1.0(思考)/0.6(非思考),K2.7-code 与 K3 固定 1.0,厂商文档写明其他值会报错。top_p 与惩罚系数同样固定。

这里 Kimi 多少钱?

按模型、按账号 —— 见实时定价。充值统一按 1 元 = $1 额度,所有支付方式一致。

试用 DaoXE —— 并亲自 benchmark 它

一个 key 调 GPT、Claude、Gemini、DeepSeek 等。用开源 benchmark 对准我们做对比 —— 别只听我们说。