mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-07 07:11:06 +00:00
220 lines
5.7 KiB
Markdown
220 lines
5.7 KiB
Markdown
---
|
|
summary: "Configure Moonshot K2 vs Kimi Coding (separate providers + keys)"
|
|
read_when:
|
|
- You want Moonshot K2 (Moonshot Open Platform) vs Kimi Coding setup
|
|
- You need to understand separate endpoints, keys, and model refs
|
|
- You want copy/paste config for either provider
|
|
title: "Moonshot AI"
|
|
---
|
|
|
|
# Moonshot AI (Kimi)
|
|
|
|
Moonshot provides the Kimi API with OpenAI-compatible endpoints. Configure the
|
|
provider and set the default model to `moonshot/kimi-k2.5`, or use
|
|
Kimi Coding with `kimi/kimi-code`.
|
|
|
|
Current Kimi K2 model IDs:
|
|
|
|
[//]: # "moonshot-kimi-k2-ids:start"
|
|
|
|
- `kimi-k2.5`
|
|
- `kimi-k2-thinking`
|
|
- `kimi-k2-thinking-turbo`
|
|
- `kimi-k2-turbo`
|
|
|
|
[//]: # "moonshot-kimi-k2-ids:end"
|
|
|
|
```bash
|
|
openclaw onboard --auth-choice moonshot-api-key
|
|
# or
|
|
openclaw onboard --auth-choice moonshot-api-key-cn
|
|
```
|
|
|
|
Kimi Coding:
|
|
|
|
```bash
|
|
openclaw onboard --auth-choice kimi-code-api-key
|
|
```
|
|
|
|
Note: Moonshot and Kimi Coding are separate providers. Keys are not interchangeable, endpoints differ, and model refs differ (Moonshot uses `moonshot/...`, Kimi Coding uses `kimi/...`).
|
|
|
|
Kimi web search uses the Moonshot plugin too:
|
|
|
|
```bash
|
|
openclaw configure --section web
|
|
```
|
|
|
|
Choose **Kimi** in the web-search section to store
|
|
`plugins.entries.moonshot.config.webSearch.*`.
|
|
|
|
## Config snippet (Moonshot API)
|
|
|
|
```json5
|
|
{
|
|
env: { MOONSHOT_API_KEY: "sk-..." },
|
|
agents: {
|
|
defaults: {
|
|
model: { primary: "moonshot/kimi-k2.5" },
|
|
models: {
|
|
// moonshot-kimi-k2-aliases:start
|
|
"moonshot/kimi-k2.5": { alias: "Kimi K2.5" },
|
|
"moonshot/kimi-k2-thinking": { alias: "Kimi K2 Thinking" },
|
|
"moonshot/kimi-k2-thinking-turbo": { alias: "Kimi K2 Thinking Turbo" },
|
|
"moonshot/kimi-k2-turbo": { alias: "Kimi K2 Turbo" },
|
|
// moonshot-kimi-k2-aliases:end
|
|
},
|
|
},
|
|
},
|
|
models: {
|
|
mode: "merge",
|
|
providers: {
|
|
moonshot: {
|
|
baseUrl: "https://api.moonshot.ai/v1",
|
|
apiKey: "${MOONSHOT_API_KEY}",
|
|
api: "openai-completions",
|
|
models: [
|
|
// moonshot-kimi-k2-models:start
|
|
{
|
|
id: "kimi-k2.5",
|
|
name: "Kimi K2.5",
|
|
reasoning: false,
|
|
input: ["text", "image"],
|
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
contextWindow: 262144,
|
|
maxTokens: 262144,
|
|
},
|
|
{
|
|
id: "kimi-k2-thinking",
|
|
name: "Kimi K2 Thinking",
|
|
reasoning: true,
|
|
input: ["text"],
|
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
contextWindow: 262144,
|
|
maxTokens: 262144,
|
|
},
|
|
{
|
|
id: "kimi-k2-thinking-turbo",
|
|
name: "Kimi K2 Thinking Turbo",
|
|
reasoning: true,
|
|
input: ["text"],
|
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
contextWindow: 262144,
|
|
maxTokens: 262144,
|
|
},
|
|
{
|
|
id: "kimi-k2-turbo",
|
|
name: "Kimi K2 Turbo",
|
|
reasoning: false,
|
|
input: ["text"],
|
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
contextWindow: 256000,
|
|
maxTokens: 16384,
|
|
},
|
|
// moonshot-kimi-k2-models:end
|
|
],
|
|
},
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
## Kimi Coding
|
|
|
|
```json5
|
|
{
|
|
env: { KIMI_API_KEY: "sk-..." },
|
|
agents: {
|
|
defaults: {
|
|
model: { primary: "kimi/kimi-code" },
|
|
models: {
|
|
"kimi/kimi-code": { alias: "Kimi" },
|
|
},
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
## Kimi web search
|
|
|
|
OpenClaw also ships **Kimi** as a `web_search` provider, backed by Moonshot web
|
|
search.
|
|
|
|
Interactive setup can prompt for:
|
|
|
|
- the Moonshot API region:
|
|
- `https://api.moonshot.ai/v1`
|
|
- `https://api.moonshot.cn/v1`
|
|
- the default Kimi web-search model (defaults to `kimi-k2.5`)
|
|
|
|
Config lives under `plugins.entries.moonshot.config.webSearch`:
|
|
|
|
```json5
|
|
{
|
|
plugins: {
|
|
entries: {
|
|
moonshot: {
|
|
config: {
|
|
webSearch: {
|
|
apiKey: "sk-...", // or use KIMI_API_KEY / MOONSHOT_API_KEY
|
|
baseUrl: "https://api.moonshot.ai/v1",
|
|
model: "kimi-k2.5",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
tools: {
|
|
web: {
|
|
search: {
|
|
provider: "kimi",
|
|
},
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Moonshot model refs use `moonshot/<modelId>`. Kimi Coding model refs use `kimi/<modelId>`.
|
|
- Current Kimi Coding default model ref is `kimi/kimi-code`. Legacy `kimi/k2p5` remains accepted as a compatibility model id.
|
|
- Kimi web search uses `KIMI_API_KEY` or `MOONSHOT_API_KEY`, and defaults to `https://api.moonshot.ai/v1` with model `kimi-k2.5`.
|
|
- Override pricing and context metadata in `models.providers` if needed.
|
|
- If Moonshot publishes different context limits for a model, adjust
|
|
`contextWindow` accordingly.
|
|
- Use `https://api.moonshot.ai/v1` for the international endpoint, and `https://api.moonshot.cn/v1` for the China endpoint.
|
|
- Onboarding choices:
|
|
- `moonshot-api-key` for `https://api.moonshot.ai/v1`
|
|
- `moonshot-api-key-cn` for `https://api.moonshot.cn/v1`
|
|
|
|
## Native thinking mode (Moonshot)
|
|
|
|
Moonshot Kimi supports binary native thinking:
|
|
|
|
- `thinking: { type: "enabled" }`
|
|
- `thinking: { type: "disabled" }`
|
|
|
|
Configure it per model via `agents.defaults.models.<provider/model>.params`:
|
|
|
|
```json5
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
models: {
|
|
"moonshot/kimi-k2.5": {
|
|
params: {
|
|
thinking: { type: "disabled" },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
```
|
|
|
|
OpenClaw also maps runtime `/think` levels for Moonshot:
|
|
|
|
- `/think off` -> `thinking.type=disabled`
|
|
- any non-off thinking level -> `thinking.type=enabled`
|
|
|
|
When Moonshot thinking is enabled, `tool_choice` must be `auto` or `none`. OpenClaw normalizes incompatible `tool_choice` values to `auto` for compatibility.
|