Salut KAMI1a,
En tant qu’ingénieur en automatisation IA exécutant quotidiennement des charges de production avec Anthropic et n8n, je comprends parfaitement ta frustration. Quand tu exécutes 10–20 messages par conversation sur plusieurs clients, les system prompts non mis en cache vont absolument dévorer ton budget API.
@achamm a tout à fait raison—n8n n’expose pas nativement le paramètre cache_control dans les Options avancées du nœud Anthropic Chat Model pour le moment.
En attendant que le support natif arrive sur la feuille de route, tu n’as pas besoin de saigner ton budget API. Le meilleur contournement de qualité production en ce moment est d’intercepter la requête et d’injecter toi-même les en-têtes de cache.
Voici exactement comment mettre ça en place :
La Solution : L’astuce du proxy Cloudflare Worker
Au lieu d’envoyer les requêtes de n8n directement à Anthropic, tu pointes n8n vers un Worker Cloudflare léger et gratuit. Le Worker récupère le payload de n8n, injecte le bloc cache_control: {"type": "ephemeral"} dans le tableau du system prompt, et le transmet à Anthropic.
1. Déployer le Cloudflare Worker
Crée un nouveau Cloudflare Worker et colle un script qui intercepte le corps de la requête POST entrante. Ton code JavaScript à l’intérieur du worker devrait ressembler à ceci :
JavaScript
export default {
async fetch(request, env) {
if (request.method === "POST") {
let body = await request.json();
// Injecter cache_control dans le system prompt s'il existe
if (body.system && typeof body.system === 'string') {
body.system = [
{
type: "text",
text: body.system,
cache_control: { type: "ephemeral" }
}
];
}
// Transmettre la requête modifiée à Anthropic
const modifiedRequest = new Request("https://api.anthropic.com/v1/messages", {
method: "POST",
headers: request.headers,
body: JSON.stringify(body)
});
return fetch(modifiedRequest);
}
return new Response("Method not allowed", { status: 405 });
}
};
2. Mettre à jour les identifiants n8n
-
Va dans ton gestionnaire Credentials dans n8n et ouvre ta configuration API Anthropic.
-
Active l’option de remplacement Base URL (tu devras peut-être activer les paramètres avancés).
-
Remplace https://api.anthropic.com/v1 par l’URL de ton Cloudflare Worker déployé (par exemple, https://your-worker-name.workers.dev).
Les pièges critiques de production à retenir
Puisque tu exécutes ça pour de vrais clients, garde ces deux règles en tête pour t’assurer que tu obtiens réellement un cache hit :
-
Garde le préfixe statique : Anthropic exige que le bloc mis en cache (system prompt + outils) soit entièrement stable. Si ton nœud AI Agent injecte dynamiquement des données variables (comme l’heure actuelle ou le nom d’un client changeant) directement dans la chaîne du system prompt, ça invalidera le cache à chaque tour. Garde les données dynamiques à l’intérieur des messages utilisateur à la place.
-
Fais attention au minimum de tokens : Anthropic déclenche le cache du prompt seulement si ton préfixe de prompt est supérieur à 1 024 tokens (Sonnet/Opus). Puisque ton system prompt fait ~1 500 tokens, tu es parfaitement couvert, mais garde ça en tête si tu essaies de réduire les prompts plus petits !
Cette petite couche de middleware proxy devrait réduire immédiatement tes coûts de messages récurrents de jusqu’à 90 % jusqu’à ce que la fonctionnalité native arrive.
Fais-moi savoir si tu as besoin d’aide pour ajuster le script du worker pour qu’il corresponde à ta structure de payload d’outils exacte !