接入 Kimi:Moonshot 与 Kimi Coding 两个插件
OpenClaw 接入 Kimi 是国产模型专页的第四站。Kimi 是月之暗面(Moonshot AI)的模型家族,而它在 OpenClaw 里有点特别:官方把它拆成了两个独立插件——Moonshot API 与 Kimi Coding,插件分开装、Key 不通用、模型引用前缀都不同。DeepSeek、Qwen、GLM 的「装插件 → 配凭据 → 选模型」三步在这一课全部适用,但先要做对一道路线选择题。全程约 10 分钟(平台注册另计)。
先给你一张总表,本课所有配置都从它出发(属性与值为官方文档原样摘录):
| 路线 A:Moonshot API | 路线 B:Kimi Coding | |
|---|---|---|
| 适合谁 | 按量付费(pay-as-you-go)API 用户 | Kimi Code 会员(订阅制,包月写代码) |
| 官方插件 | @openclaw/moonshot-provider | @openclaw/kimi-provider |
| Provider id | moonshot | kimi |
| 认证环境变量 | MOONSHOT_API_KEY | KIMI_API_KEY |
| API 端点 | https://api.moonshot.ai/v1(国际)/ https://api.moonshot.cn/v1(中国区) | https://api.kimi.com/coding/(Anthropic 兼容,插件走 Anthropic Messages) |
| 模型引用前缀 | moonshot/... | kimi/... |
| 全新 onboarding 默认 | moonshot/kimi-k3 | kimi/kimi-for-coding |
| Key 管理入口 | https://platform.moonshot.ai | https://www.kimi.com/code/console |
一件必须先记住的事(官方 Warning 的原意):Moonshot 和 Kimi Coding 是分开的 provider、分开的外部插件——Key 不通用,端点不同,模型引用也不同(moonshot/... vs kimi/...)。把 Moonshot 的 Key 填进 Kimi Coding 的 onboarding(或反过来),只会得到认证失败。
怎么选,三句话:
| 你的情况 | 选它 |
|---|---|
| 按量付费,想要 K3 / K2.7 全家桶,还要视频输入 | Moonshot API(目录五个模型都收 text + image + video) |
| 订阅了 Kimi Code 会员,主要拿它写代码 | Kimi Coding(套餐额度内用 kimi/kimi-for-coding、kimi/k3 系) |
| 两条路线都想用 | 两个插件都装、各配各的 Key——前缀不同,互不覆盖 |
💡 从「Kimi」「月之暗面」搜进来的朋友
Kimi 是月之暗面(Moonshot AI)的模型家族。OpenClaw 接入它要的不是 Kimi 聊天 App 的账号,而是 API Key:按量付费走 Moonshot 开放平台,会员订阅走 Kimi Code 控制台——两把 Key 不通用,本页把两条路都讲清楚。
本教程基于 OpenClaw v2026.10.9。
学完你能做什么
- 分清 Moonshot API 与 Kimi Coding 两条路线:两个独立插件、两把 Key、两套模型前缀,不再混用
- 装好对应插件,把
MOONSHOT_API_KEY或KIMI_API_KEY配进 OpenClaw(onboarding 引导或手动配置两条路) - 看懂两套模型目录:
moonshot/kimi-k3一族与kimi/kimi-for-coding、kimi/k3一族各自的位置、上下文和默认值 - 遇到 Kimi Coding 的周配额
HTTP 403不慌:知道该等窗口重置,而不是换 Key - 用上 Kimi 专属能力:
/think档位映射、Kimi 网页搜索(web_searchprovider)
🎒 开始前的准备
- 完成了 连接模型总览:provider 体系与模型切换:「装插件 → 配凭据 → 选模型」三步和
provider/model引用规则心里有数 - OpenClaw 已安装、Gateway 在运行:
openclaw gateway status有输出(插件对运行中的 Gateway 自动生效;没在跑则下次启动生效) - 知道自己手里的是(或将是)Moonshot 开放平台的按量 Key,还是 Kimi Code 会员 Key——这决定走哪条路线
- 走服务器 / 守护进程部署的话,知道
~/.openclaw/.env在哪——Key 最终要住那里
跟我做
第 1 步:确认路线并领取对应的 API Key
为什么:Kimi 在 OpenClaw 里是两条独立路线,Key 从不同的控制台领、互不通用——先定路线,再拿 Key。
路线 A:Moonshot API(按量付费)
- 浏览器打开 Moonshot Open Platform
https://platform.moonshot.ai,注册 / 登录 - 在 API Key 管理页创建一把 Key,复制后放到安全的地方
- 国内用户注意:中国区走
moonshot-api-key-cn(端点https://api.moonshot.cn/v1),Key 在 Moonshot 国内平台管理——官方文档只给了国际站控制台直链,国内站入口以 Moonshot 官网为准
路线 B:Kimi Coding(Kimi Code 会员)
- 浏览器打开 Kimi Code 控制台
https://www.kimi.com/code/console,登录 - 创建一把 membership key,复制后放到安全的地方
- 还没订阅?会员价格看
https://www.kimi.com/membership/pricing(以官网为准)
你应该看到:一把可复制的 API Key,并且你清楚它属于哪条路线——第 2 步的插件和命令要跟它配套。
第 2 步:OpenClaw 接入 Kimi——装插件、跑 onboarding
为什么:Moonshot 和 Kimi Coding 都是外部官方插件(不随核心内置),比内置插件多一步「安装」;两条路线的插件包、auth-choice 各是一套,装混了 Key 就对不上。
路线 A:Moonshot API
# 1. 装插件
openclaw plugins install @openclaw/moonshot-provider
# 2. 跑 onboarding(二选一)
openclaw onboard --auth-choice moonshot-api-key # 国际站
openclaw onboard --auth-choice moonshot-api-key-cn # 中国区你应该看到:Key 验证通过并保存;全新 onboarding 的默认模型落在 moonshot/kimi-k3。
顺手验证目录:
openclaw models list --provider moonshot你应该看到:kimi-k3、kimi-k3.1-pro、kimi-k2.7-code 一族模型在列。
路线 B:Kimi Coding
# 1. 装插件
openclaw plugins install @openclaw/kimi-provider
# 2. 跑 onboarding
openclaw onboard --auth-choice kimi-code-api-key你应该看到:Key 验证通过并保存;默认模型是 kimi/kimi-for-coding。
顺手验证目录:
openclaw models list --provider kimi你应该看到:kimi-for-coding、k3、k3-256k、k3.1-pro 一族模型在列。
两条路线通用的三个定心丸(官方文档明确写了):
- 插件安装对运行中的 Gateway 自动生效;Gateway 没在跑则下次启动生效(kimi-provider 的 README 在安装示例里另加了
openclaw gateway restart,两条路都行) - onboarding 保留你已有的模型条目——重跑不会清掉其他 provider 的配置
- 加新 provider 凭据不会改你已有的默认模型——要换默认,用第 3 步的
openclaw models set
手动配置(不想跑 onboarding 的话)
官方插件本来不需要写 models.providers 条目——装插件、设 auth、选模型即可;只有想显式钉死端点 / 默认模型时才写。
路线 A(Moonshot API,官方示例原样):
{
env: { vars: { MOONSHOT_API_KEY: "sk-..." } },
agents: {
defaults: {
model: { primary: "moonshot/kimi-k3" },
models: {
"moonshot/kimi-k3": { alias: "Kimi K3" },
"moonshot/kimi-k2.7-code": { alias: "Kimi K2.7 Code" },
"moonshot/kimi-k2.7-code-highspeed": { alias: "Kimi K2.7 Code HighSpeed" },
},
},
},
}路线 B(Kimi Coding,官方示例原样):
{
env: { vars: { KIMI_API_KEY: "sk-..." } },
agents: {
defaults: {
model: { primary: "kimi/kimi-for-coding" },
models: {
"kimi/kimi-for-coding": { alias: "Kimi" },
},
},
},
}Key 放哪:交互 shell 里 export MOONSHOT_API_KEY="<你的 API Key>"(路线 B 用 KIMI_API_KEY),或写进 ~/.openclaw/.env(守护进程部署必须走这里,见下方警告)。插件清单还接受 KIMICODE_API_KEY 作为 Kimi Coding 的备用变量名。
⚠️ Gateway 跑成守护进程?Key 别放交互 shell
Gateway 作为 launchd / systemd 服务运行时,看不到你终端里 export 的环境变量。把 MOONSHOT_API_KEY / KIMI_API_KEY 写进 ~/.openclaw/.env,或经配置里的 env.shellEnv 提供给那个进程。
openclaw models status的凭据概览里,能看到你那条路线的环境变量来源
第 3 步:选择 Kimi 模型并验证
为什么:两条路线的默认模型都够用(moonshot/kimi-k3 / kimi/kimi-for-coding),但两套目录分工不同——Moonshot 侧是「K3 全家桶 + K2.7 Code」,Kimi Coding 侧是「会员额度模型 + K3 系」,看一眼再决定。
先看 Moonshot 目录(官方文档原样):
| 模型引用 | 推理 | 输入 | 上下文 | 最大输出 |
|---|---|---|---|---|
moonshot/kimi-k3 | low / high / max | 文本、图像、视频 | 1,048,576 | 1,048,576 |
moonshot/kimi-k3.1-pro | low / high / max | 文本、图像、视频 | 1,048,576 | 1,048,576 |
moonshot/kimi-k3.1-pro-highspeed | low / high / max | 文本、图像、视频 | 1,048,576 | 1,048,576 |
moonshot/kimi-k2.7-code | 始终开启 | 文本、图像、视频 | 262,144 | 262,144 |
moonshot/kimi-k2.7-code-highspeed | 始终开启 | 文本、图像、视频 | 262,144 | 262,144 |
再看 Kimi Coding 目录(官方文档表格 + 插件清单):
| 模型引用 | 推理 | 输入 | 上下文 | 最大输出 | 备注 |
|---|---|---|---|---|---|
kimi/k3.1-pro | 始终开启;low / high / max | 文本、图像 | 1,048,576 | 131,072 | 不能关思考 |
kimi/k3.1-pro-highspeed | 始终开启;low / high / max | 文本、图像 | 1,048,576 | 131,072 | K3.1 Pro 的高速变体 |
kimi/k3 | adaptive;low / high / max | 文本、图像 | 1,048,576 | 131,072 | 1M 上下文按会员档位开放(tier-gated) |
kimi/k3-256k | adaptive;low / high / max | 文本、图像 | 262,144 | 131,072 | 同权重、低配额消耗变体 |
kimi/kimi-for-coding | 仅 /think on(low) | 文本、图像 | 262,144 | 32,768 | 默认模型,吃套餐额度 |
kimi/kimi-for-coding-highspeed | 仅 /think on(low) | 文本、图像 | 262,144 | 32,768 | 高速变体 |
一个目录行为先知道:两条路线的 setup 都只保存连接设置与别名,不把目录行拷进你的配置;显式 models.mode: "replace" 时才写目录种子,你自定义的模型行不受影响。
怎么选,四句话:
| 你的需求 | 选它 | 依据 |
|---|---|---|
| Moonshot 按量、通用任务要长上下文 | moonshot/kimi-k3 | onboarding 默认,1M 上下文 |
| Moonshot 按量、写代码要性价比 | moonshot/kimi-k2.7-code | $0.95 / $4 per M,低于 K3 的 $3 / $15 |
| Kimi Code 会员、日常写代码 | kimi/kimi-for-coding | 默认模型,套餐额度内不按 token 计费 |
| Kimi Code 会员、要 K3 推理与长上下文 | kimi/k3(配额紧就 kimi/k3-256k) | K3 权重 + 会员配额 |
换默认模型:
openclaw models set moonshot/kimi-k3 # 路线 A
openclaw models set kimi/kimi-for-coding # 路线 B聊天里临时切也行:/model moonshot/kimi-k3.1-pro 只影响当前会话,命令族详见 聊天命令速成。
最后验证。Moonshot 路线用官方给的隔离冒烟测试(不碰你日常会话):
OPENCLAW_CONFIG_PATH=/tmp/openclaw-kimi/openclaw.json \
OPENCLAW_STATE_DIR=/tmp/openclaw-kimi \
openclaw agent --local \
--session-id live-kimi-cost \
--message 'Reply exactly: KIMI_LIVE_OK' \
--thinking max \
--json你应该看到:JSON 响应里 provider: "moonshot"、model: "kimi-k3";Moonshot 返回 usage 元数据时,transcript 里还会存归一化的 token 用量与估算成本(usage.cost)。
Kimi Coding 路线发一条普通测试消息即可:
openclaw agent --agent main --model kimi/kimi-for-coding --message "用一句话介绍你自己"(openclaw agent 要求至少给一个会话选择器,--agent main 指向默认 agent——完成过 onboarding 的安装里默认就有 main;或者 openclaw dashboard 打开 Control UI,在聊天框直接发。)
你应该看到:模型正常回复,没有凭据缺失或模型不存在的报错。到这里,OpenClaw 接入 Kimi 就通了。
价格一句话,分路线看:
- Moonshot 路线按量计费,内置目录估价:K3 为 $3 输入 / $15 输出 / $0.30 缓存读 / $3 缓存写(每百万 token);K2.7 Code 是 $0.95 / $4 / $0.19 / 0;highspeed 变体翻倍
- Kimi Coding 路线吃会员套餐额度(
kimi-for-coding目录 cost 为 0);K3 系的目录估价 $3 / $15 / $0.30 / 0 只用于成本估算,且会员实际生效的上下文上限可能低于目录标称
决策前以官方价格页为准:Kimi K3 定价、Kimi K2.7 Code 定价、Kimi 会员价格。
- 测试消息收到了回复,provider 与模型对得上
检查点 ✅
- 装的插件与 Key 配套:Moonshot Key →
@openclaw/moonshot-provider;Kimi Code Key →@openclaw/kimi-provider openclaw models status的凭据概览里,能看到对应环境变量(MOONSHOT_API_KEY/KIMI_API_KEY)的来源openclaw models list --provider moonshot(或--provider kimi)列出对应目录- 默认模型与路线配套:
moonshot/kimi-k3或kimi/kimi-for-coding - 测试消息收到了回复,没有把
moonshot/引用配到 kimi 插件(或反过来)
踩坑提醒
❌ 两把 Key 混着用
现象:onboarding 时 Key 被拒,或运行时报认证错误。
原因:官方 Warning 说得很清楚——Moonshot 和 Kimi Coding 是分开的 provider,Key 不通用、端点不同、模型引用不同。Moonshot 开放平台的按量 Key 进不了 Kimi Coding 端点,Kimi Code 会员 Key 也开不动 moonshot/ 目录。
正确做法:对号入座——
| 你的 Key | 装这个插件 | 用这个 auth-choice |
|---|---|---|
| Moonshot 开放平台(按量) | @openclaw/moonshot-provider | moonshot-api-key / moonshot-api-key-cn |
| Kimi Code 控制台(会员) | @openclaw/kimi-provider | kimi-code-api-key |
❌ Kimi Coding 报 HTTP 403,以为是 Key 坏了
原因:Kimi 会在周配额耗尽时返回 HTTP 403。OpenClaw 把明确的 weekly / seven-day / quota-reset 类错误当作限速处理——这是额度问题,不是认证问题。官方 README 还特别提醒:换一把有效的 Key 也不会恢复配额。
正确做法:等配额窗口重置,或临时切到别的已配置 provider。Key 无效、访问受限类的错误仍按认证错误处理——只有报的是配额时才走「等窗口」这条路。
❌ /think off 关不掉 K3 系的思考
原因(分路线看):
- Moonshot 路线:K3、K3.1 Pro、K3.1 Pro Highspeed 始终以最大力度推理——OpenClaw 只暴露
/think max、固定发reasoning_effort: "max",旧的低档 / off 设置直接被忽略;K2.7 Code 也始终原生思考(Moonshot 要求客户端省略thinking字段,OpenClaw 只暴露 on) - Kimi Coding 路线:
kimi/k3.1-pro与kimi/k3.1-pro-highspeed不能关思考(Kimi Code 会拒绝 disabled thinking),不提供 off、默认 high;kimi/k3与kimi/k3-256k才支持/think off(发thinking.type: "disabled")
正确做法:需要能关思考的模型,Kimi Coding 路线选 kimi/k3 系。Moonshot 路线的内置目录五个模型都关不掉(K3 系固定 max,K2.7 系固定 on)——文档给的可关示例是目录外的 moonshot/kimi-k2.6(二档 thinking,需手动配 params,见下方专属能力)。
❌ kimi/kimi-for-coding 关思考后,回复里混进「原始推理文本」
原因:这是 K2 后端的行为——thinking 被禁用时,原始推理可能直接漏进可见回复。所以 OpenClaw 对 kimi/kimi-for-coding(含 highspeed 变体)只暴露 /think on(low 档)且默认开启,思考预算 1024 token;存过 off 偏好的旧配置也会被解析成 on,不会让这轮对话失败。
正确做法:别跟它较劲,保持默认的 on。显式 params.thinking 覆盖仍会被尊重(包括关掉),但关掉就可能看到漏出来的推理文本。
❌ 还在用旧引用 kimi/kimi-code、kimi/k2p5、kimi/k3[1m]
原因:这三个是历史遗留引用,插件会自动归一化:kimi/kimi-code、kimi/k2p5 → kimi/kimi-for-coding;kimi/k3[1m] → kimi/k3(k3[1m] 已在上游退役)。
正确做法:配置里直接写新引用,别依赖归一化——kimi/kimi-for-coding 或 kimi/k3。
❌ Gateway 装成守护进程后,export 的 Key「不生效」
原因:launchd / systemd 服务看不到交互 shell 的环境变量——各 provider 文档反复强调这一点。
正确做法:MOONSHOT_API_KEY / KIMI_API_KEY 写进 ~/.openclaw/.env,或经配置里的 env.shellEnv 提供;换 Key 后重启 Gateway 服务。
🔧 Kimi 专属能力(可选)
插件装好之后,三件 Kimi 专属的能力跟着来。
Kimi 网页搜索:让 web_search 走 Kimi
Moonshot 插件会把 Kimi 注册成一个 web_search provider(走 POST /tools/search,返回结构化结果,不需要聊天模型)。想让 Claw 联网搜索时用 Kimi:
openclaw configure --section web在 web-search 一节选 Kimi,配置会存到 plugins.entries.moonshot.config.webSearch.*(官方示例,原样):
{
plugins: {
entries: {
moonshot: {
config: {
webSearch: {
apiKey: "sk-...", // 或用 KIMI_API_KEY / MOONSHOT_API_KEY
baseUrl: "https://api.moonshot.ai/v1",
model: "kimi-k2.6",
},
},
},
},
},
tools: {
web: {
search: {
provider: "kimi",
},
},
},
}三个细节:
- 认证用
KIMI_API_KEY或MOONSHOT_API_KEY都行;区域默认国际站(https://api.moonshot.ai/v1),可配中国区 - 示例里的
model: "kimi-k2.6"已弃用并被忽略——搜索不依赖聊天模型,留着无害,删了更清爽 - 这条能力由 Moonshot 插件注册——纯 Kimi Coding 用户想用网页搜索,
@openclaw/moonshot-provider也得装着
web_search 与其他网页工具的用法,见 浏览器控制:让 Claw 替你上网操作。
/think 档位映射速查
| 路线 | 模型 | /think 行为 |
|---|---|---|
| Moonshot | K3 / K3.1 Pro / Highspeed | 只暴露 /think max,固定 reasoning_effort: "max" |
| Moonshot | K2.7 Code(含 Highspeed) | 只暴露 on;thinking 字段必须省略,采样参数(temperature、top_p 等)被 K2.7 固定,配置的覆盖会被忽略 |
| Kimi Coding | k3 / k3-256k | off 发 thinking.type: "disabled";minimal / low → low;medium / high / adaptive → high;xhigh / max → max(自适应思考,默认 high) |
| Kimi Coding | k3.1-pro / k3.1-pro-highspeed | 不能 off,默认 high;其余档位映射同上 |
| Kimi Coding | kimi-for-coding(含 highspeed) | 只暴露 /think on(low)且默认开;关掉会漏推理文本(见踩坑提醒) |
缓存、成本估算与兼容细节
- 前缀缓存:Moonshot 自动缓存匹配的 prompt 前缀;K3 默认五分钟缓存,cache write 与 cache read 分开计量(官方背景:Kimi context caching)
- 成本估算:目录价喂给
/status、/usage cost与会话记账;Moonshot 原生端点(.ai/.cn)支持流式 usage,按端点主机识别——自定义 provider id 指向同一主机时同样生效 - 工具 schema 兼容:Moonshot 系 OpenAI 兼容路由会为能推断出单一类型的
anyOf/oneOf分支补上缺失的type,防止常见 MCP schema 被拒 - tool_call id 清洗:Kimi 原生工具调用 id 形如
functions.<name>:<index>,OpenClaw 保留每个原生 id 的首次出现,后续重复重写为 OpenAI 风格call_*,回放保持唯一
进阶:给目录外的 Kimi 模型配二档 thinking
文档示例(原样)——moonshot/kimi-k2.6 这类支持 enabled / disabled 二档思考的模型,按模型配 params:
{
agents: {
defaults: {
models: {
"moonshot/kimi-k2.6": {
params: {
thinking: { type: "disabled" },
},
},
},
},
},
}/think off → thinking.type=disabled,其余任何档位 → thinking.type=enabled。K2.6 还接受可选的 thinking.keep: "all"(跨轮保留完整 reasoning_content)。注意:开启 K2 思考时 tool_choice 只能 auto / none——钉死工具会把思考强制压回 disabled,required 会被归一成 auto。
下一步
OpenClaw 接入 Kimi 到此通关。国产模型专页继续走:
- 下一课 接入 MiniMax:M3 系列与 Coding Plan:MiniMax 的 OAuth 双 provider 与官方 Coding Plan
- 其他模型专页(豆包、混元 / 千帆、中转与本地模型)从 连接模型总览 的课程表进
- 模型配好了?日常使用从 日常使用:和你的 Claw 高效相处 开始——Control UI、聊天命令、记忆系统都在那一章