npm.io
0.17.0 • Published 3d ago

@core-ai/kimi

Licence
MIT
Version
0.17.0
Deps
2
Size
8 kB
Vulns
0
Weekly
0
Stars
6

@core-ai/kimi

npm

Kimi (Moonshot AI) provider package for @core-ai/core-ai.

Installation

npm install @core-ai/core-ai @core-ai/kimi zod

Usage

import { generate } from '@core-ai/core-ai';
import { createKimi } from '@core-ai/kimi';

const kimi = createKimi({
    apiKey: process.env.KIMI_API_KEY,
});

const model = kimi.chatModel('kimi-k2.7-code');

const result = await generate({
    model,
    messages: [{ role: 'user', content: 'Implement quicksort in TypeScript.' }],
    maxTokens: 32768,
});

console.log(result.content);

By default, requests go to https://api.moonshot.ai/v1. Set baseURL to use a custom endpoint.

Supported models

  • kimi-k2.7-code — coding-focused agentic model with always-on thinking
  • kimi-k2.7-code-highspeed — same model with higher output speed

Reasoning and preserved thinking

Kimi K2.7 Code always runs in thinking mode. The provider maps Moonshot's reasoning_content field to core-ai reasoning parts and preserves it across multi-turn conversations via resultToMessage().

Fixed sampling constraints

For kimi-k2.7-code and kimi-k2.7-code-highspeed, Moonshot fixes sampling parameters server-side. Do not pass custom temperature or topP values — the provider validates these locally and omits fixed parameters from requests.

Structured output

generateObject() and streamObject() use Moonshot JSON Mode (response_format: { type: 'json_object' }) and validate the returned JSON with your Zod schema.

Forced tool choice via toolChoice: { type: 'tool', toolName } is rejected on K2.7 Code models because Moonshot does not allow forced tool selection while thinking is always enabled.

Provider options

Pass Kimi-specific options via providerOptions.kimi:

await generate({
    model,
    messages: [{ role: 'user', content: 'Hello' }],
    providerOptions: {
        kimi: {
            parallelToolCalls: true,
            stopSequences: ['END'],
        },
    },
});

Keywords