El anuncio de Kimi K2.6 de Moonshot AI lo posiciona como el nuevo estado del arte de código abierto para codificación, ejecución a largo plazo y enjambres de agentes. La API que lo impulsa es compatible con OpenAI, está alojada en https://api.moonshot.ai/v1 y documentada en la plataforma. Si tienes el SDK de OpenAI instalado, puedes enviar solicitudes reales en unos cinco minutos.
Esta guía te mostrará la autenticación, tu primera solicitud, streaming, llamadas a herramientas, entrada de visión y video, modo de pensamiento y cómo controlar el Enjambre de Agentes con 300 subagentes, y te enseñará cómo probar cada endpoint con Apidog antes de escribir cualquier código de integración.
TL;DR: API Kimi K2.6 en 60 segundos
- URL Base:
https://api.moonshot.ai/v1 - Endpoint:
POST /chat/completions - IDs de Modelo:
kimi-k2.6,kimi-k2.6-thinking - Autenticación:
Authorization: Bearer $KIMI_API_KEY - Formato: Esquema de finalizaciones de chat de OpenAI (mensajes, herramientas, stream, etc.)
- Contexto: 262.144 tokens de entrada, hasta 98.304 tokens de salida para razonamiento
- Valores predeterminados: temperatura 1.0, top-p 1.0 (según la guía oficial de Moonshot)
curl mínimo:
curl https://api.moonshot.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $KIMI_API_KEY" \
-d '{
"model": "kimi-k2.6",
"messages": [{"role": "user", "content": "Write a Python function that reverses a string."}]
}'
Eso es todo. El resto de esta guía detalla los aspectos, incluyendo Agent Swarm y el límite de ejecución de 4.000 pasos que Moonshot menciona.

