Anthropic blokkeerde twee modellen zonder waarschuwing - wat betekent dat voor jouw app?
Afgelopen vrijdagavond blokkeerde Anthropic op last van de Amerikaanse overheid plotseling alle toegang tot Fable 5 en Mythos 5, twee van hun nieuwste modellen. Niet alleen voor buitenlandse gebruikers: ook Amerikaanse klanten werden er af gehaald. De reden? Nationale veiligheidszorgen, mede aangewakkerd door onderzoek van Amazon. Je leest er meer over op The Verge.
Het gebeurde van het ene op het andere moment. Geen aankondiging, geen overgangstermijn.
Wat betekent dit voor jouw project?
Als jouw SaaS of tool hardcoded verwijst naar één specifiek model - claude-opus-4-5, gpt-4o, of welk model dan ook - dan is je app op slag kapot als dat model wordt ingetrokken, verwijderd of geblokkeerd. Dat is niet hypothetisch meer: het is vrijdag gewoon gebeurd.
De oplossing is eenvoudig: bouw een fallback in. Als model A een fout teruggeeft, probeer dan automatisch model B. Met Claude Code kun je dit binnen een kwartier regelen, ook als je geen developer bent.
Hoe pak je het aan met Claude Code?
Stap 1: vraag Claude Code om een overzicht van je huidige model-aanroepen
Open Claude Code in je project en geef deze prompt:
Zoek alle plekken in mijn codebase waar ik een AI-model aanroep via een API. Geef me een lijst van bestanden en regels waar een modelnaam hardcoded staat, zoals 'claude-opus', 'gpt-4o' of vergelijkbaar.
Claude Code scant je project en laat je precies zien waar je kwetsbaar zit.
Stap 2: laat Claude Code een fallback-functie schrijven
Geef daarna deze prompt:
Schrijf een herbruikbare functie
callWithFallbackdie eerst model A probeert aan te roepen via de Anthropic API. Als dat mislukt met een 4xx of 5xx fout, probeer dan automatisch model B. Log welk model er gebruikt is. Gebruik TypeScript.
Je krijgt dan iets vergelijkbaars met dit:
const PRIMARY_MODEL = "claude-opus-4-5";
const FALLBACK_MODEL = "claude-3-5-sonnet-20241022";
async function callWithFallback(
prompt: string,
systemPrompt?: string
): Promise<{ text: string; modelUsed: string }> {
const models = [PRIMARY_MODEL, FALLBACK_MODEL];
for (const model of models) {
try {
const response = await anthropic.messages.create({
model,
max_tokens: 1024,
system: systemPrompt,
messages: [{ role: "user", content: prompt }],
});
console.log(`Model gebruikt: ${model}`);
return {
text: response.content[0].type === "text" ? response.content[0].text : "",
modelUsed: model,
};
} catch (error: any) {
console.warn(`Model ${model} mislukt:`, error?.status ?? error?.message);
if (model === FALLBACK_MODEL) throw error;
}
}
throw new Error("Alle modellen zijn mislukt.");
}
Stap 3: zet de modelnamen in een config-bestand
Vraag Claude Code:
Verplaats de modelnamen naar een centraal config-bestand of omgevingsvariabelen, zodat ik ze snel kan aanpassen zonder in de code te duiken. Gebruik een
.env-variabele als PRIMARY_MODEL en FALLBACK_MODEL.
Zo ziet je .env eruit:
PRIMARY_MODEL=claude-opus-4-5
FALLBACK_MODEL=claude-3-5-sonnet-20241022
En in je code:
const PRIMARY_MODEL = process.env.PRIMARY_MODEL ?? "claude-opus-4-5";
const FALLBACK_MODEL = process.env.FALLBACK_MODEL ?? "claude-3-5-sonnet-20241022";
Nu kun je bij een nieuwe blokkade gewoon je .env aanpassen op je hosting-platform (Vercel, Railway, Render) zonder te deployen.
Stap 4: vervang de bestaande aanroepen
Geef tot slot deze prompt aan Claude Code:
Vervang alle directe Anthropic API-aanroepen in mijn codebase door de nieuwe
callWithFallback-functie. Laat de functiesignatuur zo vergelijkbaar mogelijk met de originele aanroepen, zodat er zo min mogelijk andere code hoeft te veranderen.
Claude Code doet de vervangingen en laat je precies zien wat er veranderd is via een diff.
Wat te checken na afloop
- Open je terminal en verander tijdelijk
PRIMARY_MODELnaar een nepnaam (claude-bestaat-niet) en kijk of de app automatisch overschakelt naar het fallback-model. - Check de logs: zie je de melding
Model gebruikt: claude-3-5-sonnet-...? Dan werkt de fallback. - Zet
PRIMARY_MODELterug naar de juiste waarde en doe een laatste test. - Controleer dat je
.env-bestand NIET in je Git-repository staat (check je.gitignore).
Vijf minuten werk nu voorkomt een harde crash op het moment dat het er echt toe doet.
Bij Eighty leer ik je Claude Code in het Nederlands gebruiken, van installatie tot een werkend SaaS-product. Wekelijks een nieuwe module, persoonlijke begeleiding.
