Was this page helpful?
Cette page couvre la mise en cache des invites pour les définitions d'outils : où placer les points d'arrêt cache_control, comment defer_loading préserve votre cache, et ce qui l'invalide. Pour la mise en cache générale des invites, consultez Mise en cache des invites.
Placez cache_control: {"type": "ephemeral"} sur le dernier outil de votre tableau tools. Cela met en cache l'intégralité du préfixe des définitions d'outils, du premier outil jusqu'au point d'arrêt marqué :
{
"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" }
}
]
}Pour mcp_toolset, le point d'arrêt cache_control se place sur le dernier outil de l'ensemble. Vous ne contrôlez pas l'ordre des outils dans un ensemble MCP, donc placez le point d'arrêt sur l'entrée mcp_toolset elle-même et l'API l'applique à l'outil final développé.
Les outils différés ne sont pas inclus dans le préfixe de l'invite système. Lorsque le modèle découvre un outil différé via recherche d'outils, la définition est ajoutée en ligne sous forme de bloc tool_reference dans l'historique de la conversation. Le préfixe reste inchangé, donc la mise en cache des invites est préservée.
Cela signifie que l'ajout d'outils de manière dynamique via la recherche d'outils ne casse pas votre cache. Vous pouvez commencer une conversation avec un petit ensemble d'outils toujours chargés (mis en cache), laisser le modèle découvrir des outils supplémentaires selon les besoins, et conserver le même accès au cache à chaque tour.
defer_loading agit également indépendamment de la construction de la grammaire pour le mode strict. La grammaire est construite à partir de l'ensemble complet des outils, quel que soit le nombre d'outils différés, donc la mise en cache des invites et la mise en cache de la grammaire sont toutes deux préservées lorsque les outils se chargent dynamiquement.
Le cache suit une hiérarchie de préfixes (tools → system → messages), donc une modification à un niveau invalide ce niveau et tout ce qui suit :
| Modification | Invalide |
|---|---|
| Modification des définitions d'outils | Cache entier (outils, système, messages) |
| Activation/désactivation de la recherche web ou des citations | Caches système et messages |
Modification de tool_choice | Cache des messages |
Modification de disable_parallel_tool_use | Cache des messages |
| Activation/désactivation de la présence d'images | Cache des messages |
| Modification des paramètres de réflexion | Cache des messages |
Si vous devez varier tool_choice au milieu d'une conversation, envisagez de placer des points d'arrêt de cache avant le point de variation.
| Outil | Considérations de mise en cache |
|---|---|
| Recherche web | L'activation ou la désactivation invalide les caches système et messages |
| Récupération web | L'activation ou la désactivation invalide les caches système et messages |
| Exécution de code | L'état du conteneur est indépendant du cache d'invite |
| Recherche d'outils | Les outils découverts se chargent sous forme de blocs tool_reference, préservant le cache de préfixe |
| Utilisation d'ordinateur | La présence de captures d'écran affecte le cache des messages |
| Éditeur de texte | Outil client standard, aucune interaction de mise en cache spéciale |
| Bash | Outil client standard, aucune interaction de mise en cache spéciale |
| Mémoire | Outil client standard, aucune interaction de mise en cache spéciale |
Parcourez tous les outils disponibles et leurs paramètres.