乐于分享
好东西不私藏

OpenClaw 配置 Kimi Code 完全指南

OpenClaw 配置 Kimi Code 完全指南

OpenClaw 配置 Kimi Code 完全指南


往期文章:
Windows LAPS 完全指南 【本地管理员密码解决方案  】
Microsoft Activation Scripts(MAS)技术解析手册
Python-Conda安装配置(二)
Jupyter Notebook入门指南:让Python学习与数据分析高效又有趣!
Horizon 通信协议与防火墙规则完整指南
AnythingLLM 完全使用手册
uv 完全教程:从入门到精通【装包、虚拟环境、Python 版本、项目脚手架—uv 统一管理】
Microsoft Activation Scripts(MAS)技术解析手册


1. 为什么需要这篇教程?

1.1 直接改 baseUrl 行不通

如果你之前配过其他模型,可能会想:”把 baseUrl 一换、加个 key,完事。”

Kimi Code 不行。 Kimi Code 走的不是 OpenAI 协议,而是 Anthropic Messages API 协议。两者在四个关键层面不兼容:

差异点
OpenAI 协议
Anthropic 协议(Kimi Code 使用)
API 路径 /v1/chat/completions /v1/messages

(Kimi 封装在 /coding/v1 下)
认证头 Authorization: Bearer Authorization: Bearer

 + anthropic-version: 2023-06-01
system 消息
可放在任意位置,或提取为顶层字段
必须是 messages[0]

role="system"
流式响应 delta.content delta.text

这就是为什么你不能简单复制其他 OpenAI 兼容模型的配置——协议层不兼容

本文提供一套经过端到端验证的配置 ,避免你踩坑。


2. Kimi Code 是什么

Kimi Code 是 Kimi 会员权益中专为开发者提供的智能编程服务,基于 Kimi 最新旗舰模型,通过 CLI、VS Code 扩展插件等产品形态,为开发者提供代码阅读、文件编辑、命令执行等 AI 辅助能力。同时,订阅用户可获取 API Key,将 Kimi Code 的模型能力接入到第三方开发工具与平台。

本文要做的就是:把 Kimi Code 接入 OpenClaw,让你在 OpenClaw 的会话中直接调用 Kimi Code 的编程能力。


