Esta página cubre el "prompt caching" (almacenamiento en caché de prompts) para definiciones de herramientas: dónde colocar los puntos de interrupción de cache_control, cómo defer_loading preserva tu caché y qué la invalida. Para el almacenamiento en caché de prompts en general, consulta Almacenamiento en caché de prompts.
Coloca cache_control: {"type": "ephemeral"} en la última herramienta de tu arreglo tools. Esto almacena en caché todo el prefijo de definiciones de herramientas, desde la primera herramienta hasta el punto de interrupción marcado:
{
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": { "type": "string" }
},
"required": ["location"]
}
},
{
"name": "get_time",
"description": "Get the current time in a given time zone",
"input_schema": {
"type": "object",
"properties": {
"timezone": { "type": "string" }
},
"required": ["timezone"]
},
"cache_control": { "type": "ephemeral" }
}
]
}Para mcp_toolset, el punto de interrupción de cache_control se ubica en la última herramienta del conjunto. No controlas el orden de las herramientas dentro de un conjunto de herramientas MCP, así que coloca el punto de interrupción en la entrada mcp_toolset misma y la API lo aplica a la última herramienta expandida.
Las entradas de conjunto de herramientas de uso de computadora y uso de navegador siguen la misma regla: coloca cache_control en la entrada del conjunto de herramientas misma, y el punto de interrupción se ubica después de la definición del conjunto de herramientas. No se acepta dentro de la entrada configs de un miembro, porque los miembros del conjunto de herramientas se cargan como una sola definición. Dentro de una acción por lotes, un marcador cache_control en cualquiera de los bloques tool_use o tool_result de los miembros del turno se acepta y surte efecto al final de ese lote, por lo que varios marcadores en un lote actúan como un único punto de interrupción. Cada marcador sigue contando para el límite de la solicitud de cuatro puntos de interrupción, así que usa uno por turno.
Las herramientas diferidas no se incluyen en el prefijo de la indicación del sistema. Cuando el modelo descubre una herramienta diferida mediante la búsqueda de herramientas, la definición se agrega en línea como un bloque tool_reference en el historial de la conversación. El prefijo permanece intacto, por lo que el almacenamiento en caché de prompts se preserva.
Esto significa que agregar herramientas dinámicamente mediante la búsqueda de herramientas no rompe tu caché. Puedes iniciar una conversación con un pequeño conjunto de herramientas siempre cargadas (en caché), dejar que el modelo descubra herramientas adicionales según sea necesario y mantener el mismo acierto de caché en cada turno.
defer_loading también actúa de forma independiente de la construcción de la gramática para el modo estricto. La gramática se construye a partir del conjunto completo de herramientas sin importar cuáles estén diferidas, por lo que tanto el almacenamiento en caché de prompts como el almacenamiento en caché de la gramática se preservan cuando las herramientas se cargan dinámicamente.
La caché sigue una jerarquía de prefijos (tools → system → messages), por lo que un cambio en un nivel invalida ese nivel y todo lo que le sigue:
| Cambio | Invalida |
|---|---|
| Modificar las definiciones de herramientas | Toda la caché (tools, system, messages) |
| Activar o desactivar la búsqueda web o las citas | Cachés de system y messages |
Cambiar tool_choice | Caché de messages |
Cambiar disable_parallel_tool_use | Caché de messages |
| Alternar la presencia/ausencia de imágenes | Caché de messages |
| Cambiar los parámetros de pensamiento | Caché de messages siempre; también las cachés de tools y system en modelos que renderizan la configuración de pensamiento antes de ellas (detalles) |
Cambiar output_config.effort | Igual que los parámetros de pensamiento; establecer explícitamente el valor predeterminado del modelo equivale a omitirlo |
Cuando tu solicitud tiene habilitado el almacenamiento en caché de prompts y Claude usa una herramienta de servidor como búsqueda web, obtención web o ejecución de código, la API coloca automáticamente un punto de interrupción de caché en el resultado de la herramienta de servidor antes de ejecutar la siguiente iteración del bucle agéntico. Esto permite que las iteraciones posteriores dentro de la misma solicitud lean el prefijo creciente desde la caché en lugar de reprocesarlo.
Este punto de interrupción automático siempre usa el TTL predeterminado de 5 minutos, independientemente de cualquier TTL que establezcas en tus propios marcadores cache_control. En el usage de la respuesta, estas escrituras aparecen bajo cache_creation.ephemeral_5m_input_tokens, por lo que podrías ver escrituras de caché de 5 minutos incluso cuando cada cache_control que establezcas use un TTL de 1 hora.
Este comportamiento solo se aplica cuando tu solicitud ya tiene al menos un marcador cache_control. Las solicitudes sin almacenamiento en caché de prompts no reciben el punto de interrupción automático.
| Herramienta | Consideraciones de almacenamiento en caché |
|---|---|
| Búsqueda web | Habilitarla o deshabilitarla invalida las cachés de system y messages |
| Obtención web | Habilitarla o deshabilitarla invalida las cachés de system y messages |
| Ejecución de código | El estado del contenedor es independiente de la caché de prompts |
| Búsqueda de herramientas | Las herramientas descubiertas se cargan como bloques tool_reference, preservando la caché del prefijo |
| Uso de computadora | La presencia de capturas de pantalla afecta la caché de messages; cache_control va en la entrada del conjunto de herramientas (consulta cache_control en definiciones de herramientas) |
| Uso de navegador | La presencia de capturas de pantalla afecta la caché de messages; cache_control va en la entrada del conjunto de herramientas (consulta cache_control en definiciones de herramientas) |
| Editor de texto | Herramienta de cliente estándar, sin interacción especial con la caché |
| Bash | Herramienta de cliente estándar, sin interacción especial con la caché |
| Memoria | Herramienta de cliente estándar, sin interacción especial con la caché |
Aprende el modelo completo de almacenamiento en caché de prompts, incluidos los TTL y los precios.
Carga herramientas bajo demanda sin romper tu caché.
Explora todas las herramientas disponibles y sus parámetros.
Was this page helpful?