• Messages
  • Agents gérés
  • Administration
Search...
⌘K
Premiers pas
Introduction à ClaudeDémarrage rapide
Développer avec Claude
Aperçu des fonctionnalitésUtilisation de l'API MessagesRaisons d'arrêt et repliRefus et repliCrédit de repli
Capacités du modèle
Réflexion étendueRéflexion adaptativeEffortBudgets de tâches (bêta)Mode rapide (aperçu de recherche)Sorties structuréesCitationsMessages en streamingTraitement par lotsRésultats de rechercheRefus en streamingPrise en charge multilingueEmbeddings
Outils
AperçuFonctionnement de l'utilisation d'outilsTutoriel : Créer un agent utilisant des outilsDéfinir des outilsGérer les appels d'outilsUtilisation d'outils en parallèleTool Runner (SDK)Utilisation d'outils stricteUtilisation d'outils avec mise en cache des promptsOutils serveurDépannageOutil de recherche webOutil de récupération webOutil d'exécution de codeOutil conseillerOutil de mémoireOutil BashOutil d'utilisation de l'ordinateurOutil d'éditeur de texte
Infrastructure des outils
Référence des outilsGérer le contexte des outilsCombinaisons d'outilsRecherche d'outilsAppel d'outils programmatiqueStreaming d'outils granulaire
Gestion du contexte
Fenêtres de contexteCompactageÉdition du contexteMise en cache des promptsMessages système en cours de conversationCréer un mode d'orchestrationDiagnostics de cache (bêta)Comptage de tokens
Travailler avec des fichiers
API FilesPrise en charge des PDFImages et vision
Compétences
AperçuDémarrage rapideBonnes pratiquesCompétences pour l'entrepriseCompétences dans l'API
MCP
Serveurs MCP distantsConnecteur MCP
Claude sur les plateformes cloud
Amazon BedrockAmazon Bedrock (ancienne version)Claude Platform sur AWSMicrosoft FoundryVertex AI
Log in
Crédit de repli
Loading...
Loading...
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
  • 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
  • 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
Messages/Développer avec Claude

Crédit de repli

Évitez de payer deux fois le coût du cache de prompt lorsque vous réessayez une requête Claude Fable 5 refusée sur un autre modèle.

Les caches de prompts sont propres à chaque modèle. Lorsque Claude Fable 5 refuse une requête et que vous réessayez sur un autre modèle, le préfixe de conversation qui était déjà mis en cache pour Claude Fable 5 doit être écrit de zéro dans le cache du nouveau modèle, et les écritures de cache coûtent plus cher que les lectures de cache. Le « fallback credit » (crédit de repli) élimine ce coût supplémentaire : le refus contient un jeton de crédit, vous renvoyez ce jeton lors de la nouvelle tentative, et celle-ci est facturée comme si la conversation s'était déroulée sur le nouveau modèle depuis le début.

Vous n'avez besoin de cette page que si vous construisez vous-même la nouvelle tentative : avec le SDK Ruby ou PHP, via HTTP brut, ou avec une logique de nouvelle tentative personnalisée. Le repli côté serveur et le middleware du SDK appliquent automatiquement le crédit de repli. Si vous utilisez l'un ou l'autre, ignorez cette page.

La page Refus et repli explique comment détecter les refus et choisir une approche de repli. La page Mise en cache des prompts explique les lectures et écritures de cache si ces termes vous sont nouveaux.

Le flux de base

  1. 1

    Activez la fonctionnalité avec l'en-tête bêta

    Envoyez la requête susceptible d'être refusée avec l'en-tête anthropic-beta: fallback-credit-2026-06-01. L'en-tête server-side-fallback-2026-06-01 donne également accès aux mêmes champs.

  2. 2

    Lisez deux champs dans le refus

    Lors d'un refus, stop_details inclut fallback_credit_token, une chaîne opaque qui représente le crédit, et fallback_has_prefill_claim, un booléen qui vous indique quelle forme de corps de requête utiliser pour la nouvelle tentative. Les deux valent null lorsqu'aucun crédit n'est disponible pour le refus.

  3. 3

    Construisez la nouvelle tentative

    Partez du corps de la requête refusée. Définissez model sur le modèle de repli et ajoutez le jeton comme paramètre de premier niveau fallback_credit_token. Choisissez la forme du corps dans le tableau ci-dessous.

  4. 4

    Envoyez la nouvelle tentative avec le même en-tête

    Envoyez la nouvelle tentative avec le même en-tête bêta fallback-credit-2026-06-01. La nouvelle tentative a besoin de cet en-tête pour utiliser le jeton.

Le champ fallback_has_prefill_claim vous indique si la nouvelle tentative peut poursuivre la sortie partielle du modèle refusé au lieu de recommencer :

fallback_has_prefill_claimCorps de la nouvelle tentative
trueLe corps de la requête refusée, inchangé, plus un message assistant ajouté à la fin dont le content reprend le content de la réponse refusée. Le modèle de la nouvelle tentative poursuit la réponse là où le modèle refusé s'est arrêté, et les appels d'outils serveur déjà terminés ne sont pas réexécutés.
falseLe corps de la requête refusée, inchangé.