3. 获取 Kimi API Key

  1. 1. 登录 Kimi Code 控制台
  2. 2. 进入 API Keys 页面(通常在左侧导航栏或设置中)
  3. 3. 创建新 Key(类型选择 Kimi Code
  4. 4. 立即复制——页面关闭后无法再次查看完整 Key

⚠️ 安全提醒:API Key 等同于密码。泄露后他人可消耗你的额度。下文会演示如何安全存放。


4. 理解 OpenClaw 的模型配置结构

在动手改 JSON 之前,先理解 OpenClaw 的三层模型架构(这是通用知识,适用于所有模型):

┌─────────────────────────────────────────┐│  Layer 1: Provider(提供商)              ││  - baseUrl(API 端点)                    ││  - api(协议类型)                        ││  - models(该提供商下的模型列表)          │└─────────────────────────────────────────┘                    ↓┌─────────────────────────────────────────┐│  Layer 2: Model(模型)                   ││  - id(模型标识符)                       ││  - name(显示名称)                       ││  - contextWindow / maxTokens(容量限制)  │└─────────────────────────────────────────┘                    ↓┌─────────────────────────────────────────┐│  Layer 3: Alias(别名)                   ││  - 让用户可以用短名调用模型               ││  - 例:kimi/kimicode → "Kimi Code"      │└─────────────────────────────────────────┘

Kimi 的凭证存放方式:Kimi 使用环境变量 KIMI_API_KEY,需要在 openclaw.json 的 env 区块中定义。


5. 手动配置步骤(零命令,纯 JSON 编辑)

5.1 备份原配置

操作:复制 ~/.openclaw/openclaw.json 到同目录下的 openclaw.json.bak

为什么备份:JSON 语法错误(比如漏了逗号、多了括号)会导致 OpenClaw 无法启动。有备份可以随时回滚。

5.2 打开配置文件

用任意文本编辑器打开:

  • • Windows%USERPROFILE%\.openclaw\openclaw.json
  • • macOS/Linux~/.openclaw/openclaw.json

5.3 配置 Provider(第一层)

在 models.providers 下找到或新建 kimi 节点:

"kimi": {  "baseUrl": "https://api.kimi.com/coding/v1",  "api": "anthropic-messages",  "models": []}

字段说明

  • • baseUrlhttps://api.kimi.com/coding/v1必须带 /v1,否则 404)
  • • apianthropic-messages(Kimi Code 使用 Anthropic 协议,不是 openai-completions

5.4 配置 Model(第二层)

在 kimi.models 数组中添加模型定义。以下是两个常用模型:

"models": [  {    "id": "k2p5",    "name": "Kimi for Coding",    "reasoning":true,    "input": ["text", "image"],    "contextWindow": 262144,    "maxTokens": 32768,    "compat": {      "requiresOpenAiAnthropicToolPayload":true    }  },  {    "id": "kimicode",    "name": "Kimi Code",    "reasoning":true,    "input": ["text", "image"],    "contextWindow": 262144,    "maxTokens": 32768,    "compat": {      "requiresOpenAiAnthropicToolPayload":true    }  }]

字段说明

字段
含义
id k2p5

 / kimicode
模型标识符。k2p5 是 Kimi 官方 id;kimicode 是自定义别名 id
name
显示名称
在日志和列表中看到的名字
reasoning true
支持推理模式(思维链)
input ["text", "image"]
支持的输入类型
contextWindow 262144
上下文窗口 256K tokens
maxTokens 32768
单次输出上限 32K tokens
compat.requiresOpenAiAnthropicToolPayload true
工具调用兼容模式

关于 id 的选择:k2p5 是 Kimi 官方模型 id(通过 openclaw models list 可见)。kimicode 是我自定义的 id,用于区分不同用途(例如一个走旧 key,一个走新 key)。你可以只保留 k2p5,也可以自定义一个更易记的 id。

5.5 配置环境变量(凭证)

在 openclaw.json 的根级别找到 env 区块(如果没有则新建),添加:

"env": {  "KIMI_API_KEY": "sk-kimi-..."}

具体位置env 与 modelsagentsauth 等是同级字段,都位于 JSON 的根级别。将 sk-kimi-... 替换为你的实际 Key。

⚠️ 安全提醒openclaw.json 通常不会被提交到 Git(它在 ~/.openclaw/ 目录下,不在项目仓库里),所以直接把 Key 写进 env.KIMI_API_KEY 是安全的。如果你确实担心泄露,可以将 Key 放在独立文件中,通过启动脚本注入环境变量——但这需要额外配置,不在本文讨论范围内。

5.6 配置 Agent 别名(第三层)

在 agents.defaults.models 下添加:

"agents": {  "defaults": {    "models": {      "kimi/k2p5": { "alias": "Kimi" },      "kimi/kimicode": { "alias": "Kimi Code" }    }  }}

这样你可以用 kimi/kimicode 或 Kimi Code 来引用模型。

5.7 配置 Auth Profile

在 auth.profiles 下添加:

"auth": {  "profiles": {    "kimi:default": {      "provider": "kimi",      "mode": "api_key"    }  }}

这告诉 OpenClaw:Kimi provider 使用 API Key 模式认证。

5.8 配置插件白名单(消除启动警告)

在 plugins 下添加:

"plugins": {  "allow": ["kimi"],  "entries": {    "kimi": { "enabled":true }  }}

如果不加 allow,每次启动都会看到警告:plugins.allow is empty; discovered non-bundled plugins may auto-load


6. 验证配置

6.1 检查 JSON 语法

openclaw config validate

期望输出:Config valid: ~\.openclaw\openclaw.json

6.2 查看模型列表

openclaw models list

期望输出(节选):

kimi/k2p5                                  text+image 262k        no    yes   configured,alias:Kimikimi/kimicode                              text+image 262k        no    yes   configured,alias:Kimi Code

看到 configured,alias:Kimi Code 说明注册成功。

注意:你可能还会看到 kimi-coding/kimicode(没有 configured 标记)。这是 Kimi 插件自动注册的别名,与 kimi/kimicode 功能相同。优先使用带 configured 标记的 kimi/kimicode

6.3 执行 one-shot 推理测试

openclaw agent --agent main --model kimi/kimicode --message "Reply with exactly one word: pong" --thinking off --timeout 30

期望输出

pongProcess exited with code 0.

如果返回 pong,说明端到端通了:OpenClaw → Gateway → Kimi API → 返回内容。

6.4 执行代码生成测试

openclaw agent --agent main --model kimi/kimicode --message "Write a Python function that returns the sum of two integers. Output ONLY the code." --thinking off --timeout 45

期望:返回有效的 Python 函数代码,例如:

def add(a: int, b: int) -> int:    return a + b

7. 日常使用

7.1 单次任务(指定模型)

openclaw agent --agent main --model kimi/kimicode --message "你的任务描述" --thinking medium

7.2 TUI 交互模式

openclaw chat

openclaw chat 是终端 UI 命令,不是 one-shot 推理命令。它连接到已有 session,不带 --model 参数——模型由当前 session 的默认配置决定。

如需在 TUI 中使用 Kimi Code,先通过 openclaw agent --model kimi/kimicode 运行一次指定模型的任务,或修改 session 的默认模型配置。


8. 常见问题与排错

Q1: openclaw models list 看不到 kimi/kimicode

排查步骤

  1. 1. 检查 JSON 语法:openclaw config validate
  2. 2. 确认 models.providers.kimi.models 数组中包含 id: "kimicode"
  3. 3. 确认 agents.defaults.models 中包含 "kimi/kimicode"
  4. 4. 重启 Gateway(托盘图标右键 → Restart,或关掉重新运行 gateway.cmd

Q2: 测试返回 401 Unauthorized

原因:API Key 无效或过期。

解决

  1. 1. 检查 env.KIMI_API_KEY 是否与实际 Key 一致
  2. 2. 在 Kimi 开放平台 确认 Key 状态
  3. 3. 重新写入 Key 并重启 Gateway

Q3: 测试返回 400 Bad Request

原因:协议字段不匹配。

排查

  1. 1. 确认 api 字段为 anthropic-messages(不是 openai-completions
  2. 2. 确认 baseUrl 为 https://api.kimi.com/coding/v1
  3. 3. 检查模型 id 是否有效

Q4: kimi-coding/kimicode 和 kimi/kimicode 有什么区别?

说明kimi-coding/* 是 Kimi 插件自动注册的别名,与手动配置的 kimi/* 指向同一套 API。两者功能相同,建议使用 kimi/kimicode(带有 configured 标记,表示显式配置)。

Q5: 每次启动都看到 plugins.allow is empty 警告

解决:已在本文档 5.8 节配置 plugins.allow,添加后重启 Gateway 即可消除。


9. 附录 A:完整配置示例

{  "agents": {    "defaults": {      "models": {        "kimi/k2p5": { "alias": "Kimi" },        "kimi/kimicode": { "alias": "Kimi Code" }      }    }  },  "models": {    "providers": {      "kimi": {        "baseUrl": "https://api.kimi.com/coding/v1",        "api": "anthropic-messages",        "models": [          {            "id": "k2p5",            "name": "Kimi for Coding",            "reasoning":true,            "input": ["text", "image"],            "contextWindow": 262144,            "maxTokens": 32768,            "compat": { "requiresOpenAiAnthropicToolPayload":true }          },          {            "id": "kimicode",            "name": "Kimi Code",            "reasoning":true,            "input": ["text", "image"],            "contextWindow": 262144,            "maxTokens": 32768,            "compat": { "requiresOpenAiAnthropicToolPayload":true }          }        ]      }    }  },  "auth": {    "profiles": {      "kimi:default": {        "provider": "kimi",        "mode": "api_key"      }    }  },  "env": {    "KIMI_API_KEY": "sk-kimi-..."  },  "plugins": {    "allow": ["kimi"],    "entries": {      "kimi": { "enabled":true }    }  }}