Tutorial práctico · Mayo 2026

Caché de LLM: cómo ahorrar hasta 90% en facturas de IA con prompt caching

Llevas todo el día hablando con un modelo de IA. Probablemente haya leído el mismo prompt de sistema, el mismo manual de producto y la misma definición de herramientas decenas de veces. ¿Eso significa que has quemado tokens decenas de veces? Aquí está el mecanismo más importante de los modelos modernos: la entrada que se repite no necesita volver a calcularse. Si lo configuras bien, tu factura puede caer hasta un 90%.

✓ Comparativa de OpenAI, Claude, Gemini, DeepSeek ✓ Cálculo real de ahorro ✓ 5 errores que evitar en producción

El caché que ya has usado sin saberlo

Abres una página web. La primera vez tarda. La segunda vez carga en un segundo. La razón es simple: el navegador guardó las imágenes, los scripts y los estilos en una caché local, y la próxima vez no necesita pedirlos al servidor.

El caché de los modelos de lenguaje funciona con la misma lógica, pero con una diferencia importante. Mientras la caché del navegador guarda archivos, la del LLM guarda el «estado de cálculo» que el modelo dejó después de leer la primera parte de tu input. Más exactamente: muchos proveedores guardan los resultados intermedios de las matrices key y value de las capas de atención. Por eso en la industria se le llama KV cache.

Este mecanismo permite que, cuando el modelo ya ha leído un bloque grande de contenido fijo, la siguiente vez que vea el mismo inicio pueda saltarse buena parte del trabajo.

Prefill y decode: dónde se gasta realmente tu dinero

Cuando el modelo recibe tu pregunta, pasa por dos fases bien diferenciadas.

La primera se llama prefill. Puedes pensar en ella como «leer todo lo que le pasaste». El modelo escanea tu prompt de sistema, el historial de la conversación, los documentos adjuntos y las definiciones de herramientas, y calcula las relaciones entre todos esos tokens. Cuanto más largo es el input, más caro es este paso.

La segunda se llama decode. Es «escribir hacia fuera». Apoyándose en el estado calculado por el prefill, el modelo genera la respuesta token por token.

El insight clave: en aplicaciones con input largo y respuesta corta, casi todo el coste se va antes de que el modelo abra la boca. Casos típicos: bots de atención al cliente, RAG, análisis de bases de código, agentes con muchas herramientas. En estos escenarios, el bloque fijo puede ocupar entre miles y cientos de miles de tokens, mientras que la pregunta nueva del usuario son dos líneas.

El prompt caching ataca exactamente esa primera mitad. La primera petición lee el contenido fijo y lo guarda en caché. La segunda petición, si comparte el mismo inicio, reutiliza ese estado y solo procesa lo que ha cambiado.

Importante: el caché no hace que el modelo «recuerde la respuesta», ni te ahorra tokens de salida. Solo te ahorra el coste de releer la entrada repetida.

Por qué un solo espacio puede romper todo el caché

Esta es la parte más contraintuitiva del prompt caching:

El sistema mira si el prefijo es exactamente igual byte por byte, no si el significado es parecido.

Compara estas dos peticiones:

Eres un asistente de cocina. Dime qué cenar.
Eres un asistente de cocina. Dime qué comer.

La primera mitad es idéntica. El modelo tiene la oportunidad de reutilizar el bloque «Eres un asistente de cocina.».

Ahora compara estas otras dos:

¿Qué cenar? Eres un asistente de cocina.
¿Qué comer? Eres un asistente de cocina.

La primera palabra ya es distinta. Aunque el rol del asistente sea exactamente el mismo, el caché casi nunca va a acertar.

Lo mismo pasa con JSON. Cambiar el orden de los campos, los saltos de línea o los espacios produce, desde el punto de vista del modelo, una entrada distinta. El sistema no entiende «más o menos lo mismo»: solo entiende «exactamente igual».

De ahí sale la regla más importante de todo este artículo:

Lo que no cambia, va al principio. Lo que cambia, va al final.

Cómo ordenar tu prompt para maximizar el caché

