适用版本:openclaw 2026.4.11+;Moonshot Kimi K2.6 Code Preview(2026-04-13 发布)
前置条件:已订阅会员,拿到 sk-kimi- 开头的 API Key
目标:把 openclaw 的主力模型切到 K2.6,并跑通主 agent、tasks agent 和 cron 定时任务
零、为什么走 Kimi Code,而不是 Moonshot 开放平台
结论先行:对于日常被 agent 高频调用的场景,Kimi Code 会员是目前性价比最高的 K2.6 入口,没有之一。
两条路的计费模型本质不同
Moonshot 开放平台(api.moonshot.cn)是按 token 计费的,输入和输出分开算,而且 K2.6 Code Preview 根本没在上面上架,上下文窗口也只有标准的 128K,如果要用推理能力还得选单价更高的带 reasoning 的 SKU。它适合偶尔调用、流量可预测、要开发票走企业报销的场景。
Kimi Code 会员(api.kimi.com/coding)是订阅制、月度封顶,额度内不再按 token 计费。K2.6 Code Preview 在这里首发且独占,上下文窗口直接翻倍到 262K,推理模式也不额外加价。它适合 agent 全天在线、cron 定时任务天天跑、写代码反复重试的重度场景。
为什么 openclaw 场景下订阅制更划算
openclaw 的典型工作流是"主 agent + tasks agent + 15 个 cron 任务"全天常驻,这意味着:
- 长上下文会被打满。单次对话经常拉满 100K 以上的 tokens,按 token 计费这一条就直接被放大——而 Kimi Code 的 262K 窗口对订阅用户是"免费赠送"的。
- 失败重试成本被吃掉。agent 经常失败再重试,按 token 每次都要重新计费;订阅制下这些重试属于"沉没在月费里",心理负担小很多,也不会因为"心疼 token"去关掉重试逻辑。
- 推理模式近乎免费。K2.6 作为推理模型,它的思考过程经常比最终输出还长 2-3 倍。按 token 计费时这部分是真金白银,订阅制直接抹平。
- cron 任务睡眠成本低。15 个定时任务一天跑 N 次,用 token 计价每天都是明确支出;订阅一次付完,多跑几次反而摊薄月费单价。
简单算一笔账(以官方标价为准,这里只给数量级感受):
- 按 token 打 K2 开放平台:输入输出大约各 12 元每百万 tokens,开推理后更高。主 agent 加 cron 一个月消耗 3 到 5 亿 tokens 是常态,账单轻松 3000 元以上。
- Kimi Code 会员:个人版月费量级在一两百到三百元之间,额度内不再按 token 扣,量越大单位成本越低。
换算下来,只要你每月 token 消耗超过几千万(对 openclaw 这种 agent 架构来说几乎第一周就到了),订阅制就已经赢了。
副作用也要承认
- 订阅制有并发和速率上限,高并发批处理场景不如开放平台灵活;
- Kimi Code 的 API 有 User-Agent 白名单,必须伪装成 Coding Agent,下面会讲;
- 没有严格的按调用出账单,对需要精确成本归因到单个 agent 或任务的场景不友好——如果要做内部分账,得在 openclaw 侧自己记 token 数。
对绝大多数把 openclaw 当成个人或小团队生产力入口的人来说,这三个代价都可以接受,换来的是可预测的月费、独占的 K2.6、翻倍的上下文窗口,这就是为什么本文所有的配置都围绕 Kimi Code 的 kimi-for-coding 模型展开。
一、先弄清一件事:K2.6 只在哪里能用
Moonshot 开放平台上没有 K2.6。
官方把 K2.6 Code Preview 的能力打包成了 Kimi Code 会员产品,单独开了一个走 api.kimi.com/coding 的入口,只对"合法的 Coding Agent"(Claude Code、Kimi CLI、Roo Code、Kilo Code 等)开放。这意味着三件事: 第一,你在 Moonshot 开放平台申请的普通 API Key 调不动 K2.6,调了会返回 404(模型不存在)或者 403(没权限)。
第二,你在 kimi.com/code 订阅页拿到的 sk-kimi- 开头的 Key 只能打 Kimi Code 那条路由,拿它去打开放平台会 401。
第三,想在 openclaw 这种非白名单客户端里用,必须伪装成 Coding Agent,也就是给请求设一个官方认识的 User-Agent 头。
这三点如果不先明白,配置怎么都不会通。
二、Kimi Code 两种调用方式,在 openclaw 里选哪种
官方文档里给出了两种路由:
第一种是 Anthropic 风格,入口是 api.kimi.com/coding,走的是 Anthropic Messages 协议,模型 id 由客户端侧自己推断,典型代表是 Claude Code。
第二种是 OpenAI 兼容风格,入口是 api.kimi.com/coding/v1,走的是 OpenAI Chat Completions(老版本的那一套,不是新的 responses 接口),模型 id 固定为 kimi-for-coding,典型代表是 Roo Code 和 Kilo Code。
openclaw 的 Provider 体系两种都能配,但推荐 OpenAI 兼容方式,原因有三:一是 openclaw 的 OpenAI 兼容适配器最成熟,流式、推理 effort、usage 这些兼容开关都齐;二是模型 id 是固定的 kimi-for-coding,不会被客户端侧的映射逻辑猜错;三是以后要加 DeepSeek、OpenRouter 等其它 OpenAI 兼容服务时,心智负担一致。
三、完整配置(三个文件)
0. 先从会员页面拿到 API Key
前提是你已经是 Kimi For Coding 会员(Andante 及以上套餐),不是会员拿不到这把 Key。拿 Key 的完整路径是这五步:
- 访问 Kimi Code 控制台,地址是 code.kimi.com。
- 进入左侧菜单里的 Settings,再点 API Keys。
- 点页面上的 Create new API Key 按钮,给它起个容易辨认的名字(比如 openclaw-main)。
- 复制弹出来的那串密钥,sk-kimi- 开头——注意它只会完整显示这一次,关掉弹窗就看不到全量值了,当场贴到下一步的 .env 里,或者先丢到 1Password / Bitwarden 这类密码管理器里存好。
如果不小心关掉了没抄下来,就当这把 Key 作废,回到同一页面删掉它再 Create 一把新的,旧的没法找回原文。
1. 在 .env 添加 Kimi Key
在 openclaw 根目录的 .env 文件里加一行,变量名叫 KIMI_API_KEY,值就是上一步复制过来的那把 sk-kimi- 开头的密钥。
千万不要把它和 Moonshot 开放平台的 API Key 搞混,这俩是两个账号体系,互相不通用。
2. 在 openclaw.json 注册 Provider 和 Auth Profile
先在 auth.profiles 下新增一条 Profile,名字可以叫 kimi-coding:default,里面只要两个字段:一个 provider 指向 kimi-coding,一个 mode 设成 api_key。
然后在 models.providers 下新建一条名为 kimi-coding 的 Provider,关键字段包括:
- apiKey 填环境变量名 KIMI_API_KEY(注意是变量名,不是直接写死的 Key 值)
- api 设成 openai-completions(也就是前面说的 OpenAI Chat Completions legacy 协议)
- headers 里加一条 User-Agent,值设成 claude-code/0.1.0——这一步必不可少
- models 数组里加一个模型:id 是 kimi-for-coding,name 可以写"Kimi for Coding",reasoning 打开,输入类型允许 text 和 image,contextWindow 给 262144,maxTokens 给 32768
- 模型的兼容选项(compat)里把"支持推理 effort"和"支持流式里带 usage"这两个开关都打开
字段踩坑
Kimi Code 文档里列了四个勾选项——使用 legacy OpenAI 格式、启用流式、带上 max output tokens、开启 Reasoning Effort——不要顺手把这四个名字直接当成 Provider 的顶层字段写进 openclaw.json。openclaw 的 schema 不认这些,启动时会直接抛一条 Problem,提示 models.providers.kimi-coding 下有几个无法识别的 key,就是 legacy、streaming、includeMaxOutputTokens、reasoningEffort 这四个。
在 openclaw 里这四个勾选项的正确落地方式是这样的:
- 使用 legacy OpenAI API 格式:Provider 的 api 设成 OpenAI Chat Completions 就够了,它本身就是 legacy 形态,不走 responses 接口。
- 启用流式:在模型的兼容选项里声明"支持流式里带 usage",运行时会自动开流。
- 带上 max output tokens:openclaw 默认就会把 max_tokens 发出去,不用额外配置。
- 开启 Reasoning Effort(medium):在模型的兼容选项里声明"支持推理 effort",具体用哪个档位按每个 agent 自己的运行时设置传。
User-Agent 是必需的
openclaw 默认的 User-Agent 会被 Kimi Code 服务器直接 403,返回一条 access_terminated_error,大意是"Kimi For Coding 目前只对 Kimi CLI、Claude Code、Roo Code、Kilo Code 等 Coding Agent 开放"。
所以 Provider 里那一行 User-Agent 伪装成 claude-code/0.1.0 是必须保留的,实测 claude-code 系列或者 roo-code 系列的标识都能通过。
3. 切换主力模型
在 agents.defaults.model 下把 primary 改成 kimi-coding/kimi-for-coding;fallbacks 数组里留两个备胎,比如 deepseek/deepseek-reasoner 和 openrouter/google/gemini-2.5-flash,保证 Kimi Code 偶发不可用时能自动顶上。
同步把下面几处也切过去:
- 压缩任务的模型(agents.defaults.compaction.model)
- 子 agent 的默认模型(agents.defaults.subagents.model)
- 各个具体 agent 自己的 model 字段(比如 tasks agent)
4. 把 cron/jobs.json 里的任务批量改过来
每个任务里的 model 字段都切成 Kimi Code 的新值。可以手工一条条改,也可以写个简单的 Python 递归脚本:读入 cron/jobs.json,遍历里面的嵌套字典和数组,遇到键名是 model 且值是旧的那个 moonshot/kimi-k2.6-code-preview 就替换成 kimi-coding/kimi-for-coding,最后把整个字典回写进原文件,回写时记得保持中文不转义、缩进两个空格。
四、验证是否真的跑通
4.1 命令行最小测试
用 curl 往 Kimi Code 的 chat completions 端点发一个 POST 请求,三个请求头必不可少:Authorization 带上 Bearer 前缀和你的 KIMI_API_KEY,Content-Type 写 application/json,User-Agent 写成 claude-code/0.1.0。请求体用最小化的 chat completions 结构就行——model 填 kimi-for-coding,messages 里丢一句"reply only: ok",max_tokens 给 32,stream 关掉。
User-Agent 这一行必须带上,否则 403。返回 200 并带一段 chatcmpl- 开头的响应 id 就说明成功了。
4.2 openclaw 日志里的三条关键行
重启 openclaw 后,到当天的 gateway 日志(大致在 /tmp/openclaw/ 下按日期命名)里找以下三条:
第一,一条 "auto-enabled plugins" 的启动日志,里面列出了 Kimi Code 的 Provider 和模型——说明 openclaw 识别到新 Provider 并自动启用。
第二,一条 "agent model" 的日志,值是 Kimi Code 那个模型 id——说明 agent 当前实际使用的就是它。
第三,一条 "ready" 日志,列出了启用的插件总数——说明 gateway 整体启动完成。
只要这三条都有,并且没有出现 "HTTP 404: Not found the model" 之类的 warn,就说明 K2.6 已经接入主链路。
4.3 业务层自证
在主对话框里直接问一句:"你是哪个模型?请直接给我 model id。"
K2.6 会回答类似 Kimi for Coding、kimi-k2.6-code-preview、由月之暗面开发之类的自我介绍。注意它是推理模型,内容会先出现在思考段里再输出到正文段;max_tokens 给得太小(比如 200)会只看到思考过程而看不到最终答案,先给够 2000 以上。
五、常见错误速查
HTTP 404,提示模型找不到或没权限。 根因是用 Moonshot 开放平台那条路由调了 Kimi Code 才有的模型 id。修法是主力改走 Kimi Code 的 kimi-for-coding。
HTTP 401,提示鉴权失败。 根因是拿 sk-kimi- 开头的 Key 去打了 Moonshot 开放平台。这两个 Key 不通用,要么换开放平台账号的 Key,要么整条链路改走 Kimi Code。
HTTP 403,提示 access_terminated_error。 根因是请求头里的 User-Agent 没伪装。修法是在 Provider 里给 User-Agent 设成 claude-code 系列的标识。
Unrecognized keys 报错(legacy、streaming、includeMaxOutputTokens、reasoningEffort)。根因是把 Kimi UI 复选项名直接当 openclaw 字段写进 Provider 了。修法是删掉这些顶层字段,靠 OpenAI Chat Completions 适配器和模型侧的兼容选项覆盖。
pricing bootstrap failed: TimeoutError。 启动时拉定价元数据超时,和接入无关,只影响成本显示,可以忽略。
飞书 bot info probe 30 秒超时。 启动瞬间飞书接口探测超时,启动流程本身会继续,后台会自动重试并恢复 bot open_id。
六、后续可选优化
- 成本追踪:目前 Provider 里的价格字段全写成 0,因为 Kimi Code 是订阅制,不按 token 计费。如果要统计 token 消耗趋势,用 token-tracker 那套脚本改成"订阅日使用量"口径更有意义。
- 推理 effort 档位:配置里声明"支持推理 effort"只是告诉 openclaw 这个模型能吃这个参数,实际用 low、medium、high 的哪一档,走每个 agent 自己的运行时设置。重代码任务给 high,日常任务 medium 即可。
- 多账号分流:Kimi Code 会员有并发上限,如果团队共用,可以在 .env 里维护多把 Kimi API Key(比如按字母后缀区分),改成 Profile 轮询模式;不过这需要 openclaw 的 auth profile 鉴权层支持多实例,目前单号已够用。
七、核心心智一句话
K2.6 不是一个"模型 ID"那么简单,它是一整条新路由:Kimi Code 订阅 → 专属 API 出口 → User-Agent 白名单 → 推理加工具链。openclaw 要用它,必须把 Provider、Auth、User-Agent、模型 ID、主力模型切换、定时任务 六个点同时改对,少一个都跑不通。