Comment utiliser l'API Claude Sonnet 4.6 ?

Ashley Innocent

Ashley Innocent

18 February 2026

Comment utiliser l'API Claude Sonnet 4.6 ?

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Explorer Apidog Enterprise

TL;DR / Réponse rapide

Claude Sonnet 4.6 est le dernier modèle de milieu de gamme d'Anthropic, combinant des performances de codage de pointe avec une fenêtre de contexte d'un million de jetons (en version bêta) pour seulement 3 $/15 $ par million de jetons d'entrée/sortie. Pour commencer à utiliser l'API : 1) Obtenez une clé API sur console.anthropic.com, 2) Installez le SDK (pip install anthropic), 3) Utilisez l'ID de modèle claude-sonnet-4-6, et 4) Passez à la pensée adaptative (thinking: {type: "adaptive"}) pour de meilleurs résultats. Les premiers testeurs l'ont préféré à Sonnet 4.5 à 70 % et même à Opus 4.5 à 59 %.

Introduction

Anthropic a publié Claude Sonnet 4.6, et il redéfinit immédiatement la catégorie des modèles d'IA de milieu de gamme. Il ne s'agit pas d'une mise à jour incrémentielle – c'est un modèle qui surpasse le précédent modèle de niveau premium Opus 4.5 lors de tests comparatifs à 59 % selon les premiers utilisateurs, tout en conservant le prix de Sonnet.

Benchmark de Claude Sonnet 4.6

Les principales nouveautés : une fenêtre de contexte d'un million de jetons en version bêta, un nouveau mode de pensée adaptative qui remplace l'ancienne approche de pensée étendue binaire, et une suite d'outils – recherche web, exécution de code, mémoire et recherche d'outils – passant à la disponibilité générale. Pour les développeurs créant des applications agentiques, Sonnet 4.6 offre les capacités auparavant réservées aux modèles de pointe coûteux pour environ un tiers du coût.

Les améliorations de codage sont tangibles. Les utilisateurs signalent une meilleure exécution des instructions dans la génération de code, une compréhension plus intelligente du contexte avant d'apporter des modifications, et une réduction de la duplication de code grâce à la consolidation logique automatique. L'utilisation informatique atteint 94 % de précision sur les flux de travail complexes d'assurance. Le score SWE-bench Verified s'élève à 79,6 %.

Ce guide couvre tout ce dont vous avez besoin pour commencer à développer avec l'API Claude Sonnet 4.6 dès aujourd'hui : l'authentification, des exemples de code pratiques en Python et JavaScript, le nouveau paramètre de pensée adaptative, comment débloquer la fenêtre de contexte d'un million de jetons, et comment tester votre intégration avec le client API visuel d'Apidog.

💡
Développez plus rapidement avec Apidog. Tester manuellement les appels API de Claude est lent. Téléchargez Apidog pour configurer les requêtes, inspecter les réponses en streaming, déboguer l'authentification et générer du code SDK – le tout à partir d'une seule interface. Aucune configuration initiale n'est requise.
button

Quoi de neuf dans Claude Sonnet 4.6

Mode de pensée adaptative

L'ancien modèle thinking: {type: "enabled", budget_tokens: N} est obsolète sur Sonnet 4.6. Le remplacement est la pensée adaptative : thinking: {type: "adaptive"}. Claude décide désormais dynamiquement de la quantité de raisonnement nécessaire pour une tâche.

Associez la pensée adaptative au paramètre effort (désormais disponible en GA) pour ajuster le coût par rapport aux performances :

Performances de codage améliorées

Sonnet 4.6 apporte trois améliorations concrètes à la génération de code :

  1. Meilleure exécution des instructions — génère du code correspondant plus précisément aux spécifications
  2. Compréhension du contexte — lit et comprend le code existant avant de le modifier, réduisant ainsi les régressions
  3. Consolidation logique — identifie les modèles dupliqués et suggère des abstractions partagées

Les premiers testeurs ayant effectué des benchmarks de codage ont déclaré préférer les sorties de Sonnet 4.6 à celles de Sonnet 4.5 dans 70 % des cas et à celles d'Opus 4.5 dans 59 % des cas.

