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.

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.
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 :
effort: "high"(par défaut) — Claude réfléchit presque toujours, idéal pour les problèmes complexeseffort: "medium"— recommandé pour la plupart des cas d'utilisation de Sonnet 4.6, équilibre vitesse et qualitéeffort: "low"— réflexion minimale, réponses les plus rapides pour les tâches simples
Performances de codage améliorées
Sonnet 4.6 apporte trois améliorations concrètes à la génération de code :
- Meilleure exécution des instructions — génère du code correspondant plus précisément aux spécifications
- Compréhension du contexte — lit et comprend le code existant avant de le modifier, réduisant ainsi les régressions
- 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.

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 :
- Mise en cache des prompts : Mettez en cache les parties statiques de votre prompt système et économisez jusqu'à 90 %
- API par lots : Traitez les requêtes de manière asynchrone pour une réduction de 50 %
- Tarification du contexte long : Les requêtes dépassant 200K jetons utilisent un taux de contexte long distinct
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
- Connectez-vous à platform.anthropic.com
- Accédez à Clés API dans les paramètres
- Cliquez sur Créer une clé et copiez immédiatement la valeur (elle n'est affichée qu'une seule fois)

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"}effortFenê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
- Analyse complète de la base de code : Envoyez l'intégralité de votre dépôt et demandez à Claude de trouver des bugs, de suggérer des refactorisations ou de générer des tests
- Traitement de documents longs : Analysez des contrats juridiques complets, des rapports financiers ou des articles de recherche
- Sessions agentiques étendues : Conservez l'historique complet des longues tâches en plusieurs étapes sans perdre le contexte
- Traçage des dépendances inter-fichiers : Trouvez toutes les utilisations d'une fonction ou d'une classe à travers un grand projet
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.

Configuration de l'API Anthropic dans Apidog
- Ouvrez Apidog et créez une nouvelle requête HTTP
- Définissez la méthode sur
POSTet l'URL surhttps://api.anthropic.com/v1/messages - Ajoutez ces en-têtes :
| En-tête | Valeur |
|---|---|
x-api-key |
{{ANTHROPIC_API_KEY}} |
anthropic-version |
2023-06-01 |
Content-Type |
application/json |
- 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.
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.
