CONCEPTO · FUNDAMENTALS
¿Qué es prompt caching?
Prompt caching guarda el cómputo de atención (K/V) de un prefijo estable entre llamadas para no recalcularlo — baja latencia y costo, pero se invalida si cambias de modelo.
2 min de lectura · actualizado 2026-07
¿Qué es?
Prompt caching es una feature de los proveedores de LLM que evita recalcular el cómputo de atención para la parte de tu prompt que no cambia entre llamadas — típicamente el system prompt, las definiciones de tools, o los primeros turnos de una conversación larga. En vez de reprocesar todo desde cero en cada request, el proveedor reutiliza lo que ya calculó para ese prefijo.
Esto importa porque las APIs de chat son stateless: cada llamada reenvía el historial completo de la conversación. Sin caching, un agente con una conversación de 50 turnos recalcula los 49 turnos anteriores en cada mensaje nuevo — trabajo repetido que cuesta tiempo y dinero.
Modelo mental
Para generar cada token, el modelo calcula tres vectores por cada token de entrada en cada capa de atención: Query, Key y Value. El caching guarda los Key/Value ya calculados de un prefijo, para no recalcularlos si ese mismo prefijo vuelve a aparecer en una llamada posterior.
El corte de qué se cachea se marca explícitamente en el request (cache_control en la API de Anthropic). Todo lo que está antes del corte, si es idéntico token por token a una llamada anterior dentro del TTL, es un cache hit.
¿Cómo se usa?
En la API de Anthropic, se marca con un bloque cache_control al final del contenido que quieres cachear:
response = client.messages.create(
model="claude-sonnet-5",
system=[
{
"type": "text",
"text": system_prompt_largo,
"cache_control": {"type": "ephemeral"}
}
],
messages=conversation_history
)La respuesta incluye cuántos tokens fueron cache hit (cache_read_input_tokens) y cuántos se escribieron a caché por primera vez (cache_creation_input_tokens) — esos dos números son la evidencia real de que el caching está funcionando, no una suposición.
Casos típicos que se benefician:
- Conversaciones multi-turno donde el historial crece pero el system prompt no cambia.
- Harnesses con
CLAUDE.md, definiciones de tools y skills grandes, idénticos en cada llamada de la sesión. - Preguntas repetidas sobre el mismo documento largo.
¿Cuándo usarlo / cuándo no?
Se aprovecha automáticamente cuando:
- Hay un prefijo grande y estable (system prompt, tools, contexto de proyecto) que se repite llamada tras llamada.
- La conversación es larga y multi-turno.
- Corres la misma tarea varias veces seguidas contra el mismo contexto base.
No aporta nada cuando:
- Cada llamada empieza con contenido distinto desde el primer token — no hay prefijo compartido que cachear.
- Cambias de modelo a mitad de tarea: los K/V cacheados son específicos de los pesos de ese modelo, así que un modelo nuevo no puede reusarlos y recalcula todo.
- El TTL de la caché ya expiró (varía según proveedor y configuración) antes de la siguiente llamada.