Si estás construyendo una aplicación con LLMs, este es el orden recomendado al ensamblar tu prompt:

  1. Instrucciones de sistema. Rol, límites, formato de respuesta, estilo. Suelen ser estables.
  2. Definición de herramientas. Qué herramientas puede llamar el agente y los parámetros de cada una. Estos bloques suelen ser muy largos y se incluyen en cada petición, así que son perfectos para cachear.
  3. Base de conocimiento y documentos largos. Manuales de producto, contratos, fragmentos de código, materiales recuperados. Solo cachean bien si entre peticiones son realmente iguales.
  4. Historial de conversación. Lo que ya ha pasado no cambia. Cuanto más larga sea la conversación, más valor tiene cachear.
  5. Lo que solo cambia ahora. La pregunta del usuario, la hora actual, el ID del usuario, parámetros de A/B test, permisos temporales.

Un fallo clásico que se ve en producción: alguien escribe en la primera línea del system prompt:

Ahora son las 15:30 del 4 de mayo de 2026.

Un minuto después se convierte en 15:31. Todo el prefijo cambia. Los miles de tokens que venían detrás se quedan sin caché.

Cómo activar caché en cada proveedor: OpenAI, Claude, Gemini, DeepSeek

La idea de fondo es la misma en todos. Las diferencias están en cómo se activa, el umbral mínimo y cuánto dura. Esta tabla resume el estado en mayo de 2026:

ProveedorCómo se activaUmbral mínimoAhorro al acertarTiempo de retención
OpenAIAutomático1024 tokens, sube de 128 en 128~10% del precio base en GPT-5; algo más en modelos antiguos5–10 min sin actividad; 24 h opcional en algunos modelos
ClaudeManual: añadir cache_control en bloques reutilizables1024 o 2048 tokens según modeloLectura ~10% del precio de input; escritura ligeramente más cara5 min por defecto; 1 h opcional
GeminiImplícito automático; explícito manualFlash: 1024 · Pro: 4096Implícito: ahorro automático. Explícito: precio según plataformaExplícito: 1 h por defecto, TTL configurable
DeepSeekAutomáticoReglas de prefijo internas, sin configuración manualPrecio de hit notablemente menor que el de miss; facturación separadaCaché en disco, best-effort, horas a días

OpenAI es el más cómodo. No tienes que tocar el código: basta con que tu prompt supere el umbral y mantenga el mismo prefijo. Lo que tienes que mirar en la respuesta es el campo cached_tokens.

En Claude Code no necesitas preocuparte: la herramienta gestiona el caché por ti. Pero si llamas a la API de Claude directamente, tienes que añadir cache_control en los bloques de herramientas, system o mensajes para marcar dónde acaba el contenido reutilizable. El sistema busca, hacia atrás desde ese punto, el prefijo más largo que pueda reutilizar. Tienes más control, pero requiere diseño cuidadoso. Los campos a vigilar son cache_creation_input_tokens y cache_read_input_tokens.

Gemini ofrece dos modos. El caché implícito funciona como el de OpenAI: automático. El caché explícito es distinto: tú creas un objeto de caché con un bloque grande de material y luego lo referencias en cada llamada. Es ideal para «un material, muchas preguntas», pero el almacenamiento tiene coste.

DeepSeek destaca por usar caché en disco activado por defecto. No hace falta cambiar la interfaz. La respuesta incluye prompt_cache_hit_tokens y prompt_cache_miss_tokens. Es best-effort: no garantiza acertar siempre, y construir la caché tarda un poco la primera vez.

Cuánto puedes ahorrar realmente: cálculo paso a paso

Imagina que estás construyendo un bot de atención al cliente. Cada petición incluye 5.000 tokens fijos entre system prompt y manual de producto. La pregunta media del usuario son 200 tokens. La respuesta media son 300 tokens. Procesas 10.000 peticiones al día.

Sin caché, los tokens de input son:

(5.000 + 200) × 10.000 = 52 millones de tokens al día

Con un precio normal de input de 2,50 USD por millón de tokens y output de 15 USD por millón:

Con caché activado, supongamos que de los 5.000 tokens fijos, 4.500 aciertan caché. El precio del caché es aproximadamente el 10% del precio normal:

Hits de caché: 4.500 × 10.000 = 45 millones de tokens
Input a precio completo: (500 + 200) × 10.000 = 7 millones
Output: 300 × 10.000 = 3 millones

Ahorro diario: aproximadamente 100 USD. Casi la mitad de la factura, sin tocar la calidad de la respuesta.

La regla de fondo no cambia: cuanto más largo el input, más alta la repetición y más corta la respuesta, más vale el caché. Si tu modelo escribe textos largos a partir de un input pequeño, el ahorro relativo es mucho menor, porque el output sigue costando lo mismo.

Qué casos de uso son los más adecuados

Caché semántico: el primo más arriesgado