Améliorations de l'utilisation informatique

La précision de l'utilisation informatique atteint 72,5 % sur OSWorld-Verified (à 0,2 % près d'Opus 4.6), ce qui représente une amélioration significative par rapport à Sonnet 4.5. Le modèle affiche une précision de 94 % sur les flux de travail d'assurance nécessitant la navigation d'interface utilisateur, la manipulation de feuilles de calcul et la complétion de formulaires en plusieurs étapes. Il est également plus résistant aux attaques par injection de prompt lors des tâches automatisées.

Utilisation informatique Sonnet 4.6

Avancée ARC-AGI-2

Le chiffre de benchmark le plus frappant : la performance ARC-AGI-2 passe de 13,6 % à 58,3 % — une amélioration de 4,3x. Cela mesure la résolution de problèmes inédits sur des tâches pour lesquelles le modèle n'a pas vu de motifs, suggérant de véritables améliorations du raisonnement plutôt que de la mémorisation.

Spécifications de l'API et Tarification

Caractéristique Valeur
ID de modèle API claude-sonnet-4-6
ID AWS Bedrock anthropic.claude-sonnet-4-6
ID GCP Vertex AI claude-sonnet-4-6
Fenêtre de contexte 200K jetons (1M bêta avec en-tête)
Jetons de sortie max. 64K
Tarification d'entrée 3 $ / million de jetons
Tarification de sortie 15 $ / million de jetons
Économies de mise en cache des prompts Jusqu'à 90 %
Économies de l'API par lots Jusqu'à 50 %
Date limite de connaissance (fiable) Août 2025
Date limite des données d'entraînement Janvier 2026
Pensée étendue Oui
Pensée adaptative Oui
Niveau de priorité Oui

Options de réduction des coûts :

Pour les budgets de production : une conversation d'un million de jetons en mode de pensée adaptative avec effort: "medium" coûte environ 3 $ en jetons d'entrée. La plupart des appels API uniques coûtent bien moins d'un centime.

Démarrer avec l'API Claude Sonnet 4.6

Étape 1 : Obtenez votre clé API

  1. Connectez-vous à platform.anthropic.com
  2. Accédez à Clés API dans les paramètres
  3. Cliquez sur Créer une clé et copiez immédiatement la valeur (elle n'est affichée qu'une seule fois)
API Claude Sonnet 4.6

Stockez votre clé en tant que variable d'environnement — ne la codez jamais en dur :

export ANTHROPIC_API_KEY="sk-ant-..."

Étape 2 : Installez le SDK

Python :

pip install anthropic

JavaScript/Node.js :

npm install @anthropic-ai/sdk

Étape 3 : Effectuez votre première requête

import anthropic

client = anthropic.Anthropic()  # reads ANTHROPIC_API_KEY from environment

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Explain the difference between async/await and promises in JavaScript."}
    ]
)

print(response.content[0].text)

C'est l'appel minimal viable. L'objet de réponse inclut les statistiques d'utilisation (jetons d'entrée, jetons de sortie), la raison d'arrêt et la version du modèle.

Exemples de code Python

Génération de texte basique

import anthropic

client = anthropic.Anthropic()

def ask_claude(question: str, system: str = None) -> str:
    """Simple wrapper pour la génération de texte avec Claude Sonnet 4.6."""
    messages = [{"role": "user", "content": question}]

    kwargs = {
        "model": "claude-sonnet-4-6",
        "max_tokens": 2048,
        "messages": messages,
    }
    if system:
        kwargs["system"] = system

    response = client.messages.create(**kwargs)
    return response.content[0].text

# Exemple d'utilisation
answer = ask_claude(
    "Révisez cette fonction Python pour des problèmes de performance :\n\ndef find_duplicates(lst):\n    return [x for x in lst if lst.count(x) > 1]",
    system="Vous êtes un ingénieur Python senior. Soyez précis et fournissez le code corrigé."
)
print(answer)

Réponses en streaming

Pour les sorties longues ou une expérience utilisateur en temps réel, utilisez le streaming :

import anthropic

client = anthropic.Anthropic()

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    messages=[{
        "role": "user",
        "content": "Écrivez un gestionnaire d'API REST complet en FastAPI pour l'authentification des utilisateurs avec JWT."
    }]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

# Obtenez le message final avec les statistiques d'utilisation une fois le stream terminé
message = stream.get_final_message()
print(f"\n\nJetons utilisés : {message.usage.input_tokens} en entrée, {message.usage.output_tokens} en sortie")

Appel d'outils / Utilisation de fonctions

import anthropic
import json

client = anthropic.Anthropic()

# Définir les outils
tools = [
    {
        "name": "get_repository_info",
        "description": "Récupère des informations sur un dépôt GitHub, y compris les étoiles, les forks et les commits récents.",
        "input_schema": {
            "type": "object",
            "properties": {
                "owner": {
                    "type": "string",
                    "description": "Nom du propriétaire ou de l'organisation du dépôt"
                },
                "repo": {
                    "type": "string",
                    "description": "Nom du dépôt"
                }
            },
            "required": ["owner", "repo"]
        }
    }
]

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    tools=tools,
    messages=[{
        "role": "user",
        "content": "Que pouvez-vous me dire sur le dépôt anthropics/anthropic-sdk-python ?"
    }]
)