Exemple

L'exemple ci-dessous effectue une requête susceptible d'être refusée, utilise le jeton de crédit lors d'une nouvelle tentative sur Claude Opus 4.8, et se dégrade en suivant l'échelle de rejet décrite dans Lorsqu'une nouvelle tentative est rejetée.

client = Anthropic()

request = {
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello, Claude"}],
}


def send(model, body):
    return client.beta.messages.create(
        model=model, betas=["fallback-credit-2026-06-01"], **body
    )


response = send("claude-fable-5", request)

if (
    response.stop_reason == "refusal"
    and (details := response.stop_details)
    and (token := details.fallback_credit_token)
):
    exact_body = request | {"fallback_credit_token": token}
    # Préférer la forme de continuation sauf si l'assertion est False
    if details.fallback_has_prefill_claim is not False:
        # Reprendre le contenu du refus, en supprimant les espaces finaux d'un
        # dernier bloc de texte (le validateur de préremplissage le rejette ; la
        # correspondance côté serveur tolère la modification). Les requêtes avec outils omettent aussi
        # les blocs tool_use non appariés, puis resuppriment les espaces après toute omission.
        echoed = [block.model_dump() for block in response.content]
        match echoed:
            case [*_, {"type": "text"} as final_block]:
                final_block["text"] = final_block["text"].rstrip()
        attempt = exact_body | {
            "messages": [
                *request["messages"],
                {"role": "assistant", "content": echoed},
            ]
        }
    else:
        attempt = exact_body

    try:
        response = send("claude-opus-4-8", attempt)
    except BadRequestError as error:
        if "redemption temporarily unavailable" in str(error):
            raise  # Transient: retry with the token within its five-minute window
        try:
            # Revenir au corps inchangé, toujours avec le jeton
            response = send("claude-opus-4-8", exact_body)
        except BadRequestError as error:
            if "redemption temporarily unavailable" in str(error):
                raise  # Transient: retry with the token within its five-minute window
            # Le jeton lui-même a été rejeté : l'abandonner et réessayer sans.
            response = send("claude-opus-4-8", request)

print(json.dumps({"stop_reason": response.stop_reason, "model": response.model}))

Où cela fonctionne

Le crédit de repli est en bêta sur l'API Claude, Claude Platform sur AWS, Amazon Bedrock, Vertex AI et Microsoft Foundry. Les jetons de crédit renvoyés dans les résultats de Message Batches ne peuvent pas être utilisés ; l'utilisation s'applique uniquement aux requêtes directes de l'API Messages.

Le modèle de la nouvelle tentative doit être l'une des cibles de repli autorisées du modèle refusé. Au lancement, la cible autorisée de Claude Fable 5 est Claude Opus 4.8 (claude-opus-4-8).

Vérifier que le crédit a été appliqué

Le remboursement est visible dans le usage de la nouvelle tentative : cache_creation_input_tokens est plus bas, et cache_read_input_tokens est plus élevé du même montant, par rapport à ce que la même requête indiquerait sans le jeton. Un écart de zéro signifie que le jeton a été honoré mais qu'il n'y avait rien à retarifer, par exemple parce que le cache du modèle de la nouvelle tentative était déjà chaud.

Lorsqu'une nouvelle tentative est rejetée

La plupart des nouvelles tentatives aboutissent dès le premier essai. Lorsque ce n'est pas le cas, l'API renvoie une erreur 400 qui vous indique quoi essayer ensuite.

  1. 1

    Continuation rejetée : renvoyez le corps inchangé

    Si la nouvelle tentative qui ajoute le message assistant est rejetée avec une erreur 400, renvoyez le corps de la requête refusée inchangé, toujours avec le jeton.

  2. 2

    Jeton rejeté : supprimez le jeton

    Si le corps inchangé est également rejeté avec une erreur 400 dont le message mentionne fallback_credit_token, réessayez sans le jeton. Le crédit est perdu, mais la nouvelle tentative elle-même aboutit.

Si la requête refusée a exécuté des outils serveur, une nouvelle tentative sans jeton réexécute et refacture ces outils. Dans ce cas, remontez l'erreur 400 à votre appelant au lieu de passer à une nouvelle tentative sans jeton.

Référence

Les sections ci-dessous couvrent les cas limites et les règles complètes d'utilisation du crédit. La plupart des intégrations n'en ont pas besoin.

Étapes suivantes

Refus et repli

Détectez les refus et choisissez entre le repli côté serveur, le middleware du SDK et une nouvelle tentative manuelle.

Mise en cache des prompts

Comment les lectures et écritures de cache sont facturées.

Raisons d'arrêt et repli

Chaque valeur de stop_reason et comment la gérer.

Middleware du SDK

L'assistant du SDK qui applique automatiquement le crédit de repli.

Was this page helpful?

  • Le flux de base
  • Exemple
  • Où cela fonctionne
  • Vérifier que le crédit a été appliqué
  • Lorsqu'une nouvelle tentative est rejetée
  • Référence
  • Étapes suivantes