Conceptos

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.

seed#prompt-caching#llm#cost-reduction#latency#anthropic#openai#optimization

¿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:

  1. Primera llamada: el proveedor procesa el prompt completo y almacena el estado interno del prefijo
  2. Llamadas subsecuentes: el sistema detecta que el prefijo coincide con uno almacenado y reutiliza el cómputo
  3. 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

ProveedorTipoMínimo de tokensDescuentoLatencia
Anthropic (Claude)Explícito — requiere marcar bloques con cache_control1.02490% en tokens cacheadosHasta 85% menos
OpenAI (GPT-4o, o1)Automático — sin cambios de código1.02450% en tokens cacheadosReducción variable
Google (Gemini)Explícito — requiere configuración manualVariableHasta 75%Variable
DeepSeekAutomático1.024Hasta 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

Conceptos