# Gérer la réponse d'utilisation de l'outil
for block in response.content:
    if block.type == "tool_use":
        print(f"Outil appelé : {block.name}")
        print(f"Arguments : {json.dumps(block.input, indent=2)}")
        # En production, appelez votre implémentation réelle ici
        # result = get_repository_info(block.input["owner"], block.input["repo"])

Vision et analyse d'images

import anthropic
import base64
from pathlib import Path

client = anthropic.Anthropic()

def analyze_image(image_path: str, question: str) -> str:
    """Analysez une image avec Claude Sonnet 4.6."""
    image_data = base64.standard_b64encode(Path(image_path).read_bytes()).decode("utf-8")

    # Détecter le type de média à partir de l'extension
    ext = Path(image_path).suffix.lower()
    media_type_map = {
        ".jpg": "image/jpeg",
        ".jpeg": "image/jpeg",
        ".png": "image/png",
        ".gif": "image/gif",
        ".webp": "image/webp"
    }
    media_type = media_type_map.get(ext, "image/jpeg")

    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        messages=[{
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": media_type,
                        "data": image_data,
                    },
                },
                {
                    "type": "text",
                    "text": question
                }
            ],
        }]
    )
    return response.content[0].text

# Exemple : analysez une capture d'écran d'interface utilisateur pour des problèmes d'accessibilité
result = analyze_image(
    "screenshot.png",
    "Identifiez les problèmes d'accessibilité dans cette conception d'interface utilisateur. Vérifiez les rapports de contraste, les indicateurs de texte alternatif manquants et les préoccupations concernant la navigation au clavier."
)
print(result)

Exemples JavaScript/Node.js

Configuration et requête de base

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY, // par défaut, affiché explicitement pour plus de clarté
});

async function askClaude(userMessage, systemPrompt = null) {
  const params = {
    model: "claude-sonnet-4-6",
    max_tokens: 2048,
    messages: [{ role: "user", content: userMessage }],
  };

  if (systemPrompt) {
    params.system = systemPrompt;
  }

  const response = await client.messages.create(params);
  return response.content[0].text;
}

// Utilisation
const answer = await askClaude(
  "Refactorisez cette route Express pour utiliser async/await :\n\napp.get('/users', (req, res) => {\n  User.find({}, (err, users) => {\n    if (err) return res.status(500).send(err);\n    res.json(users);\n  });\n});",
  "Vous êtes un développeur Node.js senior. Retournez uniquement le code refactorisé avec une brève explication."
);

console.log(answer);

Streaming avec TypeScript

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

async function streamCodeReview(codeSnippet: string): Promise<void> {
  const stream = await client.messages.stream({
    model: "claude-sonnet-4-6",
    max_tokens: 4096,
    messages: [
      {
        role: "user",
        content: `Effectuez une revue de code approfondie de cette fonction TypeScript :\n\n\`\`\`typescript\n${codeSnippet}\n\`\`\`\n\nConcentrez-vous sur : la sécurité des types, les cas limites, les performances et la sécurité.`,
      },
    ],
  });

  // Diffuser le texte au fur et à mesure de sa réception
  stream.on("text", (text) => {
    process.stdout.write(text);
  });

  // Obtenir les statistiques finales
  const finalMessage = await stream.finalMessage();
  console.log(
    `\n\n---\nJetons totaux : ${finalMessage.usage.input_tokens + finalMessage.usage.output_tokens}`
  );
}

