Caché de Prompts
Técnica que almacena el cómputo interno de prefijos de prompt reutilizados entre llamadas a LLMs, reduciendo costos hasta un 90% y latencia hasta un 85% en aplicaciones con contexto repetitivo.
¿Qué es?
El caché de prompts es una optimización ofrecida por proveedores de LLMs que almacena el cómputo interno (los estados de atención) de prefijos de prompt que se repiten entre llamadas a la API. En lugar de reprocesar miles de tokens idénticos en cada request, el modelo reutiliza el cómputo previo y solo procesa los tokens nuevos.
A diferencia del caché tradicional en software — que almacena salidas como respuestas HTTP o resultados de consultas — el caché de prompts almacena entradas procesadas, porque las salidas de un LLM son dinámicas y varían con cada generación.
¿Cómo funciona?
El proceso sigue tres pasos:
- Primera llamada: el proveedor procesa el prompt completo y almacena el estado interno del prefijo
- Llamadas subsecuentes: el sistema detecta que el prefijo coincide con uno almacenado y reutiliza el cómputo
- Solo lo nuevo: el modelo procesa únicamente los tokens que difieren del prefijo cacheado
El caché tiene una ventana de tiempo limitada — típicamente entre 5 y 10 minutos de inactividad antes de expirar.
Implementaciones por proveedor
| Proveedor | Tipo | Mínimo de tokens | Descuento | Latencia |
|---|---|---|---|---|
| Anthropic (Claude) | Explícito — requiere marcar bloques con cache_control | 1.024 | 90% en tokens cacheados | Hasta 85% menos |
| OpenAI (GPT-4o, o1) | Automático — sin cambios de código | 1.024 | 50% en tokens cacheados | Reducción variable |
| Google (Gemini) | Explícito — requiere configuración manual | Variable | Hasta 75% | Variable |
| DeepSeek | Automático | 1.024 | Hasta 90% | Variable |
Ejemplo con Anthropic
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system=[{
"type": "text",
"text": documento_largo, # Miles de tokens
"cache_control": {"type": "ephemeral"}
}],
messages=[{"role": "user", "content": pregunta}]
)El bloque marcado con cache_control se almacena tras la primera llamada. Las siguientes llamadas con el mismo prefijo pagan solo el precio de lectura de caché.
¿Cuándo usarlo?
El caché de prompts es más efectivo cuando:
- Documentos largos como contexto: análisis repetido del mismo documento con diferentes preguntas
- System prompts extensos: instrucciones complejas que se repiten en cada llamada
- Conversaciones con historial: el historial crece pero el prefijo se mantiene
- Few-shot learning: los mismos ejemplos se envían en cada request
- Agentes con herramientas: la definición de herramientas se repite en cada iteración del loop
Consideraciones
- Orden importa: el caché funciona por coincidencia de prefijo — cambiar el orden de los bloques invalida el caché
- Costo de escritura: la primera escritura al caché puede costar más que un request normal (25% más en Anthropic)
- Ventana de expiración: el caché expira tras minutos de inactividad
- No es semántico: requiere coincidencia exacta de tokens, no similitud de significado
¿Por qué importa?
En aplicaciones de IA con contexto repetitivo — agentes, RAG, análisis de documentos — el costo de tokens de entrada domina la factura. El caché de prompts convierte un gasto lineal en uno casi constante: el primer request paga el precio completo, pero los siguientes pagan una fracción. Para un agente que itera 10 veces con el mismo system prompt y herramientas, la diferencia puede ser de 10x en costo.
Referencias
- Prompt Caching — OpenAI Docs — Documentación oficial de OpenAI.
- Prompt Caching: Cost & Performance Analysis — Artificial Analysis. Comparativa entre proveedores.
- Prompt Caching — Anthropic — Anthropic, 2024. Implementación de prompt caching en Claude.