Moonshot AI (Kimi)

Moonshot은 OpenAI 호환 엔드포인트를 제공하는 Kimi API를 제공합니다. 프로바이더를 설정하고 기본 모델을 moonshot/kimi-k2.5로 설정하거나, Kimi Coding의 경우 kimi-coding/k2p5를 사용합니다.

현재 Kimi K2 모델 ID:

{/_ moonshot-kimi-k2-ids:start _/ && null}

  • kimi-k2.5
  • kimi-k2-0905-preview
  • kimi-k2-turbo-preview
  • kimi-k2-thinking
  • kimi-k2-thinking-turbo {/_ moonshot-kimi-k2-ids:end _/ && null}
openclaw onboard --auth-choice moonshot-api-key

Kimi Coding:

openclaw onboard --auth-choice kimi-code-api-key

참고: Moonshot과 Kimi Coding은 별도의 프로바이더입니다. 키는 상호 교환할 수 없으며, 엔드포인트가 다르고, 모델 참조도 다릅니다(Moonshot은 moonshot/..., Kimi Coding은 kimi-coding/...).

설정 예시 (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-0905-preview": { alias: "Kimi K2" },
        "moonshot/kimi-k2-turbo-preview": { alias: "Kimi K2 Turbo" },
        "moonshot/kimi-k2-thinking": { alias: "Kimi K2 Thinking" },
        "moonshot/kimi-k2-thinking-turbo": { alias: "Kimi K2 Thinking 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"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 256000,
            maxTokens: 8192,
          },
          {
            id: "kimi-k2-0905-preview",
            name: "Kimi K2 0905 Preview",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 256000,
            maxTokens: 8192,
          },
          {
            id: "kimi-k2-turbo-preview",
            name: "Kimi K2 Turbo",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 256000,
            maxTokens: 8192,
          },
          {
            id: "kimi-k2-thinking",
            name: "Kimi K2 Thinking",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 256000,
            maxTokens: 8192,
          },
          {
            id: "kimi-k2-thinking-turbo",
            name: "Kimi K2 Thinking Turbo",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 256000,
            maxTokens: 8192,
          },
          // moonshot-kimi-k2-models:end
        ],
      },
    },
  },
}

Kimi Coding

{
  env: { KIMI_API_KEY: "sk-..." },
  agents: {
    defaults: {
      model: { primary: "kimi-coding/k2p5" },
      models: {
        "kimi-coding/k2p5": { alias: "Kimi K2.5" },
      },
    },
  },
}

참고 사항

  • Moonshot 모델 참조는 moonshot/<modelId> 형식입니다. Kimi Coding 모델 참조는 kimi-coding/<modelId> 형식입니다.
  • 필요한 경우 models.providers에서 가격 및 컨텍스트 메타데이터를 재정의하세요.
  • Moonshot이 모델에 대해 다른 컨텍스트 제한을 게시하는 경우, contextWindow를 그에 맞게 조정하세요.
  • 국제 엔드포인트는 https://api.moonshot.ai/v1, 중국 엔드포인트는 https://api.moonshot.cn/v1을 사용하세요.

네이티브 thinking 모드 (Moonshot)

Moonshot Kimi는 바이너리 네이티브 thinking을 지원합니다:

  • thinking: { type: "enabled" }
  • thinking: { type: "disabled" }

agents.defaults.models.<provider/model>.params를 통해 모델별로 설정합니다:

{
  agents: {
    defaults: {
      models: {
        "moonshot/kimi-k2.5": {
          params: {
            thinking: { type: "disabled" },
          },
        },
      },
    },
  },
}

OpenClaw는 Moonshot에 대해 런타임 /think 레벨도 매핑합니다:

  • /think off -> thinking.type=disabled
  • off가 아닌 모든 thinking 레벨 -> thinking.type=enabled

Moonshot thinking이 활성화된 경우 tool_choiceauto 또는 none이어야 합니다. OpenClaw는 호환성을 위해 호환되지 않는 tool_choice 값을 auto로 정규화합니다.