Las cinco técnicas se acumulan. Cada una reduce una parte distinta de la factura: combinar tres permite alcanzar razonablemente una reducción del 70 % sin pérdida de calidad; utilizar las cinco acerca el resultado al 85–90 %. Esta guía ofrece el menú completo, con ahorros medidos y código ejecutable para cada técnica. Cada técnica enlaza a un análisis detallado específico al final.
Las cinco técnicas, clasificadas por ROI
| # | Técnica | Qué reduce | Ahorro realista |
|---|---|---|---|
| 1 | caché de prompts | Tokens de entrada en indicaciones repetidas | 60–90 % de ahorro en el coste de entrada |
| 2 | Asignación por niveles de modelo | Tarifa por llamada en tareas sencillas | ~10 veces más barato |
| 3 | Límites de salida | Tokens de salida, el coste dominante en tareas creativas | La salida cuesta 4–5 veces la entrada |
| 4 | Paralelismo + procesamiento por lotes | Tiempo real, no coste por token | Permite timeouts más estrictos y menos reintentos |
| 5 | Higiene de reintentos | Gasto descontrolado en reintentos | Limita la cola, no el promedio |
1. Caché de indicaciones: con diferencia, la técnica con mayor ROI
Si su indicación de sistema supera los 1,000 tokens y llama a la misma indicación más de dos veces en una ventana de 5 minutos, la caché de indicaciones es dinero gratis. Anthropic cobra la entrada almacenada en caché a 10% de la tarifa de entrada (2.5% on Claude Fable 5.1, 5% on Claude Opus 5.5); OpenAI aplica automáticamente el equivalente a 10%. Solo hay que añadir un campo:
# Prompt caching: 1 extra field = 10% rate on cached input
resp = client.messages.create(
model="claude-sonnet-5",
max_tokens=600,
system=[{
"type": "text",
"text": LONG_SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"}, # cache this part
}],
messages=[{"role": "user", "content": question}],
)Ahorro realista: 60–90 % de la línea de coste de entrada si la indicación de sistema es grande y estable. Consulte el panel /app/usage: si cache_read_input_tokens es 0, tiene 30 minutos de trabajo por delante que se amortizarán para siempre. Análisis detallado.
2. Asignación por niveles de modelo: utilice el modelo más barato que sea suficientemente bueno
Claude Haiku 4.5 cuesta aproximadamente el 10 % de Claude Opus 4.7. Para clasificación, formato, decisiones de enrutamiento y resúmenes sencillos, Haiku es más que suficiente. Reserve Opus para las llamadas de razonamiento realmente difíciles.
# Pick the cheapest model that's still good enough for the task.
# Escalate by difficulty: cheap (Haiku 4.5 / GPT-5.6 Terra) -> Sonnet 5 -> Opus 4.7
def pick_model(difficulty: int) -> str:
if difficulty <= 2: return "claude-haiku-4-5" # ~10x cheaper than Opus
if difficulty <= 4: return "gpt-5-6-terra" # a second family, cheap output
if difficulty <= 7: return "claude-sonnet-5"
return "claude-opus-4-7"Cómo crear la decisión de asignación por niveles: primero un clasificador pequeño (el propio Haiku puede hacerlo con 100 tokens de entrada) y después el enrutamiento. Mida la calidad de salida con evaluaciones reservadas. No deje que la intuición elija: mídalo con benchmarks.
- Nivel 0 (Haiku 4.5): clasificación, extracción, traducción y resumen de entradas <2K — céntimos por llamada
- Nivel 1 (GPT-5.6 Terra): resúmenes más largos, finalización de código y uso sencillo de herramientas — también céntimos, pero mejor con contextos largos
- Nivel 2 (Sonnet 5): razonamiento real, agentes de varios pasos y tareas de visión — el caballo de batalla de producción
- Nivel 3 (Opus 4.7): solo cuando haya confirmado que Sonnet no lo resuelve correctamente
3. Límites de salida: limite lo que generan, no solo lo que leen
Los tokens de salida suelen costar entre 4 y 5 veces más que los de entrada. Un valor predeterminado flexible de max_tokens=4096 invita al modelo a divagar. Limite de forma agresiva y utilice secuencias de parada para cortar en el marcador correcto:
# Two-layer caps: per-call max_tokens + per-key wallet cap
client.chat.completions.create(
model="claude-sonnet-5",
messages=[...],
max_tokens=800, # cap each call
stop=["</answer>"], # cut at terminator
)
# /app/keys → set "Spending limit" per key:
# Production: $50/day · Experiment: $5/day · CI: $1/dayCombine el max_tokens por llamada con un tope de gasto de cartera por clave en /app/keys: un bucle descontrolado o un error no puede superar su límite diario. Dos capas, ambas importantes.
4. Paralelismo: para cargas de trabajo con forma de lote
Si procesas 1.000 elementos independientes (clasificar comentarios, puntuar leads, generar descripciones), las llamadas seriales tardan una hora. El procesamiento asíncrono con AsyncOpenAI y un límite de concurrencia te permite terminar en menos de un minuto, y los tiempos de espera más estrictos te permiten fallar rápidamente ante proveedores ascendentes lentos. El paralelismo no reduce el coste por token, pero habilita patrones arquitectónicos (procesamiento idempotente, presupuestos de reintentos más estrictos) que sí lo hacen.
5. Higiene de los reintentos: no pagues por reintentos descontrolados
El código ingenuo reintenta ante cualquier error, incluidos los 400. Eso significa pagar por los fallos (las solicitudes 4xx en Kunavo no se facturan, pero aun así consumes presupuesto del límite de velocidad y tiempo de reloj). Política correcta: reintentar solo ante 408/429/5xx, con retroceso exponencial y jitter, un máximo de 5 intentos y 30 segundos de espera total. Ante cualquier otra cosa, falla rápidamente y muestra el error.
Cómo se ven los ahorros en la práctica
Ahorros medidos realistas en un SaaS que usa Kunavo con un gasto de 5.000 $/mes:
- Caché de prompts añadida: 2.000 $ ahorrados (−40 %)
- Uso de Haiku como nivel de modelo para tareas de clasificación: 800 $ ahorrados (−16 %)
max_tokensmás estrictos: 400 $ ahorrados (−8 %)- Combinado: 3.200 $ ahorrados al mes, 1.800 $ gastados (−64 % en total)
Estos efectos se acumulan: cada técnica siguiente funciona sobre la base ya reducida. Sin aplicar primero la caché, las demás ahorran menos. El orden importa: empieza por la n.º 1, después la n.º 2 y luego la n.º 3.
Lo que no funciona como se anuncia
- «Embeddings para todo»: los embeddings ahorran en las búsquedas de texto, no en la generación. Son baratos, pero no reducen el coste de las llamadas al LLM
- «Ajustes finos locales para reducir costes»: solo se justifican si procesas 10 millones de tokens al día o más en una tarea específica. Para la mayoría de los equipos, la caché de prompts y el uso de Haiku como nivel de modelo compensan más que asumir la complejidad operativa del alojamiento propio
- «Agregadores más baratos»: Kunavo ya ofrece la mayoría de los modelos por debajo de la tarifa oficial del proveedor. Los agregadores más baratos suelen ganar sustituyendo silenciosamente el modelo solicitado por uno más barato
Próximos pasos
Aplica primero la caché: ofrece el mayor ROI por hora invertida. Después, instrumenta el desglose de tu panel /app/usage por modelo y nivel. Luego, aplica niveles. Realiza un seguimiento del coste mensual por usuario activo como métrica principal: si se mantiene estable o disminuye mientras crece la participación, estás ganando.
Preguntas frecuentes
¿Cuánto puede reducir la caché de indicaciones la factura de un LLM?
Anthropic factura la entrada almacenada en caché a 10% de la tarifa normal de entrada (2.5% on Claude Fable 5.1, 5% on Claude Opus 5.5), y OpenAI aplica automáticamente el equivalente a 10%. En una carga de trabajo con una indicación de sistema grande y estable, eso supone un descuento del 60–90 % en la línea de coste de entrada. Aplíquelo primero: todas las técnicas posteriores trabajarán sobre una base reducida. Consulte el análisis detallado de la caché de indicaciones para conocer la forma exacta de la solicitud.
¿Cuánto más barato es Claude Haiku que Claude Opus?
Claude Haiku 4.5 cuesta aproximadamente el 10 % de Claude Opus 4.7, es decir, unas 10 veces menos. Para clasificación, extracción, traducción y resúmenes breves, Haiku es suficiente; reserve Opus para razonamientos que haya confirmado que Claude Sonnet 5 resuelve incorrectamente. Las tarifas actuales por modelo aparecen en la guía de precios de la API de Claude.
¿Los tokens de salida son más caros que los de entrada?
Sí: los tokens de salida suelen costar entre 4 y 5 veces más que los de entrada. Por eso un valor predeterminado flexible de max_tokens=4096 resulta caro: invita al modelo a divagar en la línea más costosa de la factura. Limite max_tokens por llamada y utilice secuencias de parada para cortar en el marcador correcto.
¿Cuánto puede reducir realmente una factura de LLM en total?
Combinar tres de las cinco técnicas puede lograr razonablemente una reducción del 70 % sin pérdida de calidad, y utilizar las cinco acerca el resultado al 85–90 %. En una carga de trabajo medida de 5,000 $/mes: la caché de indicaciones ahorró 2,000 $ (−40 %), la asignación al nivel Haiku para clasificación ahorró 800 $ (−16 %) y unos límites max_tokens más estrictos ahorraron 400 $ (−8 %): 3,200 $ ahorrados, 1,800 $ gastados, una reducción total del 64 %.
¿Cuál es la política correcta de reintentos para las llamadas a la API de LLM?
Reintente solo las respuestas 408, 429 y 5xx, con retroceso exponencial más fluctuación aleatoria, limitado a 5 intentos y 30 segundos de espera total. Falle rápidamente en todos los demás casos. Reintentar un 400 nunca funciona y, aunque las solicitudes 4xx fallidas no se facturan en Kunavo, consumen presupuesto del límite de velocidad y tiempo real.