Conversation multi-tours

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

class ConversationManager {
  constructor(systemPrompt = null) {
    this.messages = [];
    this.systemPrompt = systemPrompt;
  }

  async chat(userMessage) {
    this.messages.push({ role: "user", content: userMessage });

    const params = {
      model: "claude-sonnet-4-6",
      max_tokens: 2048,
      messages: this.messages,
    };

    if (this.systemPrompt) {
      params.system = this.systemPrompt;
    }

    const response = await client.messages.create(params);
    const assistantMessage = response.content[0].text;

    // Maintenir l'historique de la conversation
    this.messages.push({ role: "assistant", content: assistantMessage });

    return assistantMessage;
  }
}

// Exemple : session de débogage multi-tours
const debugSession = new ConversationManager(
  "Vous êtes un expert en débogage. Posez des questions de clarification et examinez les problèmes étape par étape."
);

console.log(await debugSession.chat("Mon API continue de retourner des erreurs 401."));
console.log(await debugSession.chat("J'inclus l'en-tête Authorization."));
console.log(
  await debugSession.chat("Le jeton provient du localStorage après la connexion.")
);

Pensée adaptative : La nouvelle pensée étendue

La pensée adaptative remplace l'ancien modèle de pensée étendue sur Sonnet 4.6. La principale différence : au lieu de définir un budget de jetons fixe pour la pensée, vous définissez un niveau d'effort et Claude détermine la quantité de raisonnement que le problème justifie réellement.

Comment utiliser la pensée adaptative

import anthropic

client = anthropic.Anthropic()

# Recommandé : pensée adaptative avec effort moyen pour la plupart des cas d'utilisation
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    effort="medium",  # options : "low", "medium", "high" (par défaut : high)
    messages=[{
        "role": "user",
        "content": """
        Concevez un schéma de base de données pour une plateforme d'analyse SaaS qui doit :
        - Suivre les événements de millions d'utilisateurs
        - Supporter les requêtes en temps réel sur les dernières 24 heures
        - Archiver les données historiques de manière rentable
        - Gérer l'isolation des locataires pour les clients d'entreprise
        """
    }]
)

# Les blocs de pensée apparaissent avant la réponse textuelle
for block in response.content:
    if block.type == "thinking":
        print(f"[Raisonnement de Claude - {len(block.thinking)} caractères]")
    elif block.type == "text":
        print(block.text)

Niveaux d'effort en pratique

Effort Idéal pour Coût relatif Vitesse relative
low Classification, Q&R simples, formatage 1x Le plus rapide
medium Génération de code, analyse, la plupart des tâches 1.5-2x Rapide
high Décisions d'architecture, débogage complexe, mathématiques 3-5x Modéré
Note de migration :thinking: {type: "enabled", budget_tokens: N}thinking: {type: "adaptive"}effort

Fenêtre de contexte d'un million de jetons

La fenêtre de contexte d'un million de jetons vous permet de fournir à Claude des bases de code entières, des ensembles de documents étendus ou des mois d'historique de conversation. Cela représente environ 750 000 mots ou l'équivalent de 5 à 10 bases de code complètes en une seule requête.

Comment activer le contexte d'un million de jetons

Passez l'en-tête bêta context-1m-2025-08-07 dans votre requête :

import anthropic

client = anthropic.Anthropic()

# Lire une base de code entière et volumineuse
with open("large_codebase.txt", "r") as f:
    codebase_content = f.read()

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    betas=["context-1m-2025-08-07"],
    messages=[{
        "role": "user",
        "content": f"""
        Voici l'intégralité de notre base de code backend :\n\n{codebase_content}\n\n
        Trouvez toutes les requêtes de base de données qui pourraient causer des problèmes N+1 et suggérez des corrections.
        """
    }]
)

