Loading...
    • Guía para desarrolladores
    • Referencia de API
    • MCP
    • Recursos
    • Notas de la versión
    Search...
    ⌘K
    Primeros pasos
    Introducción a ClaudeInicio rápido
    Modelos y precios
    Descripción general de modelosElegir un modeloNovedades en Claude 4.5Migración a Claude 4.5Deprecación de modelosPrecios
    Construir con Claude
    Descripción general de característicasUsar la API de MessagesVentanas de contextoMejores prácticas de prompting
    Capacidades
    Almacenamiento en caché de promptsEdición de contextoPensamiento extendidoEsfuerzoStreaming de MessagesProcesamiento por lotesCitasSoporte multilingüeConteo de tokensEmbeddingsVisiónSoporte de PDFAPI de FilesResultados de búsquedaSalidas estructuradasComplemento de Google Sheets
    Herramientas
    Descripción generalCómo implementar el uso de herramientasUso eficiente de herramientas en tokensStreaming de herramientas de grano finoHerramienta BashHerramienta de ejecución de códigoLlamada de herramientas programáticaHerramienta de uso de computadoraHerramienta de editor de textoHerramienta de obtención webHerramienta de búsqueda webHerramienta de memoriaHerramienta de búsqueda de herramientas
    Habilidades del agente
    Descripción generalInicio rápidoMejores prácticasUsar habilidades con la API
    SDK del agente
    Descripción generalSDK de TypeScriptSDK de PythonGuía de migración
    Guías
    Entrada de streamingManejo de permisosGestión de sesionesSalidas estructuradas en el SDKAlojamiento del SDK del agenteModificar prompts del sistemaMCP en el SDKHerramientas personalizadasSubagenetes en el SDKComandos de barra en el SDKHabilidades del agente en el SDKSeguimiento de costos y usoListas de tareasComplementos en el SDK
    MCP en la API
    Conector MCPServidores MCP remotos
    Claude en plataformas de terceros
    Amazon BedrockMicrosoft FoundryVertex AI
    Ingeniería de prompts
    Descripción generalGenerador de promptsUsar plantillas de promptsMejorador de promptsSer claro y directoUsar ejemplos (prompting multishot)Dejar que Claude piense (CoT)Usar etiquetas XMLDar un rol a Claude (prompts del sistema)Rellenar la respuesta de ClaudeEncadenar prompts complejosConsejos de contexto largoConsejos de pensamiento extendido
    Probar y evaluar
    Definir criterios de éxitoDesarrollar casos de pruebaUsar la herramienta de evaluaciónReducir latencia
    Fortalecer protecciones
    Reducir alucinacionesAumentar consistencia de salidaMitigar ataques de jailbreakRechazos de streamingReducir fuga de promptsMantener a Claude en personaje
    Administración y monitoreo
    Descripción general de Admin APIAPI de uso y costosAPI de análisis de Claude Code
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Capacidades

    Almacenamiento en caché de indicaciones

    Almacenamiento en caché de indicaciones

    El almacenamiento en caché de indicaciones es una característica poderosa que optimiza el uso de tu API permitiendo reanudar desde prefijos específicos en tus indicaciones. Este enfoque reduce significativamente el tiempo de procesamiento y los costos para tareas repetitivas o indicaciones con elementos consistentes.

    Aquí hay un ejemplo de cómo implementar el almacenamiento en caché de indicaciones con la API de Mensajes usando un bloque cache_control:

    • Cómo funciona el almacenamiento en caché de indicaciones
    • Precios
    • Cómo funciona el almacenamiento en caché de indicaciones
    • Precios
    • Cómo implementar el almacenamiento en caché de indicaciones
    • Cómo funciona el almacenamiento en caché de indicaciones
    • Precios
    • Cómo implementar el almacenamiento en caché de indicaciones
    • Modelos compatibles
    • Cómo funciona el almacenamiento en caché de indicaciones
    • Precios
    • Cómo implementar el almacenamiento en caché de indicaciones
    • Modelos compatibles
    • Estructurando tu indicación
    • Limitaciones de caché
    • Limitaciones de caché
    • Entendiendo los costos de los puntos de ruptura de caché
    • Limitaciones de caché
    • Entendiendo los costos de los puntos de ruptura de caché
    • Qué se puede almacenar en caché
    • Limitaciones de caché
    • Entendiendo los costos de los puntos de ruptura de caché
    • Qué no se puede almacenar en caché
    • Limitaciones de caché
    • Entendiendo los costos de los puntos de ruptura de caché
    • Qué no se puede almacenar en caché
    • Qué invalida el caché
    • Limitaciones de caché
    • Entendiendo los costos de los puntos de ruptura de caché
    • Qué se puede almacenar en caché
    • Qué no se puede almacenar en caché
    • Qué invalida el caché
    • Rastreando el rendimiento del caché
    • Limitaciones de caché
    • Comprensión de los costos de puntos de ruptura de caché
    • Qué se puede almacenar en caché
    • Qué no se puede almacenar en caché
    • Qué invalida el caché
    • Seguimiento del rendimiento del caché
    • Mejores prácticas para un almacenamiento en caché efectivo
    • Optimización para diferentes casos de uso
    • Optimización para diferentes casos de uso
    • Solución de problemas comunes
    • Almacenamiento en caché con bloques de pensamiento
    • Almacenamiento y compartición de caché
    • Optimización para diferentes casos de uso
    • Solución de problemas comunes
    • Almacenamiento en caché con bloques de pensamiento
    • Almacenamiento y compartición de caché
    • Duración de caché de 1 hora
    • Optimización para diferentes casos de uso
    • Solución de problemas comunes
    • Almacenamiento en caché con bloques de pensamiento
    • Almacenamiento y compartición de caché
    • Duración de caché de 1 hora
    • Cuándo usar el caché de 1 hora
    • Optimización para diferentes casos de uso
    • Solución de problemas comunes
    • Almacenamiento en caché con bloques de pensamiento
    • Almacenamiento y compartición del caché
    • Duración del caché de 1 hora
    • Cuándo usar el caché de 1 hora
    • Mezcla de diferentes TTLs
    • Ejemplos de almacenamiento en caché de prompts
    • Preguntas frecuentes
    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    En este ejemplo, todo el texto de "Pride and Prejudice" se almacena en caché usando el parámetro cache_control. Esto permite reutilizar este texto grande en múltiples llamadas a la API sin reprocesarlo cada vez. Cambiar solo el mensaje del usuario te permite hacer varias preguntas sobre el libro mientras utilizas el contenido almacenado en caché, lo que resulta en respuestas más rápidas y una eficiencia mejorada.


    El almacenamiento en caché de indicaciones es una característica poderosa que optimiza el uso de tu API permitiendo reanudar desde prefijos específicos en tus indicaciones. Este enfoque reduce significativamente el tiempo de procesamiento y los costos para tareas repetitivas o indicaciones con elementos consistentes.

    Aquí hay un ejemplo de cómo implementar el almacenamiento en caché de indicaciones con la API de Mensajes usando un bloque cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    En este ejemplo, todo el texto de "Pride and Prejudice" se almacena en caché usando el parámetro cache_control. Esto permite reutilizar este texto grande en múltiples llamadas a la API sin reprocesarlo cada vez. Cambiar solo el mensaje del usuario te permite hacer varias preguntas sobre el libro mientras utilizas el contenido almacenado en caché, lo que resulta en respuestas más rápidas y una eficiencia mejorada.


    Cómo funciona el almacenamiento en caché de indicaciones

    Cuando envías una solicitud con el almacenamiento en caché de indicaciones habilitado:

    1. El sistema verifica si un prefijo de indicación, hasta un punto de ruptura de caché especificado, ya está almacenado en caché de una consulta reciente.
    2. Si se encuentra, utiliza la versión almacenada en caché, reduciendo el tiempo de procesamiento y los costos.
    3. De lo contrario, procesa la indicación completa y almacena en caché el prefijo una vez que comienza la respuesta.

    Esto es especialmente útil para:

    • Indicaciones con muchos ejemplos
    • Grandes cantidades de contexto o información de antecedentes
    • Tareas repetitivas con instrucciones consistentes
    • Conversaciones largas de múltiples turnos

    De forma predeterminada, el caché tiene una vida útil de 5 minutos. El caché se actualiza sin costo adicional cada vez que se utiliza el contenido almacenado en caché.

    Si encuentras que 5 minutos es demasiado corto, Anthropic también ofrece una duración de caché de 1 hora con costo adicional.

    Para más información, consulta duración de caché de 1 hora.

    El almacenamiento en caché de indicaciones almacena en caché el prefijo completo

    El almacenamiento en caché de indicaciones hace referencia a la indicación completa - tools, system, y messages (en ese orden) hasta e incluyendo el bloque designado con cache_control.


    Precios

    El almacenamiento en caché de indicaciones introduce una nueva estructura de precios. La tabla a continuación muestra el precio por millón de tokens para cada modelo compatible:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    La tabla anterior refleja los siguientes multiplicadores de precios para el almacenamiento en caché de indicaciones:

    • Los tokens de escritura de caché de 5 minutos son 1.25 veces el precio de tokens de entrada base
    • Los tokens de escritura de caché de 1 hora son 2 veces el precio de tokens de entrada base
    • Los tokens de lectura de caché son 0.1 veces el precio de tokens de entrada base

    El almacenamiento en caché de indicaciones es una característica poderosa que optimiza el uso de tu API permitiendo reanudar desde prefijos específicos en tus indicaciones. Este enfoque reduce significativamente el tiempo de procesamiento y los costos para tareas repetitivas o indicaciones con elementos consistentes.

    Aquí hay un ejemplo de cómo implementar el almacenamiento en caché de indicaciones con la API de Mensajes usando un bloque cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    En este ejemplo, todo el texto de "Pride and Prejudice" se almacena en caché usando el parámetro cache_control. Esto permite reutilizar este texto grande en múltiples llamadas a la API sin reprocesarlo cada vez. Cambiar solo el mensaje del usuario te permite hacer varias preguntas sobre el libro mientras utilizas el contenido almacenado en caché, lo que resulta en respuestas más rápidas y una eficiencia mejorada.


    Cómo funciona el almacenamiento en caché de indicaciones

    Cuando envías una solicitud con el almacenamiento en caché de indicaciones habilitado:

    1. El sistema verifica si un prefijo de indicación, hasta un punto de ruptura de caché especificado, ya está almacenado en caché de una consulta reciente.
    2. Si se encuentra, utiliza la versión almacenada en caché, reduciendo el tiempo de procesamiento y los costos.
    3. De lo contrario, procesa la indicación completa y almacena en caché el prefijo una vez que comienza la respuesta.

    Esto es especialmente útil para:

    • Indicaciones con muchos ejemplos
    • Grandes cantidades de contexto o información de antecedentes
    • Tareas repetitivas con instrucciones consistentes
    • Conversaciones largas de múltiples turnos

    De forma predeterminada, el caché tiene una vida útil de 5 minutos. El caché se actualiza sin costo adicional cada vez que se utiliza el contenido almacenado en caché.

    Si encuentras que 5 minutos es demasiado corto, Anthropic también ofrece una duración de caché de 1 hora con costo adicional.

    Para más información, consulta duración de caché de 1 hora.

    El almacenamiento en caché de indicaciones almacena en caché el prefijo completo

    El almacenamiento en caché de indicaciones hace referencia a la indicación completa - tools, system, y messages (en ese orden) hasta e incluyendo el bloque designado con cache_control.


    Precios

    El almacenamiento en caché de indicaciones introduce una nueva estructura de precios. La tabla a continuación muestra el precio por millón de tokens para cada modelo compatible:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    La tabla anterior refleja los siguientes multiplicadores de precios para el almacenamiento en caché de indicaciones:

    • Los tokens de escritura de caché de 5 minutos son 1.25 veces el precio de tokens de entrada base
    • Los tokens de escritura de caché de 1 hora son 2 veces el precio de tokens de entrada base
    • Los tokens de lectura de caché son 0.1 veces el precio de tokens de entrada base

    Cómo implementar el almacenamiento en caché de indicaciones

    El almacenamiento en caché de indicaciones es una característica poderosa que optimiza el uso de tu API permitiendo reanudar desde prefijos específicos en tus indicaciones. Este enfoque reduce significativamente el tiempo de procesamiento y los costos para tareas repetitivas o indicaciones con elementos consistentes.

    Aquí hay un ejemplo de cómo implementar el almacenamiento en caché de indicaciones con la API de Mensajes usando un bloque cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    En este ejemplo, todo el texto de "Pride and Prejudice" se almacena en caché usando el parámetro cache_control. Esto permite reutilizar este texto grande en múltiples llamadas a la API sin reprocesarlo cada vez. Cambiar solo el mensaje del usuario te permite hacer varias preguntas sobre el libro mientras utilizas el contenido almacenado en caché, lo que resulta en respuestas más rápidas y una eficiencia mejorada.


    Cómo funciona el almacenamiento en caché de indicaciones

    Cuando envías una solicitud con el almacenamiento en caché de indicaciones habilitado:

    1. El sistema verifica si un prefijo de indicación, hasta un punto de ruptura de caché especificado, ya está almacenado en caché de una consulta reciente.
    2. Si se encuentra, utiliza la versión almacenada en caché, reduciendo el tiempo de procesamiento y los costos.
    3. De lo contrario, procesa la indicación completa y almacena en caché el prefijo una vez que comienza la respuesta.

    Esto es especialmente útil para:

    • Indicaciones con muchos ejemplos
    • Grandes cantidades de contexto o información de antecedentes
    • Tareas repetitivas con instrucciones consistentes
    • Conversaciones largas de múltiples turnos

    De forma predeterminada, el caché tiene una vida útil de 5 minutos. El caché se actualiza sin costo adicional cada vez que se utiliza el contenido almacenado en caché.

    Si encuentras que 5 minutos es demasiado corto, Anthropic también ofrece una duración de caché de 1 hora con costo adicional.

    Para más información, consulta duración de caché de 1 hora.

    El almacenamiento en caché de indicaciones almacena en caché el prefijo completo

    El almacenamiento en caché de indicaciones hace referencia a la indicación completa - tools, system, y messages (en ese orden) hasta e incluyendo el bloque designado con cache_control.


    Precios

    El almacenamiento en caché de indicaciones introduce una nueva estructura de precios. La tabla a continuación muestra el precio por millón de tokens para cada modelo compatible:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    La tabla anterior refleja los siguientes multiplicadores de precios para el almacenamiento en caché de indicaciones:

    • Los tokens de escritura de caché de 5 minutos son 1.25 veces el precio de tokens de entrada base
    • Los tokens de escritura de caché de 1 hora son 2 veces el precio de tokens de entrada base
    • Los tokens de lectura de caché son 0.1 veces el precio de tokens de entrada base

    Cómo implementar el almacenamiento en caché de indicaciones

    Modelos compatibles

    El almacenamiento en caché de indicaciones es actualmente compatible con:

    • Claude Opus 4.5
    • Claude Opus 4.1
    • Claude Opus 4
    • Claude Sonnet 4.5
    • Claude Sonnet 4
    • Claude Sonnet 3.7
    • Claude Haiku 4.5
    • Claude Haiku 3.5
    • Claude Haiku 3
    • Claude Opus 3 (deprecated)

    El almacenamiento en caché de indicaciones es una característica poderosa que optimiza el uso de tu API permitiendo reanudar desde prefijos específicos en tus indicaciones. Este enfoque reduce significativamente el tiempo de procesamiento y los costos para tareas repetitivas o indicaciones con elementos consistentes.

    Aquí hay un ejemplo de cómo implementar el almacenamiento en caché de indicaciones con la API de Mensajes usando un bloque cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    En este ejemplo, todo el texto de "Pride and Prejudice" se almacena en caché usando el parámetro cache_control. Esto permite reutilizar este texto grande en múltiples llamadas a la API sin reprocesarlo cada vez. Cambiar solo el mensaje del usuario te permite hacer varias preguntas sobre el libro mientras utilizas el contenido almacenado en caché, lo que genera respuestas más rápidas y una eficiencia mejorada.


    Cómo funciona el almacenamiento en caché de indicaciones

    Cuando envías una solicitud con el almacenamiento en caché de indicaciones habilitado:

    1. El sistema verifica si un prefijo de indicación, hasta un punto de ruptura de caché especificado, ya está almacenado en caché de una consulta reciente.
    2. Si se encuentra, utiliza la versión almacenada en caché, reduciendo el tiempo de procesamiento y los costos.
    3. De lo contrario, procesa la indicación completa y almacena en caché el prefijo una vez que comienza la respuesta.

    Esto es especialmente útil para:

    • Indicaciones con muchos ejemplos
    • Grandes cantidades de contexto o información de antecedentes
    • Tareas repetitivas con instrucciones consistentes
    • Conversaciones largas de múltiples turnos

    Por defecto, el caché tiene una duración de 5 minutos. El caché se actualiza sin costo adicional cada vez que se utiliza el contenido almacenado en caché.

    Si encuentras que 5 minutos es demasiado corto, Anthropic también ofrece una duración de caché de 1 hora a costo adicional.

    Para más información, consulta duración de caché de 1 hora.

    El almacenamiento en caché de indicaciones almacena el prefijo completo

    El almacenamiento en caché de indicaciones hace referencia a la indicación completa - tools, system, y messages (en ese orden) hasta e incluyendo el bloque designado con cache_control.


    Precios

    El almacenamiento en caché de indicaciones introduce una nueva estructura de precios. La tabla a continuación muestra el precio por millón de tokens para cada modelo compatible:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    La tabla anterior refleja los siguientes multiplicadores de precios para el almacenamiento en caché de indicaciones:

    • Los tokens de escritura de caché de 5 minutos son 1,25 veces el precio de tokens de entrada base
    • Los tokens de escritura de caché de 1 hora son 2 veces el precio de tokens de entrada base
    • Los tokens de lectura de caché son 0,1 veces el precio de tokens de entrada base

    Cómo implementar el almacenamiento en caché de indicaciones

    Modelos compatibles

    El almacenamiento en caché de indicaciones es actualmente compatible con:

    • Claude Opus 4.5
    • Claude Opus 4.1
    • Claude Opus 4
    • Claude Sonnet 4.5
    • Claude Sonnet 4
    • Claude Sonnet 3.7
    • Claude Haiku 4.5
    • Claude Haiku 3.5
    • Claude Haiku 3
    • Claude Opus 3 (deprecated)

    Estructurando tu indicación

    Coloca contenido estático (definiciones de herramientas, instrucciones del sistema, contexto, ejemplos) al principio de tu indicación. Marca el final del contenido reutilizable para almacenamiento en caché usando el parámetro cache_control.

    Los prefijos de caché se crean en el siguiente orden: tools, system, luego messages. Este orden forma una jerarquía donde cada nivel se construye sobre los anteriores.

    Cómo funciona la verificación automática de prefijos

    Puedes usar solo un punto de ruptura de caché al final de tu contenido estático, y el sistema encontrará automáticamente la secuencia más larga de bloques almacenados en caché coincidentes. Entender cómo funciona esto te ayuda a optimizar tu estrategia de almacenamiento en caché.

    Tres principios fundamentales:

    1. Las claves de caché son acumulativas: Cuando almacenas explícitamente un bloque con cache_control, la clave hash de caché se genera hasheando todos los bloques anteriores en la conversación secuencialmente. Esto significa que el caché para cada bloque depende de todo el contenido que vino antes.

    2. Verificación secuencial hacia atrás: El sistema verifica si hay aciertos de caché trabajando hacia atrás desde tu punto de ruptura explícito, verificando cada bloque anterior en orden inverso. Esto asegura que obtengas el acierto de caché más largo posible.

    3. Ventana de búsqueda hacia atrás de 20 bloques: El sistema solo verifica hasta 20 bloques antes de cada punto de ruptura cache_control explícito. Después de verificar 20 bloques sin encontrar una coincidencia, deja de verificar y se mueve al siguiente punto de ruptura explícito (si existe).

    Ejemplo: Entendiendo la ventana de búsqueda hacia atrás

    Considera una conversación con 30 bloques de contenido donde estableces cache_control solo en el bloque 30:

    • Si envías el bloque 31 sin cambios en bloques anteriores: El sistema verifica el bloque 30 (¡coincidencia!). Obtienes un acierto de caché en el bloque 30, y solo el bloque 31 necesita procesamiento.

    • Si modificas el bloque 25 y envías el bloque 31: El sistema verifica hacia atrás desde el bloque 30 → 29 → 28... → 25 (sin coincidencia) → 24 (¡coincidencia!). Dado que el bloque 24 no ha cambiado, obtienes un acierto de caché en el bloque 24, y solo los bloques 25-30 necesitan reprocesamiento.

    • Si modificas el bloque 5 y envías el bloque 31: El sistema verifica hacia atrás desde el bloque 30 → 29 → 28... → 11 (verificación #20). Después de 20 verificaciones sin encontrar una coincidencia, deja de buscar. Dado que el bloque 5 está más allá de la ventana de 20 bloques, no ocurre un acierto de caché y todos los bloques necesitan reprocesamiento. Sin embargo, si hubieras establecido un punto de ruptura cache_control explícito en el bloque 5, el sistema continuaría verificando desde ese punto de ruptura: bloque 5 (sin coincidencia) → bloque 4 (¡coincidencia!). Esto permite un acierto de caché en el bloque 4, demostrando por qué deberías colocar puntos de ruptura antes del contenido editable.

    Conclusión clave: Siempre establece un punto de ruptura de caché explícito al final de tu conversación para maximizar tus posibilidades de aciertos de caché. Además, establece puntos de ruptura justo antes de bloques de contenido que podrían ser editables para asegurar que esas secciones se puedan almacenar en caché de forma independiente.

    Cuándo usar múltiples puntos de ruptura

    Puedes definir hasta 4 puntos de ruptura de caché si deseas:

    • Almacenar en caché diferentes secciones que cambian a diferentes frecuencias (por ejemplo, las herramientas rara vez cambian, pero el contexto se actualiza diariamente)
    • Tener más control sobre exactamente qué se almacena en caché
    • Asegurar almacenamiento en caché para contenido más de 20 bloques antes de tu punto de ruptura final
    • Colocar puntos de ruptura antes del contenido editable para garantizar aciertos de caché incluso cuando ocurren cambios más allá de la ventana de 20 bloques

    Limitación importante: Si tu indicación tiene más de 20 bloques de contenido antes de tu punto de ruptura de caché, y modificas contenido anterior a esos 20 bloques, no obtendrás un acierto de caché a menos que agregues puntos de ruptura explícitos adicionales más cerca de ese contenido.

    Limitaciones de caché

    La longitud mínima de indicación almacenable en caché es:

    • 1024 tokens para Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), y Claude Opus 3 (deprecated)
    • 4096 tokens para Claude Haiku 4.5
    • 2048 tokens para Claude Haiku 3.5 y Claude Haiku 3

    Las indicaciones más cortas no se pueden almacenar en caché, incluso si se marcan con cache_control. Cualquier solicitud para almacenar en caché menos de este número de tokens se procesará sin almacenamiento en caché. Para ver si una indicación fue almacenada en caché, consulta los campos de uso de respuesta.

    Para solicitudes concurrentes, ten en cuenta que una entrada de caché solo está disponible después de que comienza la primera respuesta. Si necesitas aciertos de caché para solicitudes paralelas, espera a que la primera respuesta se complete antes de enviar solicitudes posteriores.

    Actualmente, "ephemeral" es el único tipo de caché compatible, que por defecto tiene una duración de 5 minutos.

    Limitaciones de caché

    La longitud mínima de indicación almacenable en caché es:

    • 1024 tokens para Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), y Claude Opus 3 (deprecated)
    • 4096 tokens para Claude Haiku 4.5
    • 2048 tokens para Claude Haiku 3.5 y Claude Haiku 3

    Las indicaciones más cortas no se pueden almacenar en caché, incluso si se marcan con cache_control. Cualquier solicitud para almacenar en caché menos de este número de tokens se procesará sin almacenamiento en caché. Para ver si una indicación fue almacenada en caché, consulta los campos de uso de respuesta.

    Para solicitudes concurrentes, ten en cuenta que una entrada de caché solo está disponible después de que comienza la primera respuesta. Si necesitas aciertos de caché para solicitudes paralelas, espera a que la primera respuesta se complete antes de enviar solicitudes posteriores.

    Actualmente, "ephemeral" es el único tipo de caché compatible, que por defecto tiene una duración de 5 minutos.

    Entendiendo los costos de los puntos de ruptura de caché

    Los puntos de ruptura de caché en sí no agregan ningún costo. Solo se te cobra por:

    • Escrituras de caché: Cuando se escribe contenido nuevo en el caché (25% más que los tokens de entrada base para TTL de 5 minutos)
    • Lecturas de caché: Cuando se utiliza contenido almacenado en caché (10% del precio de tokens de entrada base)
    • Tokens de entrada regulares: Para cualquier contenido no almacenado en caché

    Agregar más puntos de ruptura cache_control no aumenta tus costos - sigues pagando la misma cantidad según el contenido que realmente se almacena en caché y se lee. Los puntos de ruptura simplemente te dan control sobre qué secciones se pueden almacenar en caché de forma independiente.

    Limitaciones de caché

    La longitud mínima de indicación almacenable en caché es:

    • 1024 tokens para Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), y Claude Opus 3 (deprecated)
    • 4096 tokens para Claude Haiku 4.5
    • 2048 tokens para Claude Haiku 3.5 y Claude Haiku 3

    Las indicaciones más cortas no se pueden almacenar en caché, incluso si se marcan con cache_control. Cualquier solicitud para almacenar en caché menos de este número de tokens se procesará sin almacenamiento en caché. Para ver si una indicación fue almacenada en caché, consulta los campos de uso de respuesta.

    Para solicitudes concurrentes, ten en cuenta que una entrada de caché solo está disponible después de que comienza la primera respuesta. Si necesitas aciertos de caché para solicitudes paralelas, espera a que la primera respuesta se complete antes de enviar solicitudes posteriores.

    Actualmente, "ephemeral" es el único tipo de caché compatible, que por defecto tiene una duración de 5 minutos.

    Entendiendo los costos de los puntos de ruptura de caché

    Los puntos de ruptura de caché en sí no agregan ningún costo. Solo se te cobra por:

    • Escrituras de caché: Cuando se escribe contenido nuevo en el caché (25% más que los tokens de entrada base para TTL de 5 minutos)
    • Lecturas de caché: Cuando se utiliza contenido almacenado en caché (10% del precio de tokens de entrada base)
    • Tokens de entrada regulares: Para cualquier contenido no almacenado en caché

    Agregar más puntos de ruptura cache_control no aumenta tus costos - sigues pagando la misma cantidad según el contenido que realmente se almacena en caché y se lee. Los puntos de ruptura simplemente te dan control sobre qué secciones se pueden almacenar en caché de forma independiente.

    Qué se puede almacenar en caché

    La mayoría de los bloques en la solicitud se pueden designar para almacenamiento en caché con cache_control. Esto incluye:

    • Herramientas: Definiciones de herramientas en el array tools
    • Mensajes del sistema: Bloques de contenido en el array system
    • Mensajes de texto: Bloques de contenido en el array messages.content, para turnos de usuario y asistente
    • Imágenes y documentos: Bloques de contenido en el array messages.content, en turnos de usuario
    • Uso de herramientas y resultados de herramientas: Bloques de contenido en el array messages.content, en turnos de usuario y asistente

    Cada uno de estos elementos se puede marcar con cache_control para habilitar el almacenamiento en caché para esa parte de la solicitud.

    Limitaciones de caché

    La longitud mínima de indicación almacenable en caché es:

    • 1024 tokens para Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), y Claude Opus 3 (deprecated)
    • 4096 tokens para Claude Haiku 4.5
    • 2048 tokens para Claude Haiku 3.5 y Claude Haiku 3

    Las indicaciones más cortas no se pueden almacenar en caché, incluso si se marcan con cache_control. Cualquier solicitud para almacenar en caché menos de este número de tokens se procesará sin almacenamiento en caché. Para ver si una indicación fue almacenada en caché, consulta los campos de uso de respuesta.

    Para solicitudes concurrentes, ten en cuenta que una entrada de caché solo está disponible después de que comienza la primera respuesta. Si necesitas aciertos de caché para solicitudes paralelas, espera a que la primera respuesta se complete antes de enviar solicitudes posteriores.

    Actualmente, "ephemeral" es el único tipo de caché compatible, que por defecto tiene una duración de 5 minutos.

    Entendiendo los costos de los puntos de ruptura de caché

    Los puntos de ruptura de caché en sí no agregan ningún costo. Solo se te cobra por:

    • Escrituras de caché: Cuando se escribe contenido nuevo en el caché (25% más que los tokens de entrada base para TTL de 5 minutos)
    • Lecturas de caché: Cuando se utiliza contenido almacenado en caché (10% del precio de tokens de entrada base)
    • Tokens de entrada regulares: Para cualquier contenido no almacenado en caché

    Agregar más puntos de ruptura cache_control no aumenta tus costos - sigues pagando la misma cantidad según el contenido que realmente se almacena en caché y se lee. Los puntos de ruptura simplemente te dan control sobre qué secciones se pueden almacenar en caché de forma independiente.

    Qué no se puede almacenar en caché

    Aunque la mayoría de los bloques de solicitud se pueden almacenar en caché, hay algunas excepciones:

    • Los bloques de pensamiento no se pueden almacenar en caché directamente con cache_control. Sin embargo, los bloques de pensamiento SÍ se pueden almacenar en caché junto con otro contenido cuando aparecen en turnos anteriores del asistente. Cuando se almacenan en caché de esta manera, SÍ cuentan como tokens de entrada cuando se leen desde el caché.

    • Los bloques de subcontenido (como citas) en sí no se pueden almacenar en caché directamente. En su lugar, almacena en caché el bloque de nivel superior.

      En el caso de citas, los bloques de contenido de documento de nivel superior que sirven como material de origen para citas se pueden almacenar en caché. Esto te permite usar el almacenamiento en caché de indicaciones con citas de manera efectiva almacenando en caché los documentos que las citas referirán.

    • Los bloques de texto vacío no se pueden almacenar en caché.

    Limitaciones de caché

    La longitud mínima de indicación almacenable en caché es:

    • 1024 tokens para Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), y Claude Opus 3 (deprecated)
    • 4096 tokens para Claude Haiku 4.5
    • 2048 tokens para Claude Haiku 3.5 y Claude Haiku 3

    Las indicaciones más cortas no se pueden almacenar en caché, incluso si se marcan con cache_control. Cualquier solicitud para almacenar en caché menos de este número de tokens se procesará sin almacenamiento en caché. Para ver si una indicación fue almacenada en caché, consulta los campos de uso de respuesta.

    Para solicitudes concurrentes, ten en cuenta que una entrada de caché solo está disponible después de que comienza la primera respuesta. Si necesitas aciertos de caché para solicitudes paralelas, espera a que la primera respuesta se complete antes de enviar solicitudes posteriores.

    Actualmente, "ephemeral" es el único tipo de caché compatible, que por defecto tiene una duración de 5 minutos.

    Entendiendo los costos de los puntos de ruptura de caché

    Los puntos de ruptura de caché en sí no agregan ningún costo. Solo se te cobra por:

    • Escrituras de caché: Cuando se escribe contenido nuevo en el caché (25% más que los tokens de entrada base para TTL de 5 minutos)
    • Lecturas de caché: Cuando se utiliza contenido almacenado en caché (10% del precio de tokens de entrada base)
    • Tokens de entrada regulares: Para cualquier contenido no almacenado en caché

    Agregar más puntos de ruptura cache_control no aumenta tus costos - sigues pagando la misma cantidad según el contenido que realmente se almacena en caché y se lee. Los puntos de ruptura simplemente te dan control sobre qué secciones se pueden almacenar en caché de forma independiente.

    Qué no se puede almacenar en caché

    Aunque la mayoría de los bloques de solicitud se pueden almacenar en caché, hay algunas excepciones:

    • Los bloques de pensamiento no se pueden almacenar en caché directamente con cache_control. Sin embargo, los bloques de pensamiento SÍ se pueden almacenar en caché junto con otro contenido cuando aparecen en turnos anteriores del asistente. Cuando se almacenan en caché de esta manera, SÍ cuentan como tokens de entrada cuando se leen desde el caché.

    • Los bloques de subcontenido (como citas) en sí no se pueden almacenar en caché directamente. En su lugar, almacena en caché el bloque de nivel superior.

      En el caso de citas, los bloques de contenido de documento de nivel superior que sirven como material de origen para citas se pueden almacenar en caché. Esto te permite usar el almacenamiento en caché de indicaciones con citas de manera efectiva almacenando en caché los documentos que las citas referirán.

    • Los bloques de texto vacío no se pueden almacenar en caché.

    Qué invalida el caché

    Las modificaciones al contenido almacenado en caché pueden invalidar parte o todo el caché.

    Como se describe en Estructurando tu indicación, el caché sigue la jerarquía: tools → system → messages. Los cambios en cada nivel invalidan ese nivel y todos los niveles posteriores.

    La siguiente tabla muestra qué partes del caché se invalidan por diferentes tipos de cambios. ✘ indica que el caché se invalida, mientras que ✓ indica que el caché permanece válido.

    Qué cambiaCaché de herramientasCaché del sistemaCaché de mensajesImpacto
    Definiciones de herramientas✘✘✘Modificar definiciones de herramientas (nombres, descripciones, parámetros) invalida todo el caché
    Alternar búsqueda web✓✘✘Habilitar/deshabilitar búsqueda web modifica el indicador del sistema
    Alternar citas✓✘✘Habilitar/deshabilitar citas modifica el indicador del sistema
    Opción de herramienta✓✓✘Los cambios al parámetro tool_choice solo afectan bloques de mensajes
    Imágenes✓✓✘Agregar/eliminar imágenes en cualquier lugar de la indicación afecta bloques de mensajes
    Parámetros de pensamiento✓✓✘Los cambios a la configuración de pensamiento extendido (habilitar/deshabilitar, presupuesto) afectan bloques de mensajes
    Resultados no herramienta pasados a solicitudes de pensamiento extendido✓✓✘Cuando se pasan resultados no herramienta en solicitudes mientras el pensamiento extendido está habilitado, todos los bloques de pensamiento previamente almacenados en caché se eliminan del contexto, y cualquier mensaje en contexto que siga a esos bloques de pensamiento se elimina del caché. Para más detalles, consulta Almacenamiento en caché con bloques de pensamiento.

    Limitaciones de caché

    La longitud mínima de indicación almacenable en caché es:

    • 1024 tokens para Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), y Claude Opus 3 (deprecated)
    • 4096 tokens para Claude Haiku 4.5
    • 2048 tokens para Claude Haiku 3.5 y Claude Haiku 3

    Las indicaciones más cortas no se pueden almacenar en caché, incluso si se marcan con cache_control. Cualquier solicitud para almacenar en caché menos de este número de tokens se procesará sin almacenamiento en caché. Para ver si una indicación fue almacenada en caché, consulta los campos de uso de respuesta.

    Para solicitudes concurrentes, ten en cuenta que una entrada de caché solo está disponible después de que comienza la primera respuesta. Si necesitas aciertos de caché para solicitudes paralelas, espera a que la primera respuesta se complete antes de enviar solicitudes posteriores.

    Actualmente, "ephemeral" es el único tipo de caché compatible, que por defecto tiene una duración de 5 minutos.

    Entendiendo los costos de los puntos de ruptura de caché

    Los puntos de ruptura de caché en sí no agregan ningún costo. Solo se te cobra por:

    • Escrituras de caché: Cuando se escribe contenido nuevo en el caché (25% más que los tokens de entrada base para TTL de 5 minutos)
    • Lecturas de caché: Cuando se utiliza contenido almacenado en caché (10% del precio de tokens de entrada base)
    • Tokens de entrada regulares: Para cualquier contenido no almacenado en caché

    Agregar más puntos de ruptura cache_control no aumenta tus costos - sigues pagando la misma cantidad según el contenido que realmente se almacena en caché y se lee. Los puntos de ruptura simplemente te dan control sobre qué secciones se pueden almacenar en caché de forma independiente.

    Qué se puede almacenar en caché

    La mayoría de los bloques en la solicitud se pueden designar para almacenamiento en caché con cache_control. Esto incluye:

    • Herramientas: Definiciones de herramientas en el array tools
    • Mensajes del sistema: Bloques de contenido en el array system
    • Mensajes de texto: Bloques de contenido en el array messages.content, para turnos de usuario y asistente
    • Imágenes y documentos: Bloques de contenido en el array messages.content, en turnos de usuario
    • Uso de herramientas y resultados de herramientas: Bloques de contenido en el array messages.content, en turnos de usuario y asistente

    Cada uno de estos elementos se puede marcar con cache_control para habilitar el almacenamiento en caché para esa parte de la solicitud.

    Qué no se puede almacenar en caché

    Aunque la mayoría de los bloques de solicitud se pueden almacenar en caché, hay algunas excepciones:

    • Los bloques de pensamiento no se pueden almacenar en caché directamente con cache_control. Sin embargo, los bloques de pensamiento SÍ se pueden almacenar en caché junto con otro contenido cuando aparecen en turnos anteriores del asistente. Cuando se almacenan en caché de esta manera, SÍ cuentan como tokens de entrada cuando se leen desde el caché.

    • Los bloques de subcontenido (como citas) en sí no se pueden almacenar en caché directamente. En su lugar, almacena en caché el bloque de nivel superior.

      En el caso de citas, los bloques de contenido de documento de nivel superior que sirven como material de origen para citas se pueden almacenar en caché. Esto te permite usar el almacenamiento en caché de indicaciones con citas de manera efectiva almacenando en caché los documentos que las citas referirán.

    • Los bloques de texto vacío no se pueden almacenar en caché.

    Qué invalida el caché

    Las modificaciones al contenido almacenado en caché pueden invalidar parte o todo el caché.

    Como se describe en Estructurando tu indicación, el caché sigue la jerarquía: tools → system → messages. Los cambios en cada nivel invalidan ese nivel y todos los niveles posteriores.

    La siguiente tabla muestra qué partes del caché se invalidan por diferentes tipos de cambios. ✘ indica que el caché se invalida, mientras que ✓ indica que el caché permanece válido.

    Qué cambiaCaché de herramientasCaché del sistemaCaché de mensajesImpacto
    Definiciones de herramientas✘✘✘Modificar definiciones de herramientas (nombres, descripciones, parámetros) invalida todo el caché
    Alternar búsqueda web✓✘✘Habilitar/deshabilitar búsqueda web modifica el indicador del sistema
    Alternar citas✓✘✘Habilitar/deshabilitar citas modifica el indicador del sistema
    Opción de herramienta✓✓✘Los cambios al parámetro tool_choice solo afectan bloques de mensajes
    Imágenes✓✓✘Agregar/eliminar imágenes en cualquier lugar de la indicación afecta bloques de mensajes
    Parámetros de pensamiento✓✓✘Los cambios a la configuración de pensamiento extendido (habilitar/deshabilitar, presupuesto) afectan bloques de mensajes
    Resultados no herramienta pasados a solicitudes de pensamiento extendido✓✓✘Cuando se pasan resultados no herramienta en solicitudes mientras el pensamiento extendido está habilitado, todos los bloques de pensamiento previamente almacenados en caché se eliminan del contexto, y cualquier mensaje en contexto que siga a esos bloques de pensamiento se elimina del caché. Para más detalles, consulta Almacenamiento en caché con bloques de pensamiento.

    Rastreando el rendimiento del caché

    Monitorea el rendimiento del caché usando estos campos de respuesta de la API, dentro de usage en la respuesta (o evento message_start si streaming):

    • cache_creation_input_tokens: Número de tokens escritos en el caché al crear una nueva entrada.
    • cache_read_input_tokens: Número de tokens recuperados del caché para esta solicitud.
    • input_tokens: Número de tokens de entrada que no fueron leídos o utilizados para crear un caché (es decir, tokens después del último punto de ruptura de caché).

    Entendiendo el desglose de tokens

    El campo input_tokens representa solo los tokens que vienen después del último punto de ruptura de caché en tu solicitud - no todos los tokens de entrada que enviaste.

    Para calcular los tokens de entrada totales:

    total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens

    Explicación espacial:

    • cache_read_input_tokens = tokens antes del punto de ruptura ya almacenados en caché (lecturas)
    • cache_creation_input_tokens = tokens antes del punto de ruptura siendo almacenados en caché ahora (escrituras)
    • input_tokens = tokens después de tu último punto de ruptura (no elegibles para caché)

    Ejemplo: Si tienes una solicitud con 100,000 tokens de contenido almacenado en caché (leído desde caché), 0 tokens de contenido nuevo siendo almacenado en caché, y 50 tokens en tu mensaje de usuario (después del punto de ruptura de caché):

    • cache_read_input_tokens: 100,000
    • cache_creation_input_tokens: 0
    • input_tokens: 50
    • Tokens de entrada totales procesados: 100,050 tokens

    Esto es importante para entender tanto costos como límites de velocidad, ya que input_tokens típicamente será mucho más pequeño que tu entrada total cuando uses almacenamiento en caché de manera efectiva.

    Limitaciones de caché

    La longitud mínima de indicación almacenable en caché es:

    • 1024 tokens para Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (obsoleto) y Claude Opus 3 (obsoleto)
    • 4096 tokens para Claude Haiku 4.5
    • 2048 tokens para Claude Haiku 3.5 y Claude Haiku 3

    Las indicaciones más cortas no se pueden almacenar en caché, incluso si se marcan con cache_control. Cualquier solicitud para almacenar en caché menos de este número de tokens se procesará sin almacenamiento en caché. Para ver si una indicación se almacenó en caché, consulte los campos de uso de respuesta.

    Para solicitudes concurrentes, tenga en cuenta que una entrada de caché solo está disponible después de que comienza la primera respuesta. Si necesita aciertos de caché para solicitudes paralelas, espere a la primera respuesta antes de enviar solicitudes posteriores.

    Actualmente, "ephemeral" es el único tipo de caché compatible, que por defecto tiene una vida útil de 5 minutos.

    Comprensión de los costos de puntos de ruptura de caché

    Los puntos de ruptura de caché en sí no añaden ningún costo. Solo se le cobra por:

    • Escrituras de caché: Cuando se escribe contenido nuevo en el caché (25% más que los tokens de entrada base para TTL de 5 minutos)
    • Lecturas de caché: Cuando se utiliza contenido almacenado en caché (10% del precio del token de entrada base)
    • Tokens de entrada regulares: Para cualquier contenido no almacenado en caché

    Agregar más puntos de ruptura cache_control no aumenta sus costos: sigue pagando la misma cantidad según el contenido que realmente se almacena en caché y se lee. Los puntos de ruptura simplemente le dan control sobre qué secciones se pueden almacenar en caché de forma independiente.

    Qué se puede almacenar en caché

    La mayoría de los bloques en la solicitud se pueden designar para almacenamiento en caché con cache_control. Esto incluye:

    • Herramientas: Definiciones de herramientas en el array tools
    • Mensajes del sistema: Bloques de contenido en el array system
    • Mensajes de texto: Bloques de contenido en el array messages.content, tanto para turnos de usuario como de asistente
    • Imágenes y documentos: Bloques de contenido en el array messages.content, en turnos de usuario
    • Uso de herramientas y resultados de herramientas: Bloques de contenido en el array messages.content, tanto para turnos de usuario como de asistente

    Cada uno de estos elementos se puede marcar con cache_control para habilitar el almacenamiento en caché para esa parte de la solicitud.

    Qué no se puede almacenar en caché

    Aunque la mayoría de los bloques de solicitud se pueden almacenar en caché, hay algunas excepciones:

    • Los bloques de pensamiento no se pueden almacenar en caché directamente con cache_control. Sin embargo, los bloques de pensamiento SÍ se pueden almacenar en caché junto con otro contenido cuando aparecen en turnos anteriores del asistente. Cuando se almacenan en caché de esta manera, SÍ cuentan como tokens de entrada cuando se leen desde el caché.

    • Los bloques de subcontenido (como citas) en sí no se pueden almacenar en caché directamente. En su lugar, almacene en caché el bloque de nivel superior.

      En el caso de las citas, los bloques de contenido de documento de nivel superior que sirven como material de origen para las citas se pueden almacenar en caché. Esto le permite usar el almacenamiento en caché de indicaciones con citas de manera efectiva almacenando en caché los documentos a los que harán referencia las citas.

    • Los bloques de texto vacío no se pueden almacenar en caché.

    Qué invalida el caché

    Las modificaciones del contenido almacenado en caché pueden invalidar parte o todo el caché.

    Como se describe en Estructuración de su indicación, el caché sigue la jerarquía: tools → system → messages. Los cambios en cada nivel invalidan ese nivel y todos los niveles posteriores.

    La siguiente tabla muestra qué partes del caché se invalidan por diferentes tipos de cambios. ✘ indica que el caché se invalida, mientras que ✓ indica que el caché permanece válido.

    Qué cambiaCaché de herramientasCaché del sistemaCaché de mensajesImpacto
    Definiciones de herramientas✘✘✘Modificar definiciones de herramientas (nombres, descripciones, parámetros) invalida todo el caché
    Alternar búsqueda web✓✘✘Habilitar/deshabilitar la búsqueda web modifica la indicación del sistema
    Alternar citas✓✘✘Habilitar/deshabilitar citas modifica la indicación del sistema
    Opción de herramienta✓✓✘Los cambios al parámetro tool_choice solo afectan bloques de mensajes
    Imágenes✓✓✘Agregar/eliminar imágenes en cualquier lugar de la indicación afecta bloques de mensajes
    Parámetros de pensamiento✓✓✘Los cambios en la configuración de pensamiento extendido (habilitar/deshabilitar, presupuesto) afectan bloques de mensajes
    Resultados que no son de herramientas pasados a solicitudes de pensamiento extendido✓✓✘Cuando se pasan resultados que no son de herramientas en solicitudes mientras el pensamiento extendido está habilitado, todos los bloques de pensamiento almacenados en caché previamente se eliminan del contexto, y cualquier mensaje en contexto que siga a esos bloques de pensamiento se elimina del caché. Para más detalles, consulte Almacenamiento en caché con bloques de pensamiento.

    Seguimiento del rendimiento del caché

    Monitoree el rendimiento del caché utilizando estos campos de respuesta de API, dentro de usage en la respuesta (o evento message_start si transmisión):

    • cache_creation_input_tokens: Número de tokens escritos en el caché al crear una nueva entrada.
    • cache_read_input_tokens: Número de tokens recuperados del caché para esta solicitud.
    • input_tokens: Número de tokens de entrada que no se leyeron ni se utilizaron para crear un caché (es decir, tokens después del último punto de ruptura de caché).

    Comprensión del desglose de tokens

    El campo input_tokens representa solo los tokens que vienen después del último punto de ruptura de caché en su solicitud, no todos los tokens de entrada que envió.

    Para calcular el total de tokens de entrada:

    total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens

    Explicación espacial:

    • cache_read_input_tokens = tokens antes del punto de ruptura ya almacenados en caché (lecturas)
    • cache_creation_input_tokens = tokens antes del punto de ruptura siendo almacenados en caché ahora (escrituras)
    • input_tokens = tokens después de su último punto de ruptura (no elegibles para caché)

    Ejemplo: Si tiene una solicitud con 100,000 tokens de contenido almacenado en caché (lectura desde caché), 0 tokens de contenido nuevo siendo almacenado en caché, y 50 tokens en su mensaje de usuario (después del punto de ruptura de caché):

    • cache_read_input_tokens: 100,000
    • cache_creation_input_tokens: 0
    • input_tokens: 50
    • Total de tokens de entrada procesados: 100,050 tokens

    Esto es importante para comprender tanto los costos como los límites de velocidad, ya que input_tokens será típicamente mucho más pequeño que su entrada total cuando se usa el almacenamiento en caché de manera efectiva.

    Mejores prácticas para un almacenamiento en caché efectivo

    Para optimizar el rendimiento del almacenamiento en caché de indicaciones:

    • Almacene en caché contenido estable y reutilizable como instrucciones del sistema, información de antecedentes, contextos grandes o definiciones de herramientas frecuentes.
    • Coloque contenido almacenado en caché al principio de la indicación para obtener el mejor rendimiento.
    • Utilice puntos de ruptura de caché estratégicamente para separar diferentes secciones de prefijo almacenable en caché.
    • Establezca puntos de ruptura de caché al final de conversaciones y justo antes del contenido editable para maximizar las tasas de acierto de caché, especialmente cuando se trabaja con indicaciones que tienen más de 20 bloques de contenido.
    • Analice regularmente las tasas de acierto de caché y ajuste su estrategia según sea necesario.

    Optimización para diferentes casos de uso

    Adapte su estrategia de almacenamiento en caché de indicaciones a su escenario:

    • Agentes conversacionales: Reduzca el costo y la latencia para conversaciones extendidas, especialmente aquellas con instrucciones largas o documentos cargados.
    • Asistentes de codificación: Mejore el autocompletado y las preguntas y respuestas de base de código manteniendo secciones relevantes o una versión resumida de la base de código en la indicación.
    • Procesamiento de documentos grandes: Incorpore material completo de forma larga incluyendo imágenes en su indicación sin aumentar la latencia de respuesta.
    • Conjuntos de instrucciones detalladas: Comparta listas extensas de instrucciones, procedimientos y ejemplos para ajustar las respuestas de Claude. Los desarrolladores a menudo incluyen uno o dos ejemplos en la indicación, pero con el almacenamiento en caché de indicaciones puede obtener un rendimiento aún mejor incluyendo 20+ ejemplos diversos de respuestas de alta calidad.
    • Uso de herramientas de agentes: Mejore el rendimiento para escenarios que implican múltiples llamadas de herramientas y cambios de código iterativos, donde cada paso típicamente requiere una nueva llamada de API.
    • Hable con libros, artículos, documentación, transcripciones de podcasts y otro contenido de forma larga: Dé vida a cualquier base de conocimiento incrustando el documento(s) completo en la indicación y permitiendo que los usuarios le hagan preguntas.

    Optimización para diferentes casos de uso

    Adapte su estrategia de almacenamiento en caché de indicaciones a su escenario:

    • Agentes conversacionales: Reduzca el costo y la latencia para conversaciones extendidas, especialmente aquellas con instrucciones largas o documentos cargados.
    • Asistentes de codificación: Mejore el autocompletado y las preguntas y respuestas de base de código manteniendo secciones relevantes o una versión resumida de la base de código en la indicación.
    • Procesamiento de documentos grandes: Incorpore material completo de forma larga incluyendo imágenes en su indicación sin aumentar la latencia de respuesta.
    • Conjuntos de instrucciones detalladas: Comparta listas extensas de instrucciones, procedimientos y ejemplos para ajustar las respuestas de Claude. Los desarrolladores a menudo incluyen uno o dos ejemplos en la indicación, pero con el almacenamiento en caché de indicaciones puede obtener un rendimiento aún mejor incluyendo 20+ ejemplos diversos de respuestas de alta calidad.
    • Uso de herramientas de agentes: Mejore el rendimiento para escenarios que implican múltiples llamadas de herramientas y cambios de código iterativos, donde cada paso típicamente requiere una nueva llamada de API.
    • Hable con libros, artículos, documentación, transcripciones de podcasts y otro contenido de forma larga: Dé vida a cualquier base de conocimiento incrustando el documento(s) completo en la indicación y permitiendo que los usuarios le hagan preguntas.

    Solución de problemas comunes

    Si experimenta un comportamiento inesperado:

    • Asegúrese de que las secciones almacenadas en caché sean idénticas y estén marcadas con cache_control en las mismas ubicaciones en todas las llamadas
    • Verifique que las llamadas se realicen dentro de la vida útil del caché (5 minutos por defecto)
    • Verifique que tool_choice y el uso de imágenes permanezcan consistentes entre llamadas
    • Valide que está almacenando en caché al menos el número mínimo de tokens
    • El sistema verifica automáticamente los aciertos de caché en límites de bloques de contenido anteriores (hasta ~20 bloques antes de su punto de ruptura). Para indicaciones con más de 20 bloques de contenido, puede que necesite parámetros cache_control adicionales anteriormente en la indicación para asegurar que todo el contenido se pueda almacenar en caché
    • Verifique que las claves en sus bloques de contenido tool_use tengan un orden estable ya que algunos lenguajes (por ejemplo, Swift, Go) aleatorizan el orden de claves durante la conversión JSON, rompiendo cachés

    Los cambios a tool_choice o la presencia/ausencia de imágenes en cualquier lugar de la indicación invalidarán el caché, requiriendo que se cree una nueva entrada de caché. Para más detalles sobre la invalidación de caché, consulte Qué invalida el caché.

    Almacenamiento en caché con bloques de pensamiento

    Cuando se usa pensamiento extendido con almacenamiento en caché de indicaciones, los bloques de pensamiento tienen un comportamiento especial:

    Almacenamiento en caché automático junto con otro contenido: Aunque los bloques de pensamiento no se pueden marcar explícitamente con cache_control, se almacenan en caché como parte del contenido de la solicitud cuando realiza llamadas de API posteriores con resultados de herramientas. Esto ocurre comúnmente durante el uso de herramientas cuando devuelve bloques de pensamiento para continuar la conversación.

    Conteo de tokens de entrada: Cuando los bloques de pensamiento se leen desde el caché, cuentan como tokens de entrada en sus métricas de uso. Esto es importante para el cálculo de costos y la presupuestación de tokens.

    Patrones de invalidación de caché:

    • El caché permanece válido cuando solo se proporcionan resultados de herramientas como mensajes de usuario
    • El caché se invalida cuando se agrega contenido de usuario que no es resultado de herramienta, causando que todos los bloques de pensamiento anteriores se eliminen
    • Este comportamiento de almacenamiento en caché ocurre incluso sin marcadores cache_control explícitos

    Para más detalles sobre la invalidación de caché, consulte Qué invalida el caché.

    Ejemplo con uso de herramientas:

    Request 1: User: "What's the weather in Paris?"
    Response: [thinking_block_1] + [tool_use block 1]
    
    Request 2:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True]
    Response: [thinking_block_2] + [text block 2]
    # Request 2 caches its request content (not the response)
    # The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
    
    Request 3:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]
    # Non-tool-result user block causes all thinking blocks to be ignored
    # This request is processed as if thinking blocks were never present

    Cuando se incluye un bloque de usuario que no es resultado de herramienta, designa un nuevo bucle de asistente y todos los bloques de pensamiento anteriores se eliminan del contexto.

    Para información más detallada, consulte la documentación de pensamiento extendido.


    Almacenamiento y compartición de caché

    • Aislamiento de organización: Los cachés se aíslan entre organizaciones. Diferentes organizaciones nunca comparten cachés, incluso si utilizan indicaciones idénticas.

    • Coincidencia exacta: Los aciertos de caché requieren segmentos de indicación 100% idénticos, incluyendo todo el texto e imágenes hasta e incluyendo el bloque marcado con control de caché.

    • Generación de tokens de salida: El almacenamiento en caché de indicaciones no tiene efecto en la generación de tokens de salida. La respuesta que reciba será idéntica a la que obtendría si no se utilizara el almacenamiento en caché de indicaciones.


    Optimización para diferentes casos de uso

    Adapte su estrategia de almacenamiento en caché de indicaciones a su escenario:

    • Agentes conversacionales: Reduzca el costo y la latencia para conversaciones extendidas, especialmente aquellas con instrucciones largas o documentos cargados.
    • Asistentes de codificación: Mejore el autocompletado y las preguntas y respuestas de base de código manteniendo secciones relevantes o una versión resumida de la base de código en la indicación.
    • Procesamiento de documentos grandes: Incorpore material completo de forma larga incluyendo imágenes en su indicación sin aumentar la latencia de respuesta.
    • Conjuntos de instrucciones detalladas: Comparta listas extensas de instrucciones, procedimientos y ejemplos para ajustar las respuestas de Claude. Los desarrolladores a menudo incluyen uno o dos ejemplos en la indicación, pero con el almacenamiento en caché de indicaciones puede obtener un rendimiento aún mejor incluyendo 20+ ejemplos diversos de respuestas de alta calidad.
    • Uso de herramientas de agentes: Mejore el rendimiento para escenarios que implican múltiples llamadas de herramientas y cambios de código iterativos, donde cada paso típicamente requiere una nueva llamada de API.
    • Hable con libros, artículos, documentación, transcripciones de podcasts y otro contenido de forma larga: Dé vida a cualquier base de conocimiento incrustando el documento(s) completo en la indicación y permitiendo que los usuarios le hagan preguntas.

    Solución de problemas comunes

    Si experimenta un comportamiento inesperado:

    • Asegúrese de que las secciones almacenadas en caché sean idénticas y estén marcadas con cache_control en las mismas ubicaciones en todas las llamadas
    • Verifique que las llamadas se realicen dentro de la vida útil del caché (5 minutos por defecto)
    • Verifique que tool_choice y el uso de imágenes permanezcan consistentes entre llamadas
    • Valide que está almacenando en caché al menos el número mínimo de tokens
    • El sistema verifica automáticamente los aciertos de caché en límites de bloques de contenido anteriores (hasta ~20 bloques antes de su punto de ruptura). Para indicaciones con más de 20 bloques de contenido, puede que necesite parámetros cache_control adicionales anteriormente en la indicación para asegurar que todo el contenido se pueda almacenar en caché
    • Verifique que las claves en sus bloques de contenido tool_use tengan un orden estable ya que algunos lenguajes (por ejemplo, Swift, Go) aleatorizan el orden de claves durante la conversión JSON, rompiendo cachés

    Los cambios a tool_choice o la presencia/ausencia de imágenes en cualquier lugar de la indicación invalidarán el caché, requiriendo que se cree una nueva entrada de caché. Para más detalles sobre la invalidación de caché, consulte Qué invalida el caché.

    Almacenamiento en caché con bloques de pensamiento

    Cuando se usa pensamiento extendido con almacenamiento en caché de indicaciones, los bloques de pensamiento tienen un comportamiento especial:

    Almacenamiento en caché automático junto con otro contenido: Aunque los bloques de pensamiento no se pueden marcar explícitamente con cache_control, se almacenan en caché como parte del contenido de la solicitud cuando realiza llamadas de API posteriores con resultados de herramientas. Esto ocurre comúnmente durante el uso de herramientas cuando devuelve bloques de pensamiento para continuar la conversación.

    Conteo de tokens de entrada: Cuando los bloques de pensamiento se leen desde el caché, cuentan como tokens de entrada en sus métricas de uso. Esto es importante para el cálculo de costos y la presupuestación de tokens.

    Patrones de invalidación de caché:

    • El caché permanece válido cuando solo se proporcionan resultados de herramientas como mensajes de usuario
    • El caché se invalida cuando se agrega contenido de usuario que no es resultado de herramienta, causando que todos los bloques de pensamiento anteriores se eliminen
    • Este comportamiento de almacenamiento en caché ocurre incluso sin marcadores cache_control explícitos

    Para más detalles sobre la invalidación de caché, consulte Qué invalida el caché.

    Ejemplo con uso de herramientas:

    Request 1: User: "What's the weather in Paris?"
    Response: [thinking_block_1] + [tool_use block 1]
    
    Request 2:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True]
    Response: [thinking_block_2] + [text block 2]
    # Request 2 caches its request content (not the response)
    # The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
    
    Request 3:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]
    # Non-tool-result user block causes all thinking blocks to be ignored
    # This request is processed as if thinking blocks were never present

    Cuando se incluye un bloque de usuario que no es resultado de herramienta, designa un nuevo bucle de asistente y todos los bloques de pensamiento anteriores se eliminan del contexto.

    Para información más detallada, consulte la documentación de pensamiento extendido.


    Almacenamiento y compartición de caché

    • Aislamiento de organización: Los cachés se aíslan entre organizaciones. Diferentes organizaciones nunca comparten cachés, incluso si utilizan indicaciones idénticas.

    • Coincidencia exacta: Los aciertos de caché requieren segmentos de indicación 100% idénticos, incluyendo todo el texto e imágenes hasta e incluyendo el bloque marcado con control de caché.

    • Generación de tokens de salida: El almacenamiento en caché de indicaciones no tiene efecto en la generación de tokens de salida. La respuesta que reciba será idéntica a la que obtendría si no se utilizara el almacenamiento en caché de indicaciones.


    Duración de caché de 1 hora

    Si encuentra que 5 minutos es demasiado corto, Anthropic también ofrece una duración de caché de 1 hora a costo adicional.

    Para usar el caché extendido, incluya ttl en la definición cache_control así:

    "cache_control": {
        "type": "ephemeral",
        "ttl": "5m" | "1h"
    }

    La respuesta incluirá información detallada de caché como la siguiente:

    {
        "usage": {
            "input_tokens": ...,
            "cache_read_input_tokens": ...,
            "cache_creation_input_tokens": ...,
            "output_tokens": ...,
    
            "cache_creation": {
                "ephemeral_5m_input_tokens": 456,
                "ephemeral_1h_input_tokens": 100,
            }
        }
    }

    Tenga en cuenta que el campo cache_creation_input_tokens actual es igual a la suma de los valores en el objeto cache_creation.

    Optimización para diferentes casos de uso

    Adapte su estrategia de almacenamiento en caché de indicaciones a su escenario:

    • Agentes conversacionales: Reduzca el costo y la latencia para conversaciones extendidas, especialmente aquellas con instrucciones largas o documentos cargados.
    • Asistentes de codificación: Mejore el autocompletado y las preguntas y respuestas de base de código manteniendo secciones relevantes o una versión resumida de la base de código en la indicación.
    • Procesamiento de documentos grandes: Incorpore material completo de forma larga incluyendo imágenes en su indicación sin aumentar la latencia de respuesta.
    • Conjuntos de instrucciones detalladas: Comparta listas extensas de instrucciones, procedimientos y ejemplos para ajustar las respuestas de Claude. Los desarrolladores a menudo incluyen uno o dos ejemplos en la indicación, pero con el almacenamiento en caché de indicaciones puede obtener un rendimiento aún mejor incluyendo 20+ ejemplos diversos de respuestas de alta calidad.
    • Uso de herramientas de agentes: Mejore el rendimiento para escenarios que implican múltiples llamadas de herramientas y cambios de código iterativos, donde cada paso típicamente requiere una nueva llamada de API.
    • Hable con libros, artículos, documentación, transcripciones de podcasts y otro contenido de forma larga: Dé vida a cualquier base de conocimiento incrustando el documento(s) completo en la indicación y permitiendo que los usuarios le hagan preguntas.

    Solución de problemas comunes

    Si experimenta un comportamiento inesperado:

    • Asegúrese de que las secciones almacenadas en caché sean idénticas y estén marcadas con cache_control en las mismas ubicaciones en todas las llamadas
    • Verifique que las llamadas se realicen dentro de la vida útil del caché (5 minutos por defecto)
    • Verifique que tool_choice y el uso de imágenes permanezcan consistentes entre llamadas
    • Valide que está almacenando en caché al menos el número mínimo de tokens
    • El sistema verifica automáticamente los aciertos de caché en límites de bloques de contenido anteriores (hasta ~20 bloques antes de su punto de ruptura). Para indicaciones con más de 20 bloques de contenido, puede que necesite parámetros cache_control adicionales anteriormente en la indicación para asegurar que todo el contenido se pueda almacenar en caché
    • Verifique que las claves en sus bloques de contenido tool_use tengan un orden estable ya que algunos lenguajes (por ejemplo, Swift, Go) aleatorizan el orden de claves durante la conversión JSON, rompiendo cachés

    Los cambios a tool_choice o la presencia/ausencia de imágenes en cualquier lugar de la indicación invalidarán el caché, requiriendo que se cree una nueva entrada de caché. Para más detalles sobre la invalidación de caché, consulte Qué invalida el caché.

    Almacenamiento en caché con bloques de pensamiento

    Cuando se usa pensamiento extendido con almacenamiento en caché de indicaciones, los bloques de pensamiento tienen un comportamiento especial:

    Almacenamiento en caché automático junto con otro contenido: Aunque los bloques de pensamiento no se pueden marcar explícitamente con cache_control, se almacenan en caché como parte del contenido de la solicitud cuando realiza llamadas de API posteriores con resultados de herramientas. Esto ocurre comúnmente durante el uso de herramientas cuando devuelve bloques de pensamiento para continuar la conversación.

    Conteo de tokens de entrada: Cuando los bloques de pensamiento se leen desde el caché, cuentan como tokens de entrada en sus métricas de uso. Esto es importante para el cálculo de costos y la presupuestación de tokens.

    Patrones de invalidación de caché:

    • El caché permanece válido cuando solo se proporcionan resultados de herramientas como mensajes de usuario
    • El caché se invalida cuando se agrega contenido de usuario que no es resultado de herramienta, causando que todos los bloques de pensamiento anteriores se eliminen
    • Este comportamiento de almacenamiento en caché ocurre incluso sin marcadores cache_control explícitos

    Para más detalles sobre la invalidación de caché, consulte Qué invalida el caché.

    Ejemplo con uso de herramientas:

    Request 1: User: "What's the weather in Paris?"
    Response: [thinking_block_1] + [tool_use block 1]
    
    Request 2:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True]
    Response: [thinking_block_2] + [text block 2]
    # Request 2 caches its request content (not the response)
    # The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
    
    Request 3:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]
    # Non-tool-result user block causes all thinking blocks to be ignored
    # This request is processed as if thinking blocks were never present

    Cuando se incluye un bloque de usuario que no es resultado de herramienta, designa un nuevo bucle de asistente y todos los bloques de pensamiento anteriores se eliminan del contexto.

    Para información más detallada, consulte la documentación de pensamiento extendido.


    Almacenamiento y compartición de caché

    • Aislamiento de organización: Los cachés se aíslan entre organizaciones. Diferentes organizaciones nunca comparten cachés, incluso si utilizan indicaciones idénticas.

    • Coincidencia exacta: Los aciertos de caché requieren segmentos de indicación 100% idénticos, incluyendo todo el texto e imágenes hasta e incluyendo el bloque marcado con control de caché.

    • Generación de tokens de salida: El almacenamiento en caché de indicaciones no tiene efecto en la generación de tokens de salida. La respuesta que reciba será idéntica a la que obtendría si no se utilizara el almacenamiento en caché de indicaciones.


    Duración de caché de 1 hora

    Si encuentra que 5 minutos es demasiado corto, Anthropic también ofrece una duración de caché de 1 hora a costo adicional.

    Para usar el caché extendido, incluya ttl en la definición cache_control así:

    "cache_control": {
        "type": "ephemeral",
        "ttl": "5m" | "1h"
    }

    La respuesta incluirá información detallada de caché como la siguiente:

    {
        "usage": {
            "input_tokens": ...,
            "cache_read_input_tokens": ...,
            "cache_creation_input_tokens": ...,
            "output_tokens": ...,
    
            "cache_creation": {
                "ephemeral_5m_input_tokens": 456,
                "ephemeral_1h_input_tokens": 100,
            }
        }
    }

    Tenga en cuenta que el campo cache_creation_input_tokens actual es igual a la suma de los valores en el objeto cache_creation.

    Cuándo usar el caché de 1 hora

    Si tiene indicaciones que se usan en una cadencia regular (es decir, indicaciones del sistema que se usan con más frecuencia que cada 5 minutos), continúe usando el caché de 5 minutos, ya que esto continuará siendo actualizado sin costo adicional.

    El caché de 1 hora se usa mejor en los siguientes escenarios:

    • Cuando tiene indicaciones que probablemente se usan con menos frecuencia que 5 minutos, pero más frecuentemente que cada hora. Por ejemplo, cuando un agente secundario de agentes tardará más de 5 minutos, o cuando almacena una conversación de chat larga con un usuario y generalmente espera que ese usuario puede no responder en los próximos 5 minutos.
    • Cuando la latencia es importante y sus indicaciones de seguimiento pueden enviarse más allá de 5 minutos.
    • Cuando desea mejorar su utilización de límite de velocidad, ya que los aciertos de caché no se deducen de su límite de velocidad.

    El caché de 5 minutos y 1 hora se comportan igual con respecto a la latencia. Generalmente verá un tiempo mejorado al primer token para documentos largos.

    Optimización para diferentes casos de uso

    Adapta tu estrategia de almacenamiento en caché de prompts a tu escenario:

    • Agentes conversacionales: Reduce el costo y la latencia para conversaciones extendidas, especialmente aquellas con instrucciones largas o documentos cargados.
    • Asistentes de codificación: Mejora el autocompletado y las preguntas y respuestas sobre la base de código manteniendo secciones relevantes o una versión resumida de la base de código en el prompt.
    • Procesamiento de documentos grandes: Incorpora material completo de formato largo incluyendo imágenes en tu prompt sin aumentar la latencia de respuesta.
    • Conjuntos de instrucciones detalladas: Comparte listas extensas de instrucciones, procedimientos y ejemplos para ajustar las respuestas de Claude. Los desarrolladores a menudo incluyen uno o dos ejemplos en el prompt, pero con el almacenamiento en caché de prompts puedes obtener un rendimiento aún mejor incluyendo 20 o más ejemplos diversos de respuestas de alta calidad.
    • Uso de herramientas agénticas: Mejora el rendimiento para escenarios que implican múltiples llamadas de herramientas y cambios de código iterativos, donde cada paso típicamente requiere una nueva llamada a la API.
    • Habla con libros, artículos, documentación, transcripciones de podcasts y otro contenido de formato largo: Dale vida a cualquier base de conocimiento incrustando el documento o documentos completos en el prompt, y permitiendo que los usuarios hagan preguntas al respecto.

    Solución de problemas comunes

    Si experimentas un comportamiento inesperado:

    • Asegúrate de que las secciones almacenadas en caché sean idénticas y estén marcadas con cache_control en las mismas ubicaciones en todas las llamadas
    • Verifica que las llamadas se realicen dentro de la vida útil del caché (5 minutos por defecto)
    • Valida que tool_choice y el uso de imágenes permanezcan consistentes entre llamadas
    • Verifica que estés almacenando en caché al menos el número mínimo de tokens
    • El sistema verifica automáticamente los aciertos de caché en los límites de bloques de contenido anteriores (hasta ~20 bloques antes de tu punto de ruptura). Para prompts con más de 20 bloques de contenido, es posible que necesites parámetros cache_control adicionales anteriormente en el prompt para asegurar que todo el contenido pueda almacenarse en caché
    • Verifica que las claves en tus bloques de contenido tool_use tengan un orden estable, ya que algunos lenguajes (por ejemplo, Swift, Go) aleatorizan el orden de claves durante la conversión JSON, rompiendo los cachés

    Los cambios en tool_choice o la presencia/ausencia de imágenes en cualquier lugar del prompt invalidarán el caché, requiriendo que se cree una nueva entrada de caché. Para más detalles sobre la invalidación del caché, consulta ¿Qué invalida el caché?.

    Almacenamiento en caché con bloques de pensamiento

    Cuando se utiliza pensamiento extendido con almacenamiento en caché de prompts, los bloques de pensamiento tienen un comportamiento especial:

    Almacenamiento en caché automático junto con otro contenido: Aunque los bloques de pensamiento no pueden marcarse explícitamente con cache_control, se almacenan en caché como parte del contenido de la solicitud cuando realizas llamadas a la API posteriores con resultados de herramientas. Esto ocurre comúnmente durante el uso de herramientas cuando pasas bloques de pensamiento de vuelta para continuar la conversación.

    Conteo de tokens de entrada: Cuando los bloques de pensamiento se leen desde el caché, cuentan como tokens de entrada en tus métricas de uso. Esto es importante para el cálculo de costos y la presupuestación de tokens.

    Patrones de invalidación del caché:

    • El caché permanece válido cuando solo se proporcionan resultados de herramientas como mensajes de usuario
    • El caché se invalida cuando se agrega contenido de usuario que no es resultado de herramientas, causando que todos los bloques de pensamiento anteriores se eliminen
    • Este comportamiento de almacenamiento en caché ocurre incluso sin marcadores cache_control explícitos

    Para más detalles sobre la invalidación del caché, consulta ¿Qué invalida el caché?.

    Ejemplo con uso de herramientas:

    Solicitud 1: Usuario: "¿Cuál es el clima en París?"
    Respuesta: [thinking_block_1] + [bloque tool_use 1]
    
    Solicitud 2:
    Usuario: ["¿Cuál es el clima en París?"],
    Asistente: [thinking_block_1] + [bloque tool_use 1],
    Usuario: [tool_result_1, cache=True]
    Respuesta: [thinking_block_2] + [bloque de texto 2]
    # La solicitud 2 almacena en caché su contenido de solicitud (no la respuesta)
    # El caché incluye: mensaje de usuario, thinking_block_1, bloque tool_use 1, y tool_result_1
    
    Solicitud 3:
    Usuario: ["¿Cuál es el clima en París?"],
    Asistente: [thinking_block_1] + [bloque tool_use 1],
    Usuario: [tool_result_1, cache=True],
    Asistente: [thinking_block_2] + [bloque de texto 2],
    Usuario: [Respuesta de texto, cache=True]
    # El bloque de usuario que no es resultado de herramientas causa que todos los bloques de pensamiento se ignoren
    # Esta solicitud se procesa como si los bloques de pensamiento nunca hubieran estado presentes

    Cuando se incluye un bloque de usuario que no es resultado de herramientas, designa un nuevo bucle de asistente y todos los bloques de pensamiento anteriores se eliminan del contexto.

    Para información más detallada, consulta la documentación de pensamiento extendido.


    Almacenamiento y compartición del caché

    • Aislamiento de Organización: Los cachés están aislados entre organizaciones. Diferentes organizaciones nunca comparten cachés, incluso si utilizan prompts idénticos.

    • Coincidencia Exacta: Los aciertos de caché requieren segmentos de prompt 100% idénticos, incluyendo todo el texto e imágenes hasta e incluyendo el bloque marcado con control de caché.

    • Generación de Tokens de Salida: El almacenamiento en caché de prompts no tiene efecto en la generación de tokens de salida. La respuesta que recibas será idéntica a la que obtendrías si el almacenamiento en caché de prompts no se utilizara.


    Duración del caché de 1 hora

    Si encuentras que 5 minutos es demasiado corto, Anthropic también ofrece una duración de caché de 1 hora a costo adicional.

    Para usar el caché extendido, incluye ttl en la definición de cache_control así:

    "cache_control": {
        "type": "ephemeral",
        "ttl": "5m" | "1h"
    }

    La respuesta incluirá información detallada del caché como la siguiente:

    {
        "usage": {
            "input_tokens": ...,
            "cache_read_input_tokens": ...,
            "cache_creation_input_tokens": ...,
            "output_tokens": ...,
    
            "cache_creation": {
                "ephemeral_5m_input_tokens": 456,
                "ephemeral_1h_input_tokens": 100,
            }
        }
    }

    Ten en cuenta que el campo cache_creation_input_tokens actual es igual a la suma de los valores en el objeto cache_creation.

    Cuándo usar el caché de 1 hora

    Si tienes prompts que se utilizan en una cadencia regular (es decir, prompts del sistema que se utilizan más frecuentemente que cada 5 minutos), continúa usando el caché de 5 minutos, ya que esto continuará siendo actualizado sin costo adicional.

    El caché de 1 hora se utiliza mejor en los siguientes escenarios:

    • Cuando tienes prompts que probablemente se utilizan con menos frecuencia que cada 5 minutos, pero más frecuentemente que cada hora. Por ejemplo, cuando un agente secundario agéntico tardará más de 5 minutos, o cuando se almacena una conversación de chat larga con un usuario y generalmente esperas que ese usuario no responda en los próximos 5 minutos.
    • Cuando la latencia es importante y tus prompts de seguimiento pueden enviarse más allá de 5 minutos.
    • Cuando deseas mejorar tu utilización de límite de velocidad, ya que los aciertos de caché no se deducen de tu límite de velocidad.

    El caché de 5 minutos y 1 hora se comportan igual con respecto a la latencia. Generalmente verás un tiempo mejorado al primer token para documentos largos.

    Mezcla de diferentes TTLs

    Puedes usar controles de caché de 1 hora y 5 minutos en la misma solicitud, pero con una restricción importante: Las entradas de caché con TTL más largo deben aparecer antes que las de TTL más corto (es decir, una entrada de caché de 1 hora debe aparecer antes que cualquier entrada de caché de 5 minutos).

    Cuando se mezclan TTLs, determinamos tres ubicaciones de facturación en tu prompt:

    1. Posición A: El conteo de tokens en el acierto de caché más alto (o 0 si no hay aciertos).
    2. Posición B: El conteo de tokens en el bloque cache_control de 1 hora más alto después de A (o es igual a A si ninguno existe).
    3. Posición C: El conteo de tokens en el último bloque cache_control.

    Si B y/o C son mayores que A, necesariamente serán fallos de caché, porque A es el acierto de caché más alto.

    Se te cobrará por:

    1. Tokens de lectura de caché para A.
    2. Tokens de escritura de caché de 1 hora para (B - A).
    3. Tokens de escritura de caché de 5 minutos para (C - B).

    Aquí hay 3 ejemplos. Esto muestra los tokens de entrada de 3 solicitudes, cada una de las cuales tiene diferentes aciertos de caché y fallos de caché. Cada una tiene un precio calculado diferente, mostrado en los cuadros de colores, como resultado. Diagrama de Mezcla de TTLs


    Ejemplos de almacenamiento en caché de prompts

    Para ayudarte a comenzar con el almacenamiento en caché de prompts, hemos preparado un libro de recetas de almacenamiento en caché de prompts con ejemplos detallados y mejores prácticas.

    A continuación, hemos incluido varios fragmentos de código que muestran varios patrones de almacenamiento en caché de prompts. Estos ejemplos demuestran cómo implementar el almacenamiento en caché en diferentes escenarios, ayudándote a comprender las aplicaciones prácticas de esta característica:


    Preguntas frecuentes