El prompt caching mira los caracteres exactos. Un signo de puntuación distinto rompe la coincidencia. El caché semántico juega un partido diferente: compara significados.

Imagina que el usuario A pregunta:

¿Cuál es vuestra política de devoluciones?

Y el usuario B pregunta:

Compré algo por error, ¿cómo lo devuelvo?

El caché semántico evalúa si las dos preguntas tratan del mismo tema. Si la similitud es lo bastante alta, devuelve la respuesta anterior sin volver a llamar al modelo.

Esto se implementa en la capa de aplicación, no en el modelo. La forma habitual: meter las preguntas y respuestas históricas en una base de datos vectorial; cuando llega una pregunta nueva, buscar las más parecidas; si la similitud supera un umbral, devolver la respuesta cacheada.

Los dos cachés se combinan bien:

Pero el caché semántico tiene un riesgo serio. Parecido no es igual. En contextos como devoluciones, contratos, salud o finanzas, una falsa coincidencia destruye la confianza del usuario. El umbral debe ser muy conservador, y para preguntas críticas conviene siempre dejar que el modelo responda de cero.

Los 5 errores más comunes en producción

  1. Poner timestamps, IDs o aleatorios al principio del prompt.

    Cualquier variable que cambia en cada petición rompe el caché si se sitúa al inicio. Es un fallo silencioso: la factura sube y nadie sabe por qué.

  2. Serializar JSON de forma inestable.

    La misma configuración con otro orden de campos es, para el modelo, otro input distinto. Asegúrate de serializar siempre con orden fijo y la misma indentación.

  3. Meter la personalización del usuario en lo alto del system prompt.

    Algo como «Estás atendiendo a Juan, le gustan respuestas cortas» al principio significa que cada usuario genera su propio prefijo único. Mejor: deja las reglas globales arriba y mete el perfil del usuario al final.

  4. Mirar solo el total de tokens y no los campos de caché.

    Cada proveedor lo expone con un nombre distinto: OpenAI usa cached_tokens, Claude usa cache_read_input_tokens, Gemini lo entrega dentro de usage_metadata, DeepSeek usa prompt_cache_hit_tokens. Sin mirar estos campos no sabes si tu caché está funcionando.

  5. Pensar que el caché cambia la calidad de la respuesta.

    El prompt caching no hace al modelo más listo ni a las respuestas más estables. Solo reutiliza el cálculo del prefijo. La salida sigue generándose en el momento, y la temperatura, el sampling y el contexto siguen influyendo igual.

Cómo verificar si tu caché está funcionando

Esta es la parte que más gente se salta. Sin verificar, no sabes si lo que crees que ahorras es real:

  1. Lee siempre los campos de caché de la respuesta API. Son la verdad. Si los hits son cero después de varias peticiones similares, hay algo en tu prompt que cambia silenciosamente.
  2. Diff entre dos prompts consecutivos. Antes de quejarte de que el caché no funciona, haz un diff exacto entre dos peticiones supuestamente idénticas. Lo más probable es que haya un timestamp, un ID o un espacio escondido que cambia.
  3. Mide la latencia, no solo el coste. Cuando el caché acierta, el primer token suele llegar mucho más rápido. Si tu p50 de TTFT (time to first token) baja, es señal de que el caché está funcionando.
  4. Vigila la tasa hit/miss en producción. Si tu hit rate es menor del 50% en aplicaciones con prefijo estable, casi seguro tienes un bug en cómo construyes el prompt.

TL;DR: una regla, mucho ahorro

Lo que no cambia, va al principio. Lo que cambia, va al final.

Si haces bien esta única cosa, el caché de los modelos de lenguaje tiene la oportunidad de ahorrarte hasta el 90% de la factura de input. No te hace más inteligente, no cambia la calidad de la respuesta, y no es magia. Es solo evitar que el modelo vuelva a hacer trabajo que ya hizo antes.

En aplicaciones reales —agentes, RAG, atención al cliente, asistentes— ese ahorro suele ser la diferencia entre un producto rentable y uno que no escala. Vale el rato que cuesta hacerlo bien.

Recursos oficiales

Aprende a usar Claude Code para construir agentes con caché

Si estás creando un agente con Claude Code, no necesitas configurar el caché manualmente: la propia herramienta lo gestiona por ti. Pero conocer cómo funciona te ayuda a estructurar tus prompts y proyectos para que el ahorro sea real.

Ver la guía completa de Claude Code