Hay una línea de código que redució mi factura de Claude API en un 78% de un mes para otro. Se llama cache_control. La mayoría de la gente que usa la API de Anthropic no la está usando. Esto es un error.

Qué es el prompt caching

Cuando haces una llamada a Claude API, pagas por cada token que procesa el modelo — tanto los del prompt como los de la respuesta. Si tienes un system prompt de 2000 tokens que envías en cada request, estás pagando esos 2000 tokens cada vez.

El prompt caching cambia eso. Marcas partes del prompt como cacheables, y Anthropic las almacena en su infraestructura durante 5 minutos. Las peticiones posteriores que usen esa parte cacheada cuestan aproximadamente un 90% menos por ese segmento.

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "Eres un asistente experto en código TypeScript...",
            "cache_control": {"type": "ephemeral"}
        }
    ],
    messages=[{"role": "user", "content": "Explica los generics"}]
)

El campo cache_control con type: "ephemeral" le dice a Anthropic: “cachea todo lo que va antes de este punto”.

Cuándo tiene sentido usarlo

El caching es más efectivo cuando tienes:

System prompts largos y estables. Un system prompt que define el comportamiento del agente, incluye documentación, o proporciona contexto extenso. Si tu system prompt tiene más de 500 tokens y no cambia entre requests, cachealo.

Documentos o código de referencia. Si estás haciendo Q&A sobre un documento, análisis de código, o cualquier tarea que requiera contexto fijo, ese contexto debería estar cacheado.

Conversaciones largas. Los mensajes anteriores de una conversación pueden cachearse para ahorrar en el re-procesamiento del historial.

El caching NO ayuda si tus prompts cambian constantemente o son cortos (menos de 1024 tokens para Sonnet — ese es el mínimo de tokens para que el cache tenga efecto).

Los números reales

En un proyecto donde usaba Claude para analizar código en un repo, tenía un system prompt de ~3000 tokens que incluía convenciones del proyecto. Sin cache: ~$0.18 por request (solo el system prompt). Con cache: $0.018 en el primer request, $0.003 en los siguientes.

Para 500 requests al día, eso pasa de $90/día a $1.50/día en el coste del system prompt. El ahorro se paga solo en horas.

Un detalle importante

El cache dura 5 minutos. Si hay un gap de más de 5 minutos entre requests que usen el mismo cache, el siguiente request pagará el precio completo y refrescará el cache. Esto importa si tienes workloads intermitentes.

Para verificar si el cache está funcionando, mira la respuesta de la API — el campo usage incluye cache_creation_input_tokens y cache_read_input_tokens. Si cache_read_input_tokens > 0, el cache está activo.

Implementarlo tarda menos de 10 minutos. No hay razón para no hacerlo.