Lo que realmente puedes hacer con esta API
Desde el anuncio de Kimi K2.6, la API habilita todo esto en producción:
- Agentes de codificación que se ejecutan durante más de 12 horas en una sola tarea (ver la demostración de inferencia de Qwen3.5-0.8B Mac: más de 4.000 llamadas a herramientas, rendimiento elevado de 15 a 193 tokens/seg).
- Gestión autónoma de infraestructura en sesiones de varios días con respuesta automática a incidentes.
- Fiabilidad a largo plazo en Rust, Go, Python y Zig.
- Enjambres de agentes de hasta 300 subagentes que ejecutan más de 4.000 pasos coordinados.
- Desarrollo guiado por el diseño generando aplicaciones full-stack con autenticación, bases de datos y transacciones a partir de una única instrucción.
- Visión + uso de herramientas Python en pipelines (MathVision con Python: 93,2%).
Si estás creando herramientas en la misma categoría que el uso de computadora de Claude Code, crear tu propio Claude Code, o Cursor Composer 2, la API K2.6 es un reemplazo directo en la capa del modelo.
Paso 1: Obtener una clave API
- Ve a platform.moonshot.ai (o platform.kimi.ai) y regístrate. Funciona con correo electrónico o Google OAuth.
- Verifica tu cuenta. Los usuarios internacionales pueden necesitar verificación por SMS.
- Agrega la información de facturación. Moonshot suele acreditar las cuentas nuevas con un pequeño saldo gratuito.
- Abre API Keys en el panel de control y haz clic en Create Key.
- Copia la clave inmediatamente (se muestra una sola vez).
- Expórtala:
export KIMI_API_KEY="sk-..."
Agrégala a .zshrc, .bashrc, o a un gestor de secretos para producción. Nunca la comitas.
¿Quieres evitar pagar durante el desarrollo? Cómo Usar Kimi K2.6 Gratis cubre Cloudflare Workers AI, pesos autoalojados y programas de crédito gratuitos.
Paso 2: Elige tu SDK
La API es compatible con OpenAI, por lo que los SDK oficiales de OpenAI funcionan después de cambiar la URL base.
| Opción | Instalación | Mejor para |
|---|---|---|
| curl | integrado | Pruebas rápidas, CI |
| OpenAI Python | pip install openai |
Servicios Python |
| OpenAI Node | npm install openai |
Aplicaciones JS/TS |
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("KIMI_API_KEY"),
base_url="https://api.moonshot.ai/v1",
)
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
print(response.choices[0].message.content)
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.KIMI_API_KEY,
baseURL: "https://api.moonshot.ai/v1",
});
const response = await client.chat.completions.create({
model: "kimi-k2.6",
messages: [{ role: "user", content: "What is the capital of France?" }],
});
console.log(response.choices[0].message.content);
curl
curl https://api.moonshot.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $KIMI_API_KEY" \
-d '{
"model": "kimi-k2.6",
"messages": [{"role": "user", "content": "What is the capital of France?"}]
}'
Los tres devuelven la misma estructura de respuesta.
Paso 3: Entender el cuerpo de la solicitud
Los mismos campos que las finalizaciones de chat de OpenAI:
{
"model": "kimi-k2.6",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Your prompt here." }
],
"temperature": 1.0,
"top_p": 1.0,
"max_tokens": 8192,
"stream": false,
"tools": [],
"tool_choice": "auto",
"thinking": { "type": "disabled" }
}
Dos notas específicas de Moonshot:
- Los valores predeterminados son altos. El blog oficial recomienda una temperatura de 1.0 y un top-p de 1.0 como valores predeterminados ajustados. No traslades hábitos de temperatura de 0.2 de los flujos de trabajo de codificación de OpenAI.
thinkingactiva el rastreo de razonamiento enkimi-k2.6-thinking.{"type": "disabled"}lo suprime para respuestas rápidas.
Paso 4: Streaming
El streaming es el valor predeterminado adecuado para cualquier interfaz de usuario o generación larga. La salida máxima para tareas de razonamiento puede alcanzar los 98.304 tokens; no querrás esperar todo eso de una vez.
Python
stream = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "Write a 500-word essay on MoE models."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
Node.js
const stream = await client.chat.completions.create({
model: "kimi-k2.6",
messages: [{ role: "user", content: "Write a 500-word essay on MoE models." }],
stream: true,
});
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}
El streaming también funciona con llamadas a herramientas; los argumentos llegan como deltas JSON que se concatenan.
Paso 5: Llamadas a herramientas
Moonshot reporta una puntuación Toolathlon del 50.0% y un 96.60% de éxito en la invocación de herramientas en pruebas de socios. El formato es el esquema estándar de llamada a funciones de OpenAI, por lo que se aplican los flujos de trabajo de prueba de API existentes para ingenieros de QA.
Definir herramientas
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather in a location.",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
}
]
Primera llamada (el modelo decide)
import json
messages = [{"role": "user", "content": "What's the weather in Tokyo?"}]
resp = client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
tools=tools,
tool_choice="auto",
)
msg = resp.choices[0].message
messages.append(msg)
if msg.tool_calls:
for call in msg.tool_calls:
args = json.loads(call.function.arguments)
result = fetch_weather(args["location"], args.get("unit", "celsius"))
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result),
})
Segunda llamada (respuesta final)
final = client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
tools=tools,
)
print(final.choices[0].message.content)
K2.6 es robusto en cadenas de herramientas de múltiples pasos, lo que hace factibles los agentes de codificación de larga duración como Kimi Code. Para una comparación de frameworks, los flujos de trabajo de Claude Code cubren el mismo bucle con un backend diferente.
Paso 6: Entrada de visión
K2.6 obtiene un 79.4% en MMMU-Pro y un 96.9% en V* (con Python). Las imágenes se incorporan al mensaje del usuario utilizando el formato de contenido image_url de OpenAI:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image in one sentence."},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}
],
)
Para archivos locales, codifícalos en base64:
import base64
with open("photo.jpg", "rb") as f:
b64 = base64.b64encode(f.read()).decode("utf-8")
image_url = f"data:image/jpeg;base64,{b64}"
Para OCR o lectura de diagramas, combina una instrucción de texto clara con la imagen. Para problemas matemáticos, incluye una herramienta de intérprete de Python; la puntuación MathVision del 93.2% se midió con acceso a Python habilitado.
Paso 7: Entrada de video
Pasa una URL de video o una secuencia de fotogramas:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Summarize what happens in this video."},
{"type": "video_url", "video_url": {"url": "https://example.com/clip.mp4"}}
]
}
],
)
Los clips cortos (<30s) funcionan en una sola llamada. Los videos más largos se benefician del streaming porque la inferencia fotograma a fotograma produce muchos tokens.
Paso 8: Modo de pensamiento
kimi-k2.6-thinking produce un rastro de razonamiento visible (similar a los modelos de estilo o1 de OpenAI). Moonshot reporta un 96.4% en AIME 2026 y un 90.5% en GPQA-Diamond con el pensamiento habilitado.
Pensando (predeterminado para el modelo de pensamiento):
response = client.chat.completions.create(
model="kimi-k2.6-thinking",
messages=[{"role": "user", "content": "Prove sqrt(2) is irrational."}],
)
Pensamiento desactivado:
response = client.chat.completions.create(
model="kimi-k2.6-thinking",
messages=[{"role": "user", "content": "Quick: what's 17 * 23?"}],
extra_body={"thinking": {"type": "disabled"}},
)
El rastro de razonamiento se devuelve en un campo reasoning de la respuesta. Puedes ocultarlo a los usuarios finales y mostrar solo la respuesta final, o canalizarlo a un registro de depuración.
Paso 9: Enjambre de Agentes
Agent Swarm es la característica que más vale la pena aprender. Del blog de Kimi K2.6: hasta 300 subagentes, más de 4.000 pasos coordinados, 3 veces la capacidad de K2.5.
Invocalo a través del parámetro de agente de la plataforma:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{
"role": "user",
"content": "Build a 5-page marketing site for a coffee brand with responsive design and a newsletter signup."
}],
extra_body={
"agent": {
"type": "swarm",
"max_agents": 30,
"max_steps": 4000
}
},
)
Las llamadas de Swarm se ejecutan durante minutos u horas. Tres consejos prácticos:
- Usa streaming. Querrás ver el progreso y detener las ejecuciones incorrectas a tiempo.
- Limita
max_agents. 300 es el techo; de 10 a 30 es más predecible para la mayoría de las tareas. - Establece un presupuesto. Las tareas de swarm largas pueden consumir tokens rápidamente; registra
usageen cada respuesta y canalízalo a tus métricas.
El blog de Kimi describe ejecuciones de demostración que modificaron más de 4.000 líneas de código en 13 horas. La arquitectura es lo que hace que esto sea posible; el indicador de la API simplemente lo activa.
Paso 10: Prueba todo con Apidog
Cada sección anterior introduce una forma de cuerpo, un requisito de encabezado o un formato de respuesta diferente. Apidog convierte el ciclo de depuración en un flujo de trabajo visual.

