6.1 KiB
| summary | read_when | title | |||
|---|---|---|---|---|---|
| Configure Moonshot K2 vs Kimi Coding (separate providers + keys) |
|
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:
kimi-k2.5kimi-k2-thinkingkimi-k2-thinking-turbokimi-k2-turbo
openclaw onboard --auth-choice moonshot-api-key
# or
openclaw onboard --auth-choice moonshot-api-key-cn
Kimi Coding:
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:
openclaw configure --section web
Choose Kimi in the web-search section to store
plugins.entries.moonshot.config.webSearch.*.
Config snippet (Moonshot API)
{
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
{
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/v1https://api.moonshot.cn/v1
- the default Kimi web-search model (defaults to
kimi-k2.5)
Config lives under plugins.entries.moonshot.config.webSearch:
{
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 usekimi/<modelId>. - Current Kimi Coding default model ref is
kimi/kimi-code. Legacykimi/k2p5remains accepted as a compatibility model id. - Kimi web search uses
KIMI_API_KEYorMOONSHOT_API_KEY, and defaults tohttps://api.moonshot.ai/v1with modelkimi-k2.5. - Native Moonshot endpoints (
https://api.moonshot.ai/v1andhttps://api.moonshot.cn/v1) advertise streaming usage compatibility on the sharedopenai-completionstransport. OpenClaw now keys that off endpoint capabilities, so compatible custom provider ids targeting the same native Moonshot hosts inherit the same streaming-usage behavior. - Override pricing and context metadata in
models.providersif needed. - If Moonshot publishes different context limits for a model, adjust
contextWindowaccordingly. - Use
https://api.moonshot.ai/v1for the international endpoint, andhttps://api.moonshot.cn/v1for the China endpoint. - Onboarding choices:
moonshot-api-keyforhttps://api.moonshot.ai/v1moonshot-api-key-cnforhttps://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:
{
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.