print(response.content[0].text)
// Équivalent JavaScript
const response = await client.beta.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 4096,
  betas: ["context-1m-2025-08-07"],
  messages: [
    {
      role: "user",
      content: `Révisez l'intégralité de cette base de code pour les vulnérabilités de sécurité :\n\n${codebaseContent}`,
    },
  ],
});

Ce que permet un million de jetons

Note sur la tarification : Les requêtes dépassant 200K jetons utilisent la tarification du contexte long. Planifiez en conséquence pour une utilisation à fort volume.

Recherche Web et Filtrage Dynamique

Les outils de recherche web et de récupération web prennent désormais en charge le filtrage dynamique en version bêta publique sur Sonnet 4.6. Claude écrit et exécute du code pour filtrer les résultats de recherche avant qu'ils n'entrent dans la fenêtre de contexte — ne conservant que les informations pertinentes et réduisant considérablement l'utilisation des jetons.

L'exécution de code est gratuite lorsqu'elle est utilisée avec les outils de recherche web ou de récupération web (pas de facturation séparée).

Configuration de la recherche Web dynamique

import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    betas=["code-execution-web-tools-2026-02-09"],
    tools=[
        {
            "type": "web_search_20260209",  # Utilisez cette version pour le filtrage dynamique
            "name": "web_search",
        }
    ],
    messages=[{
        "role": "user",
        "content": "Trouvez les dernières CVE pour Apache Log4j publiées au cours des 30 derniers jours et résumez les niveaux de gravité."
    }]
)

for block in response.content:
    if hasattr(block, "text"):
        print(block.text)

Récupération Web avec filtrage dynamique

import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    betas=["code-execution-web-tools-2026-02-09"],
    tools=[
        {
            "type": "web_fetch_20260209",  # Nouvelle version avec filtrage dynamique
            "name": "web_fetch",
        }
    ],
    messages=[{
        "role": "user",
        "content": "Récupérez la page de tarification d'Anthropic et extrayez uniquement les lignes de tarification de Claude Sonnet."
    }]
)

print(response.content[-1].text)

Pourquoi le filtrage dynamique est important : Sans filtrage, récupérer une page web entière pourrait consommer 100K jetons pour une page où vous n'avez besoin que de 2K jetons de contenu pertinent. Le filtrage dynamique permet à Claude d'analyser la page dans le code et de ne retourner que ce qui est nécessaire, réduisant les coûts de plus de 90 % sur les pages à fort contenu.

API de compaction de contexte

La compaction de contexte gère les sessions agentiques de longue durée où le contexte s'accumule au-delà de la limite de la fenêtre. L'API résume automatiquement les parties plus anciennes de la conversation côté serveur lorsque la limite est proche, permettant une longueur de conversation effectivement illimitée.

import anthropic

client = anthropic.Anthropic()

# Activez la compaction de contexte via l'en-tête bêta
response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    betas=["interleaved-thinking-2025-05-14"],  # Active la compaction en bêta
    system="Vous êtes un agent de développement logiciel de longue durée. Maintenez le contexte des modifications de la base de code effectuées pendant cette session.",
    messages=[
        {"role": "user", "content": "Démarrez une session de refactoring pour notre module d'authentification."},
        # ... beaucoup plus de tours iraient ici dans une session réelle
    ]
)

# Le champ compaction_details indique quand la résumé a eu lieu
if hasattr(response, "usage") and hasattr(response.usage, "cache_read_input_tokens"):
    print(f"Jetons de contexte économisés via la mise en cache : {response.usage.cache_read_input_tokens}")

Quand utiliser la compaction : Tout flux de travail agentique qui dure plus de quelques minutes et accumule de l'historique — agents CI/CD, longues sessions de codage, fils de discussion du support client ou tâches de recherche en plusieurs étapes.

Tester Claude Sonnet 4.6 avec Apidog

Avant d'écrire du code SDK, utilisez Apidog pour explorer visuellement l'API Claude Sonnet 4.6. Apidog accélère le développement en vous permettant de configurer les en-têtes, de construire les corps de requête et d'inspecter les réponses en streaming sans configuration initiale.

Interface Apidog

