Introduzione
Kimi K3 è il modello per agenti a contesto lungo di Moonshot AI, disponibile qui come un endpoint compatibile con OpenAI su /v1/chat/completions. Legge fino a 1.000.000 di token in al massimo 256 messaggi e può restituire fino a 1.048.576 token in una risposta.
La richiesta ha sette campi: messages, max_tokens, tools, tool_choice, response_format, reasoning_effort e stop. Il livello di ragionamento accetta low, high o max e parte da max; temperature e top_p li fissa Moonshot e qui vengono rifiutati. I messaggi possono contenere parti di testo e image_url, e le risposte arrivano in streaming via Server-Sent Events.
Caratteristiche principali
reasoning_effort è l'unica manopola
Con il campionamento fissato da Moonshot, quello che controlli è quanto lavora il modello: low per turni meccanici brevi, high per le review normali, max per migrazioni e dimostrazioni. Un valore di campionamento copiato da un altro modello fallisce subito invece di essere ignorato in silenzio, così una richiesta significa la stessa cosa in ogni ambiente.
Legge un pacchetto, restituisce un file
Un milione di token in ingresso e fino a 1.048.576 in uscita: il codice entra per intero e un file riscritto può tornare per intero. Ogni passaggio vede comunque il resto del repository, cioè proprio il contesto che le pipeline a pezzi di solito perdono.
Testo e immagini nello stesso messaggio
Un messaggio utente può mescolare parti di testo e image_url con detail su auto, low o high, e ogni parte viene misurata come token di input. Lo screenshot di una schermata che non funziona e il codice che la genera possono arrivare al modello insieme; non esiste una parte video.
Parametri della richiesta
| Parametro | Obbligatorio | Nota |
|---|---|---|
messages | Sì | Al massimo 256 turni ordinati. Il contenuto è una stringa semplice o un array di parti: text, e |
max_tokens | No | Limita la risposta a 1.048.576. Anche il predefinito di 32.768 può troncare in silenzio la riscrittura di un file intero: dimensionalo sul risultato. |
reasoning_effort | No | low, high o max, predefinito max: i livelli e il predefinito che Moonshot documenta per K3, quindi una richiesta che omette il campo ottiene già l'impostazione più accurata. |
stop | No | Fino a 4 sequenze di al massimo 32 byte ciascuna, come stringa o come array. La risposta si ferma appena il modello ne scrive una, e il testo corrispondente non viene restituito. almeno 1 caratteri · almeno 1 elementi · al massimo 4 elementi |
tools | No | Fino a 128 definizioni di funzione, dichiarate nella prima richiesta di un ciclo. al massimo 128 elementi |
tool_choice | No | auto permette al modello di saltare una chiamata; required ne impone una; none le vieta tutte. |
response_format | No | Chiedi un oggetto JSON quando l'output è un dato strutturato invece che prosa. |
Prezzi
Input $2.70 / Output $13.50 per 1 milione di token
Casi d’uso
Riscritture su tutto il repository, file per file
Manda tutti i file di un pacchetto e chiedi un file migrato alla volta invece di una descrizione del diff. Il tetto di risposta così alto riporta per intero anche un file grande, quindi nulla si perde a un confine di continuazione a metà di una funzione.
Cicli di agenti con una superficie fissa
Dichiara fino a 128 tool, lascia tool_choice su auto e avvia il ciclo. Fissa reasoning_effort per tutto il ciclo e tra un'iterazione e l'altra cambierà solo la conversazione, il che mantiene leggibile la traccia dell'agente quando qualcosa va storto.
Tradurre e ristrutturare libri interi
Carica un intero manoscritto e un glossario, poi chiedi un capitolo tradotto o ristrutturato per chiamata mentre il modello vede ancora il resto del libro. Termini e nomi restano coerenti perché i capitoli precedenti sono nella stessa richiesta.
Consigli avanzati
Scegli il livello di ragionamento di proposito
Omettere reasoning_effort equivale già a max: l'impostazione più accurata e quella che consuma più token di output. Decidi in base al compito: max per una migrazione o una dimostrazione, high per le review, low per turni meccanici brevi.
Chiedi l'artefatto, non la sua descrizione
POST https://api.spicyapi.ai/v1/chat/completions con {"model": "moonshot/kimi-k3", "messages": [{"role": "system", "content": "Return the migrated files in full. No commentary, no diffs, no omitted regions."}, {"role": "user", "content": "<every file in the package>"}], "max_tokens": 120000}. Dimensiona max_tokens sul file che ti aspetti: il default di 32.768 può troncare la riscrittura di un file intero senza generare errori.
Streaming e limiti
Una chiamata senza streaming su max con la finestra piena può durare a lungo, quindi usa lo streaming o dimensiona il timeout del client. La finestra è di 1.000.000 di token, un max_tokens oltre 1.048.576 non è valido e temperature o top_p nel corpo non superano la validazione.
Avvio rapido dell’API
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "moonshot/kimi-k3/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
Nel riferimento dell’API trovi autenticazione, schema completo, polling e gestione degli errori.