Configuración de Kimi K2.6 en Apidog
- Descarga Apidog y crea un proyecto.
- Crea un entorno
kimi-prodcon dos variables:BASE_URL = https://api.moonshot.ai/v1yKIMI_API_KEY = sk-.... - Nueva solicitud API:
POST {{BASE_URL}}/chat/completions. - Encabezados:
Authorization: Bearer {{KIMI_API_KEY}},Content-Type: application/json. - Cuerpo (ejemplo de streaming):
{
"model": "kimi-k2.6",
"messages": [{ "role": "user", "content": "Hello, Kimi K2.6!" }],
"stream": true
}
- Haz clic en Send. Los tokens se transmiten al panel de respuesta en tiempo real.
Lo que Apidog añade
- Validación de esquema contra la especificación de finalizaciones de chat de OpenAI, para que los campos que faltan aparezcan inmediatamente.
- Historial de solicitudes para que puedas reproducir la llamada exacta que produjo una respuesta extraña.
- Cambio de entorno entre claves de desarrollo, staging y producción con un solo clic.
- Compartir en equipo mediante la exportación de proyectos; consulta pruebas de API para equipos de más de 50 ingenieros.
- Servidores mock para cuando Moonshot tenga un incidente o estés sin conexión.
- Soporte para streaming SSE que maneja el formato de streaming de Kimi de manera limpia (muchas herramientas de API no lo hacen).
Para pruebas dentro del editor, Apidog también se ofrece como una extensión de VS Code. Si actualmente estás limitado a Postman, cómo hacer pruebas de API sin Postman te explica la transición.
Manejo de errores que no te dará problemas
Moonshot utiliza códigos de estado HTTP estándar:
- 400: solicitud incorrecta. Generalmente un cuerpo mal formado o un nombre de modelo incorrecto.
- 401: fallo de autenticación. Clave faltante, incorrecta o caducada.
- 429: límite de tasa o cuota agotada.
- 500: error del servidor. Reintenta con retroceso exponencial.
- 529: sobrecargado. Reintenta en unos segundos.
Envoltorio de reintentos:
import time
from openai import OpenAI, RateLimitError, APIError
def call_kimi(messages, max_retries=5):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
)
except RateLimitError:
time.sleep(2 ** attempt)
except APIError as e:
if e.status_code >= 500 and attempt < max_retries - 1:
time.sleep(2 ** attempt)
else:
raise
raise RuntimeError("Kimi K2.6 failed after retries")
Para desconexiones a mitad del streaming, rastrea los tokens recibidos y reinicia con una instrucción de "continuar desde aquí" si la conexión se cae. El límite de salida de razonamiento de 98.304 tokens significa que los streams largos son normales, no un error.
Control de costes
Moonshot publica sus precios en kimi.com/membership/pricing. Tres consejos de nivel de producción para mantener las facturas predecibles:
- Limita
max_tokens. Establécelo al mínimo para tu caso de uso. 2.048 es suficiente para respuestas de chat. - Almacena en caché los prompts del sistema. El almacenamiento en caché de prompts de Moonshot se activa con mensajes de sistema repetidos; coloca las instrucciones estáticas primero.
- Registra el
usage. Cada respuesta incluyeprompt_tokens,completion_tokensytotal_tokens. Canalízalos a Prometheus o a la pila de métricas que uses y configura alertas.
Patrón de producción: un solucionador de problemas de GitHub
Aquí tienes un agente que lee un problema de GitHub, localiza el código relevante, propone una solución y ejecuta pruebas, estructurado en torno al bucle de llamada a herramientas de Kimi K2.6:
from openai import OpenAI
import os, json
client = OpenAI(
api_key=os.getenv("KIMI_API_KEY"),
base_url="https://api.moonshot.ai/v1",
)
tools = [
{"type": "function", "function": {
"name": "read_file",
"description": "Read a file in the repo.",
"parameters": {
"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"]
}
}},
{"type": "function", "function": {
"name": "search_code",
"description": "Ripgrep the codebase for a pattern.",
"parameters": {
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"]
}
}},
{"type": "function", "function": {
"name": "run_tests",
"description": "Run the project test suite.",
"parameters": {"type": "object", "properties": {}}
}},
]
def tool_dispatch(name, args):
if name == "read_file":
with open(args["path"]) as f:
return f.read()
if name == "search_code":
return run_ripgrep(args["query"])
if name == "run_tests":
return run_pytest()
raise ValueError(f"Unknown tool: {name}")
messages = [
{"role": "system", "content": "You are a senior engineer. Fix the described bug."},
{"role": "user", "content": "Issue: login form submits twice on slow networks."}
]
while True:
resp = client.chat.completions.create(
model="kimi-k2.6",
messages=messages,
tools=tools,
)
msg = resp.choices[0].message
messages.append(msg)
if not msg.tool_calls:
print(msg.content)
break
for call in msg.tool_calls:
result = tool_dispatch(call.function.name, json.loads(call.function.arguments))
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": result,
})
Esto se escala al Enjambre de Agentes agregando la configuración de enjambre extra_body. También funciona bien con la pila multiagente Hermes si deseas puntos de control con intervención humana.
Preguntas frecuentes
- ¿Necesito un SDK específico de Moonshot?No. Los SDK de OpenAI para Python y Node funcionan después de cambiar
base_url. - ¿La API tiene un límite de tasa?Sí. Los límites se ajustan a tu nivel y historial de uso. Consulta el panel de control.
- ¿Kimi K2.6 funciona con LangChain, LlamaIndex, Vercel AI SDK?Sí. Cualquier framework que acepte una URL base compatible con OpenAI funciona.
- ¿Kimi K2.6 admite el modo JSON?Sí. Pasa
response_format: {"type": "json_object"}para una salida JSON válida, o{"type": "json_schema", "json_schema": {...}}para esquemas estrictos. - ¿Qué tan grande es la ventana de contexto, exactamente?262.144 tokens de entrada, 98.304 tokens de salida máxima para tareas de razonamiento, según el blog oficial.
- ¿Puedo ajustar (fine-tune) Kimi K2.6 a través de la API?Todavía no. Por ahora, el fine-tuning significa ejecutar los pesos abiertos en tu propio hardware.
- ¿Cuál es la diferencia entre
kimi-k2.6ykimi-k2.6-thinking?kimi-k2.6es el modelo de agente rápido.kimi-k2.6-thinkingexpone sus pasos de razonamiento y está ajustado para matemáticas, lógica y planificación compleja (AIME 2026: 96,4%, GPQA-Diamond: 90,5%). - ¿Hay una capa gratuita?Consulta nuestra guía de acceso gratuito a Kimi K2.6 para Cloudflare Workers AI, el chat de kimi.com y opciones autoalojadas.
Resumen
La API Kimi K2.6 se integra en cualquier cadena de herramientas compatible con OpenAI con dos cambios: la URL base y tu clave API. A partir de ahí, obtienes una ventana de contexto de 262K, Agent Swarm con 300 subagentes, llamadas a herramientas ajustadas para un 96.60% de éxito en la invocación, y los pesos de código abierto como respaldo si alguna vez quieres dejar la API alojada.
Si estás construyendo una nueva integración, usa Apidog para construir y verificar cada endpoint primero. Capturarás errores de esquema, errores de streaming y problemas de autenticación antes de que lleguen a tu base de código. Luego, porta las solicitudes que funcionan a tu servicio de Python o Node con confianza.
Referencias y lectura adicional
- Anuncio oficial: Kimi K2.6 — Blog de Moonshot AI
- Inicio rápido de la API: platform.kimi.ai
- Plataforma API: platform.moonshot.ai
- Agente de terminal Kimi Code: kimi.com/code
- Precios: kimi.com/membership/pricing
- Pesos abiertos: huggingface.co/moonshotai/Kimi-K2.6
- Guías relacionadas de Apidog: Qué es Kimi K2.6, Kimi K2.6 gratis, Qwen 3.6 gratis en OpenRouter, API de Qwen3.5-Omni, Apidog dentro de VS Code, Pruebas de API sin Postman, Pruebas de API para más de 50 ingenieros, Flujos de trabajo de Claude Code, Cursor Composer 2.