Configuration de l'API Anthropic dans Apidog

  1. Ouvrez Apidog et créez une nouvelle requête HTTP
  2. Définissez la méthode sur POST et l'URL sur https://api.anthropic.com/v1/messages
  3. Ajoutez ces en-têtes :
En-tête Valeur
x-api-key {{ANTHROPIC_API_KEY}}
anthropic-version 2023-06-01
Content-Type application/json
  1. Définissez le corps de la requête en JSON :
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Quelles sont les améliorations clés de Claude Sonnet 4.6 ?"
    }
  ]
}

Test de la pensée adaptative

Pour tester le mode de pensée adaptative dans Apidog, ajoutez les champs thinking et effort à votre corps de requête :

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 8192,
  "thinking": {
    "type": "adaptive"
  },
  "effort": "medium",
  "messages": [
    {
      "role": "user",
      "content": "Concevez une stratégie de limitation de débit pour une API publique gérant 10 millions de requêtes par jour."
    }
  ]
}

Test des fonctionnalités bêta dans Apidog

Pour les fonctionnalités bêta (contexte d'un million de jetons, recherche web dynamique, compaction de contexte), ajoutez l'en-tête bêta :

En-tête Valeur
anthropic-beta context-1m-2025-08-07

Ou pour le filtrage dynamique de la recherche web :

En-tête Valeur
anthropic-beta code-execution-web-tools-2026-02-09

Apidog vous permet de sauvegarder ces configurations comme préréglages et de les partager avec votre équipe, afin que chacun dispose d'environnements de test API cohérents.

💡
Essayez Apidog gratuitement — Téléchargez Apidog pour tester vos intégrations Claude Sonnet 4.6 avec la construction visuelle de requêtes, des extraits de code générés automatiquement et des fonctionnalités de collaboration d'équipe. Aucune carte de crédit requise.
button

Nouveaux outils désormais en disponibilité générale

Plusieurs outils qui étaient auparavant en version bêta sont désormais généralement disponibles sur Sonnet 4.6, ce qui signifie qu'aucun en-tête bêta spécial n'est requis :

Outil d'exécution de code

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    tools=[{"type": "code_execution_20250522", "name": "code_execution"}],
    messages=[{
        "role": "user",
        "content": "Calculez les intérêts composés sur 10 000 $ à un taux annuel de 5 % sur 10 ans, avec capitalisation mensuelle. Présentez la ventilation année par année."
    }]
)

for block in response.content:
    if block.type == "tool_result":
        print("Sortie de l'exécution :", block.content)
    elif hasattr(block, "text"):
        print(block.text)

Outil de mémoire

L'outil de mémoire permet à Claude de persister des informations à travers les sessions de conversation, utile pour construire des assistants à état :

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    tools=[{"type": "memory_20250416", "name": "memory"}],
    messages=[{
        "role": "user",
        "content": "N'oubliez pas que l'URL de base de notre API est https://api.company.com/v2 et que nous exigeons l'authentification par jeton Bearer sur tous les points de terminaison."
    }]
)

Appel d'outil programmatique

L'appel d'outil programmatique permet à Claude de générer directement des appels API structurés :

import anthropic

client = anthropic.Anthropic()

# Claude peut désormais appeler des outils de manière programmatique sans intervention humaine
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    tools=[
        {
            "name": "execute_sql",
            "description": "Exécute une requête SQL et retourne les résultats",
            "input_schema": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "La requête SQL à exécuter"},
                    "database": {"type": "string", "description": "Nom de la base de données"}
                },
                "required": ["query", "database"]
            }
        }
    ],
    messages=[{
        "role": "user",
        "content": "Trouvez tous les utilisateurs qui se sont inscrits en janvier 2026 et n'ont pas effectué d'achat."
    }]
)

Sonnet 4.6 vs Modèles précédents

