Una cuenta de costos de LLM en producción mal gobernada se multiplica por 10 en un trimestre. Proyecto real de chatbot de soporte: $800/mes se volvieron $8k en tres meses, con tráfico estable. Cada request caía en el modelo más caro del catálogo, sin cache y sin ruta. Tres palancas bajaron la factura a $2.4k con igual calidad en los evals: model routing, prompt caching y batching.

Model routing: el modelo correcto para cada request

Los modelos frontier cuestan hasta 50x más por token que los modelos pequeños. Un modelo de clase GPT-4 cobra $3-15 por millón de tokens de output; Claude Haiku o Gemini Flash cobran centavos. La mayor parte del tráfico de producción es lookup simple, clasificación o extracción corta, y esas tareas corren bien en modelo pequeño.

El router puede ser burro a propósito: reglas de regex para intents obvias y un clasificador minúsculo para el resto. El request simple va al modelo barato; el razonamiento complejo escala al tier caro. En los proyectos que medí, el routing solo cortó 40-70% del costo.

Prompt caching: deja de pagar precio completo dos veces

Anthropic y OpenAI venden prefijo en cache con descuento agresivo sobre el input. Haz front-load de todo lo estable: system prompts largos, few-shot examples, definiciones de tools. Si 80% del prompt se repite entre llamadas, el precio completo queda solo en la punta variable.

  • El orden importa: el prefijo compartido debe coincidir byte a byte hasta la parte variable
  • Marca bloques cacheables con cache_control en la API de Anthropic
  • El cache expira en minutos (5-60 según el proveedor); el tráfico constante lo mantiene caliente

Semantic caching: reaprovecha respuestas enteras

Un nivel arriba del prompt caching vive el cache semántico. Embedea la query nueva, compárala por similitud de coseno con queries pasadas y sirve la respuesta guardada por encima del threshold (0.95 suele ser seguro). Redis con vector search o pgvector implementan esto en una tarde.

Dos reglas duras: TTL por tipo de conocimiento, con invalidación en cada actualización de datos. Y nada de cachear respuesta personalizada o con contexto de sesión; el escape de dato entre usuarios transforma economía en incidente de seguridad.

Batch endpoints para lo asíncrono

Sumarización, enriquecimiento de CRM, backfill de embeddings: nada de eso necesita respuesta en segundos. Las APIs batch (OpenAI Batch API, Anthropic Message Batches) cobran cerca de 50% menos a cambio de una ventana de conclusión de hasta 24h. Migrar jobs nocturnos a batch fue la victoria más barata del proyecto.

Observabilidad de spend

El costo invisible crece sin freno. Registra tokens por feature y por cohorte, con alerta de anomalía en horas, no en días. Alguien siempre encuentra el endpoint quemando dinero; la duda es si el hallazgo sale del dashboard o de la factura.

Resultado final del chatbot: routing, caching y batching llevaron la cuenta de $8k a $2.4k mensuales, con score de evals estable. La gobernanza de costo de LLM es trabajo de ingeniería continuo, con hoja de cálculo abierta al lado del Grafana.