Introducción
Kimi K3 es el modelo de agentes de contexto largo de Moonshot AI, disponible aquí como un endpoint compatible con OpenAI en /v1/chat/completions. Lee hasta 1.000.000 de tokens en un máximo de 256 mensajes y puede devolver hasta 1.048.576 tokens en una respuesta.
La solicitud tiene siete campos: messages, max_tokens, tools, tool_choice, response_format, reasoning_effort y stop. El esfuerzo admite low, high o max y arranca en max; temperature y top_p los fija Moonshot y aquí se rechazan. Los mensajes pueden llevar partes de texto e image_url, y las respuestas llegan por Server-Sent Events.
Funciones y aspectos destacados
reasoning_effort es el único control
Con el muestreo fijado por Moonshot, lo que controlas es cuánto trabaja el modelo: low para turnos mecánicos cortos, high para revisiones normales, max para migraciones y demostraciones. Un valor de muestreo copiado de otro modelo falla de inmediato en vez de ignorarse en silencio, así que una solicitud significa lo mismo en cualquier entorno.
Leer un paquete, devolver un archivo
Un millón de tokens de entrada y hasta 1.048.576 de salida: el código entra completo y un archivo reescrito puede volver completo. Cada pasada sigue viendo el resto del repositorio, que es justo el contexto que suelen perder los pipelines troceados.
Texto e imágenes en el mismo mensaje
Un mensaje de usuario puede combinar partes de texto e image_url con detail en auto, low o high, y cada parte se mide como tokens de entrada. La captura de una pantalla que falla y el código que la renderiza pueden ir juntos al modelo; no hay partes de video.
Parámetros de la solicitud
| Parámetro | Obligatorio | Descripción |
|---|---|---|
messages | Sí | Como máximo 256 turnos ordenados. El contenido es una cadena o un arreglo de partes: text e |
max_tokens | No | Limita la respuesta a 1 048 576. El valor por defecto de 32 768 todavía puede cortar sin aviso la reescritura de un archivo entero: ajústalo al entregable. |
reasoning_effort | No | low, high o max, max por defecto: los niveles y el valor por defecto que Moonshot documenta para K3, así que una solicitud que omite el campo ya recibe el ajuste más cuidadoso. |
stop | No | Hasta 4 secuencias de 32 bytes como máximo cada una, como cadena o como arreglo. mínimo 1 caracteres · mínimo 1 elementos · máximo 4 elementos |
tools | No | Hasta 128 definiciones de funciones, declaradas en la primera solicitud del bucle. máximo 128 elementos |
tool_choice | No | auto deja que el modelo se salte una llamada; required obliga a una; none las prohíbe todas. |
response_format | No | Pide un objeto JSON cuando la salida sea dato estructurado y no prosa. |
Precios
Entrada $2.70 / Salida $13.50 por 1 millón de tokens
Casos de uso
Reescrituras de todo el repositorio, archivo por archivo
Envía todos los archivos de un paquete y pide un archivo migrado cada vez, no una descripción del diff. El tope de respuesta tan alto devuelve completo incluso un archivo grande, así que nada se pierde en un corte de continuación a mitad de una función.
Bucles de agente con una superficie fija
Declara hasta 128 tools, deja tool_choice en auto y arranca el bucle. Fija reasoning_effort para todo el bucle y lo único que cambia entre iteraciones es la conversación, lo que mantiene legible la traza del agente cuando algo sale mal.
Traducir y reestructurar libros enteros
Carga un manuscrito completo y un glosario, y pide un capítulo traducido o reestructurado por llamada mientras el modelo sigue viendo el resto del libro. Los términos y los nombres se mantienen coherentes porque los capítulos anteriores están en la misma solicitud.
Guía de prompts y consejos prácticos
Elige el nivel de esfuerzo a propósito
Omitir reasoning_effort ya equivale a max: el ajuste más cuidadoso y el que más tokens de salida gasta. Decide según la tarea: max para una migración o una demostración, high para revisiones, low para turnos mecánicos cortos.
Pide el artefacto, no su descripción
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}. Ajusta max_tokens al archivo que esperas recibir: el valor por defecto de 32.768 puede cortar la reescritura de un archivo entero sin dar error.
Streaming y límites
Una llamada sin streaming en max con la ventana llena puede tardar, así que usa streaming o dimensiona el timeout del cliente. La ventana es de 1.000.000 de tokens, un max_tokens mayor que 1.048.576 no es válido y temperature o top_p en el cuerpo no pasan la validación.
Inicio rápido de la 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'
Consulta la referencia de la API para autenticación, el esquema completo, sondeo y gestión de errores.