Claude Sonnet 4.6 Claude Sonnet 4.5 Claude Opus 4.5
ID API claude-sonnet-4-6 claude-sonnet-4-5-20250929 claude-opus-4-5-20251101
Prix d'entrée 3 $/MTok 3 $/MTok 5 $/MTok
Prix de sortie 15 $/MTok 15 $/MTok 25 $/MTok
Fenêtre de contexte 200K / 1M (bêta) 200K / 1M (bêta) 200K
Sortie max. 64K 64K 64K
Pensée adaptative Oui Non Non
Pensée étendue Oui (obsolète) Oui Oui
Score SWE-bench 79.6% ~72% ~76%
OSWorld (utilisation informatique) 72.5% ~65% ~72.7%
Filtrage de recherche web Oui (bêta) Non Non
Outils GA Exécution de code, récupération web, mémoire, recherche d'outils Moins de GA Suite complète
Préféré par les utilisateurs vs Sonnet 4.5 70%
Préféré par les utilisateurs vs Opus 4.5 59%

En résumé : Si vous utilisez Sonnet 4.5, la mise à niveau vers Sonnet 4.6 est une évidence — même prix, performances de codage nettement meilleures et pensée adaptative. Si vous utilisez Opus 4.5, Sonnet 4.6 l'égale ou le surpasse désormais dans la plupart des cas d'utilisation pour 60 % du coût.

Meilleures pratiques et conseils

1. Utilisez la pensée adaptative avec un effort moyen par défaut

Pour la plupart des cas d'utilisation de Sonnet 4.6, effort: "medium" offre le meilleur équilibre coût-performance. Réservez effort: "high" pour les tâches véritablement complexes comme la conception architecturale, les chaînes de raisonnement en plusieurs étapes ou les preuves mathématiques.

# Bon modèle par défaut pour Sonnet 4.6
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    thinking={"type": "adaptive"},
    effort="medium",  # Idéal pour la plupart des tâches
    messages=[...]
)

2. Utilisez le streaming pour les sorties de plus de 1K jetons

Les réponses volumineuses bénéficient du streaming pour éviter les délais d'attente HTTP et offrir aux utilisateurs des temps de réponse perçus plus rapides :

# Pour toute réponse censée être longue
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=8192,
    messages=[...]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

3. Activez la mise en cache des prompts pour les prompts système répétés

Si vous utilisez le même prompt système sur de nombreux appels, mettez-le en cache pour économiser jusqu'à 90 % :

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "Votre long prompt système ici...",
            "cache_control": {"type": "ephemeral"}  # Mettre en cache ce bloc
        }
    ],
    messages=[{"role": "user", "content": user_input}]
)

4. Gérez les limites de débit avec élégance

Sonnet 4.6 a des limites de débit généreuses, mais les systèmes de production devraient implémenter un backoff exponentiel :

import anthropic
import time

def create_with_retry(client, max_retries=3, **kwargs):
    for attempt in range(max_retries):
        try:
            return client.messages.create(**kwargs)
        except anthropic.RateLimitError:
            if attempt == max_retries - 1:
                raise
            wait_time = (2 ** attempt) + 1  # 2s, 3s, 5s
            time.sleep(wait_time)

5. Abandonnez le préremplissage sur Sonnet 4.6

Le préremplissage des messages d'assistant (préremplissages de dernière réplique) n'est pas pris en charge sur les modèles Claude 4.6. Utilisez plutôt des sorties structurées :

# Ancienne approche (ne fonctionne pas sur Claude 4.6) :
# messages = [
#     {"role": "user", "content": "Give me JSON..."},
#     {"role": "assistant", "content": "{"}  # Préremplissage
# ]

# Nouvelle approche : utilisez des sorties structurées
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    output_config={
        "format": {
            "type": "json_schema",
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "score": {"type": "number"}
                }
            }
        }
    },
    messages=[{"role": "user", "content": "Générez un exemple d'objet utilisateur."}]
)

6. Spécifiez AWS ou GCP pour la résidence des données

Si vos exigences de conformité nécessitent une inférence uniquement aux États-Unis, utilisez le paramètre inference_geo :

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    inference_geo="us",  # Assure que l'inférence s'exécute dans les centres de données américains
    messages=[...]
)

L'inférence uniquement aux États-Unis est facturée à 1,1 fois le tarif standard sur Sonnet 4.6.


Prêt à construire avec Claude Sonnet 4.6 ? Téléchargez Apidog gratuitement pour tester vos appels API visuellement, collaborer avec votre équipe sur les configurations de requêtes et générer automatiquement du code SDK — aucune carte de crédit requise.

button

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API