El anuncio de Kimi K2.6 de Moonshot AI lo posiciona como el nuevo estándar open-source para codificación, ejecución prolongada y enjambres de agentes. La API es compatible con OpenAI, está alojada en https://api.moonshot.ai/v1 y documentada en la plataforma. Si ya tienes el SDK de OpenAI, puedes enviar solicitudes reales en minutos.
Esta guía cubre autenticación, tu primera solicitud, streaming, llamadas a herramientas, entrada de visión/video, modo de pensamiento, control del Agent Swarm con 300 subagentes y cómo testear cada endpoint con Apidog antes de escribir código de integración.
💡 Ruta rápida: Prueba la API Kimi K2.6 visualmente en Apidog antes de codificar. Solo importa el endpoint, añade tu token Bearer y estarás haciendo solicitudes reales en streaming, con historial completo y validación de esquema.
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 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 (guía oficial de Moonshot)
curl básico:
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."}]
}'
El resto de la guía detalla temas clave como Agent Swarm y el límite de 4.000 pasos.
Lo que puedes hacer con esta API
Según el anuncio de Kimi K2.6:
- Agentes de codificación: ejecutan tareas de más de 12 horas (ejemplo: Qwen3.5-0.8B Mac, >4.000 llamadas a herramientas, 15–193 tokens/seg).
- Gestión autónoma de infraestructura: sesiones de varios días, respuesta automática a incidentes.
- Fiabilidad a largo plazo: soporte en Rust, Go, Python, Zig.
- Enjambres de agentes: hasta 300 subagentes, >4.000 pasos coordinados.
- Desarrollo guiado por diseño: genera aplicaciones full-stack desde una sola instrucción.
- Visión + herramientas Python: pipelines de MathVision con Python (93,2%).
Si desarrollas productos similares a Claude Code Computer Use, tu propio Claude Code, o Cursor Composer 2, la API K2.6 es un reemplazo directo.
Paso 1: Obtener una clave API
- Ve a platform.moonshot.ai o platform.kimi.ai y regístrate (email/Google OAuth).
- Verifica tu cuenta (internacionales: posible SMS).
- Añade la info de facturación. Suele haber crédito inicial gratuito.
- En el panel, abre API Keys y haz clic en Create Key.
- Copia la clave inmediatamente (solo se muestra una vez).
- Expórtala:
export KIMI_API_KEY="sk-..."
Agrega la variable a .zshrc, .bashrc o un gestor de secretos. Nunca la subas al repositorio.
¿Quieres evitar costes en desarrollo? Lee Cómo Usar Kimi K2.6 Gratis (Cloudflare Workers AI, pesos open-source, créditos).
Paso 2: Elige tu SDK
La API es compatible con OpenAI, así que puedes usar sus SDK oficiales modificando solo 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 |
Apps 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?"}]
}'
Todos devuelven la misma estructura de respuesta.
Paso 3: Estructura del cuerpo de la solicitud
Utiliza los mismos campos que OpenAI Chat Completions:
{
"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" }
}
Específico de Moonshot:
- Valores predeterminados altos. Usar temp=1.0 y top-p=1.0 (no bajes a 0.2 como en OpenAI).
-
thinking: Activa rastreo de razonamiento enkimi-k2.6-thinking. Usa{"type": "disabled"}para respuestas rápidas.
Paso 4: Streaming
El streaming es recomendado para UIs o salidas largas (hasta 98.304 tokens de salida).
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 soporta llamadas a herramientas: los argumentos llegan como deltas JSON concatenados.
Paso 5: Llamadas a herramientas
Moonshot reporta 50% Toolathlon y 96.60% éxito en invocación. El formato es idéntico al de OpenAI Function Calling, por lo que puedes aplicar flujos de testing de API 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 soporta cadenas de herramientas de múltiples pasos, útil para agentes de codificación extensos como Kimi Code. Para comparar frameworks, revisa flujos de trabajo de Claude Code.
Paso 6: Entrada de visión
K2.6 logra 79.4% en MMMU-Pro y 96.9% en V* (con Python). Usa el formato 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 imágenes locales, encódalas 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, diagramas o problemas matemáticos, combina un prompt claro con la imagen y, si es necesario, habilita la herramienta Python (MathVision: 93,2%).
Paso 7: Entrada de video
Envía una URL de video o secuencia de frames:
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"}}
]
}
],
)
Clips cortos (<30s) funcionan en una llamada. En videos largos, usa streaming para manejar la gran cantidad de tokens.
Paso 8: Modo de pensamiento
kimi-k2.6-thinking expone el razonamiento paso a paso (como los modelos OpenAI o1). Moonshot reporta 96.4% en AIME 2026 y 90.5% en GPQA-Diamond.
Pensamiento activado:
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 razonamiento aparece en el campo reasoning de la respuesta. Puedes ocultarlo o mostrarlo en logs.
Paso 9: Enjambre de Agentes
Agent Swarm es la característica más avanzada. Según el blog de Kimi K2.6: hasta 300 subagentes y 4.000 pasos coordinados (x3 frente a K2.5).
Actívalo con el parámetro agent:
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
}
},
)
Consejos prácticos:
- Usa streaming para monitorizar progreso y abortar ejecuciones incorrectas.
-
Ajusta
max_agents(10-30 es lo recomendable). -
Controla presupuesto: monitorea el campo
usagede cada respuesta.
El blog de Kimi reporta ejecuciones de más de 4.000 líneas de código modificadas en 13 horas.
Paso 10: Testea todo con Apidog
Cada variante de cuerpo, header o respuesta puede ser validada visualmente con Apidog.
Configuración de Kimi K2.6 en Apidog
- Descarga Apidog y crea un proyecto.
- Crea un entorno
kimi-prodcon:BASE_URL = https://api.moonshot.ai/v1KIMI_API_KEY = sk-...
- Nueva solicitud API:
POST {{BASE_URL}}/chat/completions - Headers:
Authorization: Bearer {{KIMI_API_KEY}}Content-Type: application/json
- Cuerpo de ejemplo:
{
"model": "kimi-k2.6",
"messages": [{ "role": "user", "content": "Hello, Kimi K2.6!" }],
"stream": true
}
- Haz clic en Send. Los tokens aparecerán en tiempo real.
¿Qué añade Apidog?
- Validación de esquema compatible con OpenAI.
- Historial de solicitudes para debugging y reproducibilidad.
- Cambio de entorno (dev/staging/prod) con un clic.
- Colaboración en equipo mediante exportación de proyectos (equipos grandes).
- Mock servers para pruebas offline o caídas de Moonshot.
- Soporte de streaming SSE para el formato de Kimi (muchas otras herramientas fallan en esto).
Existe también como extensión de VS Code. ¿Migrando desde Postman? Te explicamos la transición.
Manejo de errores
Moonshot usa HTTP estándar:
- 400: cuerpo mal formado o modelo incorrecto.
- 401: fallo de autenticación.
- 429: límite de cuota o rate limit.
- 500: error servidor (reintenta con backoff).
- 529: sobrecarga (reintenta tras segundos).
Ejemplo de reintentos en Python:
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")
En streams largos, si la conexión cae, rastrea los tokens y reintenta con un mensaje de "continúa desde aquí".
Control de costes
Consulta precios actualizados.
Recomendaciones:
-
Limita
max_tokensal mínimo necesario (ej: 2048 para chat). - Caché de prompts del sistema: pon instrucciones estáticas primero.
-
Monitorea el campo
usagede cada respuesta (tokens usados), y canalízalo a tu sistema de métricas/alertas.
Patrón de producción: Solucionador de problemas de GitHub
Ejemplo de agente que itera sobre un issue, localiza código, propone solución y ejecuta tests, usando el loop de tool-calling 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,
})
Para escalar a Agent Swarm, agrega la configuración de swarm en extra_body. Funciona también con la pila multiagente Hermes si quieres intervención humana.
Preguntas frecuentes
¿Necesito un SDK específico de Moonshot?
No. Los SDK de OpenAI para Python/Node funcionan cambiandobase_url.¿La API tiene límite de tasa?
Sí, ajustado por cuenta y uso. Verifica en el panel.¿Funciona con LangChain, LlamaIndex, Vercel AI SDK?
Sí, todo lo compatible con OpenAI y URL base personalizada.¿Soporta modo JSON?
Sí. Usaresponse_format: {"type": "json_object"}o{"type": "json_schema", ...}para esquemas estrictos.¿Tamaño de contexto?
262.144 tokens de entrada, 98.304 de salida (ver blog oficial).¿Se puede hacer fine-tune vía API?
No aún. Solo con los pesos open-source en hardware propio.¿Diferencia entre
kimi-k2.6ykimi-k2.6-thinking?
kimi-k2.6: agente rápido.
kimi-k2.6-thinking: expone razonamiento, ajustado para lógica y matemáticas.¿Hay capa gratuita?
Sí, consulta la guía de acceso gratuito.
Resumen
La API Kimi K2.6 se integra en cualquier flujo OpenAI cambiando dos cosas: URL base y clave API. Obtienes ventana de contexto de 262K, Agent Swarm, llamadas a herramientas con alta tasa de éxito y pesos open-source como respaldo.
Para nuevas integraciones, usa Apidog para construir y validar endpoints antes de portar el flujo a tu código Python/Node. Así detectas fallos de esquema, de autenticación y de streaming antes de que lleguen a producción.
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 open-source: huggingface.co/moonshotai/Kimi-K2.6
- Guías de Apidog:


Top comments (0)