Essayez la nouvelle interface V2 (aperçu) : Une interface simplifiée avec les modèles
send() et stream() est maintenant disponible, ce qui facilite les conversations multi-tours. En savoir plus sur l’aperçu TypeScript V2Installation
Le SDK regroupe un binaire Claude Code natif pour votre plateforme en tant que dépendance optionnelle telle que
@anthropic-ai/claude-agent-sdk-darwin-arm64. Vous n’avez pas besoin d’installer Claude Code séparément. Si votre gestionnaire de paquets ignore les dépendances optionnelles, le SDK lève Native CLI binary for <platform> not found ; définissez pathToClaudeCodeExecutable sur un binaire claude installé séparément à la place.Fonctions
query()
La fonction principale pour interagir avec Claude Code. Crée un générateur asynchrone qui diffuse les messages au fur et à mesure de leur arrivée.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | L’invite d’entrée sous forme de chaîne ou d’itérable asynchrone pour le mode de diffusion |
options | Options | Objet de configuration optionnel (voir le type Options ci-dessous) |
Retours
Retourne un objetQuery qui étend AsyncGenerator<SDKMessage, void> avec des méthodes supplémentaires.
startup()
Préconfigure le sous-processus CLI en le générant et en complétant la poignée de main d’initialisation avant qu’une invite soit disponible. Le handle WarmQuery retourné accepte une invite plus tard et l’écrit dans un processus déjà prêt, de sorte que le premier appel query() se résout sans payer le coût de génération et d’initialisation du sous-processus en ligne.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
options | Options | Objet de configuration optionnel. Identique au paramètre options de query() |
initializeTimeoutMs | number | Temps maximum en millisecondes à attendre pour l’initialisation du sous-processus. Par défaut 60000. Si l’initialisation ne se termine pas à temps, la promesse est rejetée avec une erreur de délai d’expiration |
Retours
Retourne unePromise<WarmQuery> qui se résout une fois que le sous-processus a été généré et a complété sa poignée de main d’initialisation.
Exemple
Appelezstartup() tôt, par exemple au démarrage de l’application, puis appelez .query() sur le handle retourné une fois qu’une invite est prête. Cela déplace la génération du sous-processus et l’initialisation en dehors du chemin critique.
tool()
Crée une définition d’outil MCP type-safe pour une utilisation avec les serveurs MCP du SDK.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
name | string | Le nom de l’outil |
description | string | Une description de ce que fait l’outil |
inputSchema | Schema extends AnyZodRawShape | Schéma Zod définissant les paramètres d’entrée de l’outil (supporte Zod 3 et Zod 4) |
handler | (args, extra) => Promise<CallToolResult> | Fonction asynchrone qui exécute la logique de l’outil |
extras | { annotations?: ToolAnnotations } | Annotations MCP optionnelles fournissant des indices comportementaux aux clients |
ToolAnnotations
Réexportée depuis @modelcontextprotocol/sdk/types.js. Tous les champs sont des indices optionnels ; les clients ne doivent pas s’y fier pour les décisions de sécurité.
| Champ | Type | Par défaut | Description |
|---|---|---|---|
title | string | undefined | Titre lisible par l’homme pour l’outil |
readOnlyHint | boolean | false | Si true, l’outil ne modifie pas son environnement |
destructiveHint | boolean | true | Si true, l’outil peut effectuer des mises à jour destructrices (uniquement significatif quand readOnlyHint est false) |
idempotentHint | boolean | false | Si true, les appels répétés avec les mêmes arguments n’ont aucun effet supplémentaire (uniquement significatif quand readOnlyHint est false) |
openWorldHint | boolean | true | Si true, l’outil interagit avec des entités externes (par exemple, recherche web). Si false, le domaine de l’outil est fermé (par exemple, un outil de mémoire) |
createSdkMcpServer()
Crée une instance de serveur MCP qui s’exécute dans le même processus que votre application.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
options.name | string | Le nom du serveur MCP |
options.version | string | Chaîne de version optionnelle |
options.tools | Array<SdkMcpToolDefinition> | Tableau de définitions d’outils créées avec tool() |
listSessions()
Découvre et répertorie les sessions passées avec des métadonnées légères. Filtrez par répertoire de projet ou répertoriez les sessions dans tous les projets.
Paramètres
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
options.dir | string | undefined | Répertoire pour lequel répertorier les sessions. Lorsqu’il est omis, retourne les sessions dans tous les projets |
options.limit | number | undefined | Nombre maximum de sessions à retourner |
options.includeWorktrees | boolean | true | Quand dir est à l’intérieur d’un référentiel git, inclure les sessions de tous les chemins worktree |
Type de retour : SDKSessionInfo
| Propriété | Type | Description |
|---|---|---|
sessionId | string | Identifiant de session unique (UUID) |
summary | string | Titre d’affichage : titre personnalisé, résumé généré automatiquement ou première invite |
lastModified | number | Heure de dernière modification en millisecondes depuis l’époque |
fileSize | number | undefined | Taille du fichier de session en octets. Rempli uniquement pour le stockage JSONL local |
customTitle | string | undefined | Titre de session défini par l’utilisateur (via /rename) |
firstPrompt | string | undefined | Première invite utilisateur significative dans la session |
gitBranch | string | undefined | Branche Git à la fin de la session |
cwd | string | undefined | Répertoire de travail pour la session |
tag | string | undefined | Étiquette de session définie par l’utilisateur (voir tagSession()) |
createdAt | number | undefined | Heure de création en millisecondes depuis l’époque, à partir de l’horodatage de la première entrée |
Exemple
Imprimez les 10 sessions les plus récentes pour un projet. Les résultats sont triés parlastModified décroissant, donc le premier élément est le plus récent. Omettez dir pour rechercher dans tous les projets.
getSessionMessages()
Lit les messages utilisateur et assistant à partir d’une transcription de session passée.
Paramètres
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
sessionId | string | requis | UUID de session à lire (voir listSessions()) |
options.dir | string | undefined | Répertoire de projet pour trouver la session. Lorsqu’il est omis, recherche dans tous les projets |
options.limit | number | undefined | Nombre maximum de messages à retourner |
options.offset | number | undefined | Nombre de messages à ignorer à partir du début |
Type de retour : SessionMessage
| Propriété | Type | Description |
|---|---|---|
type | "user" | "assistant" | Rôle du message |
uuid | string | Identifiant de message unique |
session_id | string | Session à laquelle ce message appartient |
message | unknown | Charge utile de message brute de la transcription |
parent_tool_use_id | null | Réservé |
Exemple
getSessionInfo()
Lit les métadonnées d’une seule session par ID sans analyser le répertoire de projet complet.
Paramètres
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
sessionId | string | requis | UUID de la session à rechercher |
options.dir | string | undefined | Chemin du répertoire de projet. Lorsqu’il est omis, recherche dans tous les répertoires de projet |
SDKSessionInfo, ou undefined si la session n’est pas trouvée.
renameSession()
Renomme une session en ajoutant une entrée de titre personnalisé. Les appels répétés sont sûrs ; le titre le plus récent gagne.
Paramètres
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
sessionId | string | requis | UUID de la session à renommer |
title | string | requis | Nouveau titre. Doit être non vide après suppression des espaces blancs |
options.dir | string | undefined | Chemin du répertoire de projet. Lorsqu’il est omis, recherche dans tous les répertoires de projet |
tagSession()
Étiquette une session. Passez null pour effacer l’étiquette. Les appels répétés sont sûrs ; l’étiquette la plus récente gagne.
Paramètres
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
sessionId | string | requis | UUID de la session à étiqueter |
tag | string | null | requis | Chaîne d’étiquette, ou null pour effacer |
options.dir | string | undefined | Chemin du répertoire de projet. Lorsqu’il est omis, recherche dans tous les répertoires de projet |
Types
Options
Objet de configuration pour la fonction query().
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
abortController | AbortController | new AbortController() | Contrôleur pour annuler les opérations |
additionalDirectories | string[] | [] | Répertoires supplémentaires auxquels Claude peut accéder |
agent | string | undefined | Nom de l’agent pour le thread principal. L’agent doit être défini dans l’option agents ou dans les paramètres |
agents | Record<string, [AgentDefinition](#agent-definition)> | undefined | Définir programmatiquement les sous-agents |
allowDangerouslySkipPermissions | boolean | false | Activer le contournement des permissions. Requis lors de l’utilisation de permissionMode: 'bypassPermissions' |
allowedTools | string[] | [] | Outils à approuver automatiquement sans demander. Cela ne restreint pas Claude à seulement ces outils ; les outils non répertoriés passent à permissionMode et canUseTool. Utilisez disallowedTools pour bloquer les outils. Voir Permissions |
betas | SdkBeta[] | [] | Activer les fonctionnalités bêta |
canUseTool | CanUseTool | undefined | Fonction de permission personnalisée pour l’utilisation des outils |
continue | boolean | false | Continuer la conversation la plus récente |
cwd | string | process.cwd() | Répertoire de travail actuel |
debug | boolean | false | Activer le mode débogage pour le processus Claude Code |
debugFile | string | undefined | Écrire les journaux de débogage dans un chemin de fichier spécifique. Active implicitement le mode débogage |
disallowedTools | string[] | [] | Outils à toujours refuser. Les règles de refus sont vérifiées en premier et remplacent allowedTools et permissionMode (y compris bypassPermissions) |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Contrôle l’effort que Claude met dans sa réponse. Fonctionne avec la réflexion adaptative pour guider la profondeur de réflexion |
enableFileCheckpointing | boolean | false | Activer le suivi des modifications de fichiers pour le rembobinage. Voir Sauvegarde de fichiers |
env | Record<string, string | undefined> | process.env | Variables d’environnement. Définissez CLAUDE_AGENT_SDK_CLIENT_APP pour identifier votre application dans l’en-tête User-Agent |
executable | 'bun' | 'deno' | 'node' | Détection automatique | Runtime JavaScript à utiliser |
executableArgs | string[] | [] | Arguments à passer à l’exécutable |
extraArgs | Record<string, string | null> | {} | Arguments supplémentaires |
fallbackModel | string | undefined | Modèle à utiliser si le principal échoue |
forkSession | boolean | false | Lors de la reprise avec resume, bifurquer vers un nouvel ID de session au lieu de continuer la session d’origine |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Rappels de hook pour les événements |
includePartialMessages | boolean | false | Inclure les événements de message partiel |
maxBudgetUsd | number | undefined | Arrêter la requête quand l’estimation du coût côté client atteint cette valeur en USD. Comparé à la même estimation que total_cost_usd ; voir Suivi des coûts et de l’utilisation pour les avertissements de précision |
maxThinkingTokens | number | undefined | Déprécié : Utilisez thinking à la place. Tokens maximum pour le processus de réflexion |
maxTurns | number | undefined | Tours agentiques maximum (allers-retours d’utilisation d’outils) |
mcpServers | Record<string, [McpServerConfig](#mcp-server-config)> | {} | Configurations de serveur MCP |
model | string | Par défaut de CLI | Modèle Claude à utiliser |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Définir le format de sortie pour les résultats de l’agent. Voir Sorties structurées pour les détails |
pathToClaudeCodeExecutable | string | Résolu automatiquement à partir du binaire natif groupé | Chemin vers l’exécutable Claude Code. Nécessaire uniquement si les dépendances optionnelles ont été ignorées lors de l’installation ou si votre plateforme ne figure pas dans l’ensemble pris en charge |
permissionMode | PermissionMode | 'default' | Mode de permission pour la session |
permissionPromptToolName | string | undefined | Nom de l’outil MCP pour les invites de permission |
persistSession | boolean | true | Quand false, désactive la persistance de session sur disque. Les sessions ne peuvent pas être reprises plus tard |
plugins | SdkPluginConfig[] | [] | Charger les plugins personnalisés à partir de chemins locaux. Voir Plugins pour les détails |
promptSuggestions | boolean | false | Activer les suggestions d’invite. Émet un message prompt_suggestion après chaque tour avec une invite utilisateur suivante prédite |
resume | string | undefined | ID de session à reprendre |
resumeSessionAt | string | undefined | Reprendre la session à un UUID de message spécifique |
sandbox | SandboxSettings | undefined | Configurer le comportement du sandbox par programmation. Voir Paramètres du sandbox pour les détails |
sessionId | string | Généré automatiquement | Utiliser un UUID spécifique pour la session au lieu d’en générer un automatiquement |
settingSources | SettingSource[] | Paramètres par défaut de CLI (toutes les sources) | Contrôler les paramètres du système de fichiers à charger. Passez [] pour désactiver les paramètres utilisateur, projet et locaux. Les paramètres de politique gérée se chargent indépendamment. Voir Utiliser les fonctionnalités Claude Code |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Fonction personnalisée pour générer le processus Claude Code. Utilisez pour exécuter Claude Code dans des VM, des conteneurs ou des environnements distants |
stderr | (data: string) => void | undefined | Rappel pour la sortie stderr |
strictMcpConfig | boolean | false | Appliquer la validation MCP stricte |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean } | undefined (invite minimale) | Configuration de l’invite système. Passez une chaîne pour une invite personnalisée, ou { type: 'preset', preset: 'claude_code' } pour utiliser l’invite système de Claude Code. Lors de l’utilisation de la forme d’objet prédéfini, ajoutez append pour l’étendre avec des instructions supplémentaires, et définissez excludeDynamicSections: true pour déplacer le contexte par session dans le premier message utilisateur pour une meilleure réutilisation du cache d’invite sur les machines |
thinking | ThinkingConfig | { type: 'adaptive' } pour les modèles pris en charge | Contrôle le comportement de réflexion/raisonnement de Claude. Voir ThinkingConfig pour les options |
toolConfig | ToolConfig | undefined | Configuration pour le comportement des outils intégrés. Voir ToolConfig pour les détails |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | Configuration des outils. Passez un tableau de noms d’outils ou utilisez le prédéfini pour obtenir les outils par défaut de Claude Code |
Objet Query
Interface retournée par la fonction query().
Méthodes
| Méthode | Description |
|---|---|
interrupt() | Interrompt la requête (disponible uniquement en mode d’entrée en diffusion) |
rewindFiles(userMessageId, options?) | Restaure les fichiers à leur état au message utilisateur spécifié. Passez { dryRun: true } pour prévisualiser les modifications. Nécessite enableFileCheckpointing: true. Voir Sauvegarde de fichiers |
setPermissionMode() | Change le mode de permission (disponible uniquement en mode d’entrée en diffusion) |
setModel() | Change le modèle (disponible uniquement en mode d’entrée en diffusion) |
setMaxThinkingTokens() | Déprécié : Utilisez l’option thinking à la place. Change les tokens de réflexion maximum |
initializationResult() | Retourne le résultat d’initialisation complet incluant les commandes prises en charge, les modèles, les informations de compte et la configuration du style de sortie |
supportedCommands() | Retourne les commandes slash disponibles |
supportedModels() | Retourne les modèles disponibles avec les informations d’affichage |
supportedAgents() | Retourne les sous-agents disponibles en tant que AgentInfo[] |
mcpServerStatus() | Retourne l’état des serveurs MCP connectés |
accountInfo() | Retourne les informations de compte |
reconnectMcpServer(serverName) | Reconnecter un serveur MCP par nom |
toggleMcpServer(serverName, enabled) | Activer ou désactiver un serveur MCP par nom |
setMcpServers(servers) | Remplacer dynamiquement l’ensemble des serveurs MCP pour cette session. Retourne des informations sur les serveurs ajoutés, supprimés et les erreurs |
streamInput(stream) | Diffuser les messages d’entrée vers la requête pour les conversations multi-tours |
stopTask(taskId) | Arrêter une tâche de fond en cours d’exécution par ID |
close() | Fermer la requête et terminer le processus sous-jacent. Termine de force la requête et nettoie toutes les ressources |
WarmQuery
Handle retourné par startup(). Le sous-processus est déjà généré et initialisé, donc appeler query() sur ce handle écrit l’invite directement dans un processus prêt sans latence de démarrage.
Méthodes
| Méthode | Description |
|---|---|
query(prompt) | Envoyer une invite au sous-processus préchauffé et retourner une Query. Ne peut être appelé qu’une fois par WarmQuery |
close() | Fermer le sous-processus sans envoyer d’invite. Utilisez ceci pour abandonner une requête chaude qui n’est plus nécessaire |
WarmQuery implémente AsyncDisposable, il peut donc être utilisé avec await using pour le nettoyage automatique.
SDKControlInitializeResponse
Type de retour de initializationResult(). Contient les données d’initialisation de session.
AgentDefinition
Configuration pour un sous-agent défini par programmation.
| Champ | Requis | Description |
|---|---|---|
description | Oui | Description en langage naturel de quand utiliser cet agent |
tools | Non | Tableau de noms d’outils autorisés. S’il est omis, hérite tous les outils du parent |
disallowedTools | Non | Tableau de noms d’outils à explicitement interdire pour cet agent |
prompt | Oui | L’invite système de l’agent |
model | Non | Remplacement de modèle pour cet agent. S’il est omis ou 'inherit', utilise le modèle principal |
mcpServers | Non | Spécifications de serveur MCP pour cet agent |
skills | Non | Tableau de noms de compétences à précharger dans le contexte de l’agent |
maxTurns | Non | Nombre maximum de tours agentiques (allers-retours API) avant arrêt |
criticalSystemReminder_EXPERIMENTAL | Non | Expérimental : Rappel critique ajouté à l’invite système |
AgentMcpServerSpec
Spécifie les serveurs MCP disponibles pour un sous-agent. Peut être un nom de serveur (chaîne référençant un serveur de la configuration mcpServers du parent) ou une configuration de serveur en ligne enregistrant les noms de serveur aux configurations.
McpServerConfigForProcessTransport est McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig.
SettingSource
Contrôle les sources de configuration basées sur le système de fichiers que le SDK charge les paramètres à partir de.
| Valeur | Description | Emplacement |
|---|---|---|
'user' | Paramètres utilisateur globaux | ~/.claude/settings.json |
'project' | Paramètres de projet partagés (contrôle de version) | .claude/settings.json |
'local' | Paramètres de projet locaux (gitignorés) | .claude/settings.local.json |
Comportement par défaut
QuandsettingSources est omis ou undefined, query() charge les mêmes paramètres du système de fichiers que la CLI Claude Code : utilisateur, projet et local. Les paramètres de politique gérée sont chargés dans tous les cas. Voir Ce que settingSources ne contrôle pas pour les entrées qui sont lues indépendamment de cette option, et comment les désactiver.
Pourquoi utiliser settingSources
Désactiver les paramètres du système de fichiers :Précédence des paramètres
Quand plusieurs sources sont chargées, les paramètres sont fusionnés avec cette précédence (la plus haute à la plus basse) :- Paramètres locaux (
.claude/settings.local.json) - Paramètres de projet (
.claude/settings.json) - Paramètres utilisateur (
~/.claude/settings.json)
agents et allowedTools remplacent les paramètres du système de fichiers utilisateur, projet et local. Les paramètres de politique gérée ont la priorité sur les options programmatiques.
PermissionMode
CanUseTool
Type de fonction de permission personnalisée pour contrôler l’utilisation des outils.
| Option | Type | Description |
|---|---|---|
signal | AbortSignal | Signalé si l’opération doit être abandonnée |
suggestions | PermissionUpdate[] | Mises à jour de permission suggérées pour que l’utilisateur ne soit pas invité à nouveau pour cet outil |
blockedPath | string | Le chemin de fichier qui a déclenché la demande de permission, le cas échéant |
decisionReason | string | Explique pourquoi cette demande de permission a été déclenchée |
toolUseID | string | Identifiant unique pour cet appel d’outil spécifique dans le message assistant |
agentID | string | Si exécuté dans un sous-agent, l’ID du sous-agent |
PermissionResult
Résultat d’une vérification de permission.
ToolConfig
Configuration pour le comportement des outils intégrés.
| Champ | Type | Description |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | Accepte le champ preview sur les options AskUserQuestion et définit son format de contenu. Lorsqu’il n’est pas défini, Claude n’émet pas de prévisualisations |
McpServerConfig
Configuration pour les serveurs MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
Configuration pour charger les plugins dans le SDK.
| Champ | Type | Description |
|---|---|---|
type | 'local' | Doit être 'local' (seuls les plugins locaux sont actuellement pris en charge) |
path | string | Chemin absolu ou relatif au répertoire du plugin |
Types de messages
SDKMessage
Type union de tous les messages possibles retournés par la requête.
SDKAssistantMessage
Message de réponse assistant.
message est un BetaMessage du SDK Anthropic. Il inclut des champs comme id, content, model, stop_reason et usage.
SDKAssistantMessageError est l’un de : 'authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'max_output_tokens' ou 'unknown'.
SDKUserMessage
Message d’entrée utilisateur.
shouldQuery sur false pour ajouter le message à la transcription sans déclencher un tour assistant. Le message est conservé et fusionné dans le prochain message utilisateur qui déclenche un tour. Utilisez ceci pour injecter du contexte, comme la sortie d’une commande que vous avez exécutée en dehors de la bande, sans dépenser un appel de modèle.
SDKUserMessageReplay
Message utilisateur rejoué avec UUID requis.
SDKResultMessage
Message de résultat final.
SDKSystemMessage
Message d’initialisation système.
SDKPartialAssistantMessage
Message partiel en diffusion (uniquement quand includePartialMessages est true).
SDKCompactBoundaryMessage
Message indiquant une limite de compaction de conversation.
SDKPluginInstallMessage
Événement de progression d’installation de plugin. Émis quand CLAUDE_CODE_SYNC_PLUGIN_INSTALL est défini, pour que votre application Agent SDK puisse suivre l’installation du plugin de marketplace avant le premier tour. Les statuts started et completed encadrent l’installation globale. Les statuts installed et failed rapportent les marchés individuels et incluent name.
SDKPermissionDenial
Informations sur une utilisation d’outil refusée.
Types de hook
Pour un guide complet sur l’utilisation des hooks avec des exemples et des modèles courants, voir le guide des hooks.HookEvent
Événements de hook disponibles.
HookCallback
Type de fonction de rappel de hook.
HookCallbackMatcher
Configuration de hook avec matcher optionnel.
HookInput
Type union de tous les types d’entrée de hook.
BaseHookInput
Interface de base que tous les types d’entrée de hook étendent.
PreToolUseHookInput
PostToolUseHookInput
PostToolUseFailureHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
HookJSONOutput
Valeur de retour du hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Types d’entrée d’outil
Documentation des schémas d’entrée pour tous les outils Claude Code intégrés. Ces types sont exportés depuis@anthropic-ai/claude-agent-sdk et peuvent être utilisés pour les interactions d’outils type-safe.
ToolInputSchemas
Union de tous les types d’entrée d’outil, exportée depuis @anthropic-ai/claude-agent-sdk.
Agent
Nom de l’outil :Agent (précédemment Task, qui est toujours accepté comme alias)
AskUserQuestion
Nom de l’outil :AskUserQuestion
Bash
Nom de l’outil :Bash
Monitor
Nom de l’outil :Monitor
persistent: true pour les montres de longueur de session telles que les queues de journal. Monitor suit les mêmes règles de permission que Bash. Voir la référence de l’outil Monitor pour le comportement et la disponibilité du fournisseur.
TaskOutput
Nom de l’outil :TaskOutput
Edit
Nom de l’outil :Edit
Read
Nom de l’outil :Read
pages pour les plages de pages PDF (par exemple, "1-5").
Write
Nom de l’outil :Write
Glob
Nom de l’outil :Glob
Grep
Nom de l’outil :Grep
TaskStop
Nom de l’outil :TaskStop
NotebookEdit
Nom de l’outil :NotebookEdit
WebFetch
Nom de l’outil :WebFetch
WebSearch
Nom de l’outil :WebSearch
TodoWrite
Nom de l’outil :TodoWrite
ExitPlanMode
Nom de l’outil :ExitPlanMode
ListMcpResources
Nom de l’outil :ListMcpResources
ReadMcpResource
Nom de l’outil :ReadMcpResource
Config
Nom de l’outil :Config
EnterWorktree
Nom de l’outil :EnterWorktree
path pour basculer dans un worktree existant du référentiel actuel au lieu d’en créer un nouveau. name et path s’excluent mutuellement.
Types de sortie d’outil
Documentation des schémas de sortie pour tous les outils Claude Code intégrés. Ces types sont exportés depuis@anthropic-ai/claude-agent-sdk et représentent les données de réponse réelles retournées par chaque outil.
ToolOutputSchemas
Union de tous les types de sortie d’outil.
Agent
Nom de l’outil :Agent (précédemment Task, qui est toujours accepté comme alias)
status : "completed" pour les tâches terminées, "async_launched" pour les tâches de fond et "sub_agent_entered" pour les sous-agents interactifs.
AskUserQuestion
Nom de l’outil :AskUserQuestion
Bash
Nom de l’outil :Bash
backgroundTaskId.
Monitor
Nom de l’outil :Monitor
TaskStop pour annuler la montre plus tôt.
Edit
Nom de l’outil :Edit
Read
Nom de l’outil :Read
type.
Write
Nom de l’outil :Write
Glob
Nom de l’outil :Glob
Grep
Nom de l’outil :Grep
mode : liste de fichiers, contenu avec correspondances ou comptages de correspondances.
TaskStop
Nom de l’outil :TaskStop
NotebookEdit
Nom de l’outil :NotebookEdit
WebFetch
Nom de l’outil :WebFetch
WebSearch
Nom de l’outil :WebSearch
TodoWrite
Nom de l’outil :TodoWrite
ExitPlanMode
Nom de l’outil :ExitPlanMode
ListMcpResources
Nom de l’outil :ListMcpResources
ReadMcpResource
Nom de l’outil :ReadMcpResource
Config
Nom de l’outil :Config
EnterWorktree
Nom de l’outil :EnterWorktree
Types de permission
PermissionUpdate
Opérations pour mettre à jour les permissions.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Autres types
ApiKeySource
SdkBeta
Fonctionnalités bêta disponibles qui peuvent être activées via l’option betas. Voir En-têtes bêta pour plus d’informations.
SlashCommand
Informations sur une commande slash disponible.
ModelInfo
Informations sur un modèle disponible.
AgentInfo
Informations sur un sous-agent disponible qui peut être invoqué via l’outil Agent.
| Champ | Type | Description |
|---|---|---|
name | string | Identifiant de type d’agent (par exemple, "Explore", "general-purpose") |
description | string | Description de quand utiliser cet agent |
model | string | undefined | Alias de modèle que cet agent utilise. S’il est omis, hérite le modèle du parent |
McpServerStatus
Statut d’un serveur MCP connecté.
McpServerStatusConfig
La configuration d’un serveur MCP telle que rapportée par mcpServerStatus(). C’est l’union de tous les types de transport de serveur MCP.
McpServerConfig pour les détails sur chaque type de transport.
AccountInfo
Informations de compte pour l’utilisateur authentifié.
ModelUsage
Statistiques d’utilisation par modèle retournées dans les messages de résultat. La valeur costUSD est une estimation côté client. Voir Suivi des coûts et de l’utilisation pour les avertissements de facturation.
ConfigScope
NonNullableUsage
Une version de Usage avec tous les champs nullables rendus non nullables.
Usage
Statistiques d’utilisation des tokens (depuis @anthropic-ai/sdk).
CallToolResult
Type de résultat d’outil MCP (depuis @modelcontextprotocol/sdk/types.js).
ThinkingConfig
Contrôle le comportement de réflexion/raisonnement de Claude. Prend la priorité sur le maxThinkingTokens déprécié.
SpawnedProcess
Interface pour la génération de processus personnalisée (utilisée avec l’option spawnClaudeCodeProcess). ChildProcess satisfait déjà cette interface.
SpawnOptions
Options passées à la fonction de génération personnalisée.
McpSetServersResult
Résultat d’une opération setMcpServers().
RewindFilesResult
Résultat d’une opération rewindFiles().
SDKStatusMessage
Message de mise à jour de statut (par exemple, compaction).
SDKTaskNotificationMessage
Notification quand une tâche de fond se termine, échoue ou est arrêtée. Les tâches de fond incluent les commandes Bash run_in_background, les montres Monitor et les sous-agents de fond.
SDKToolUseSummaryMessage
Résumé de l’utilisation des outils dans une conversation.
SDKHookStartedMessage
Émis quand un hook commence à s’exécuter.
SDKHookProgressMessage
Émis pendant qu’un hook s’exécute, avec la sortie stdout/stderr.
SDKHookResponseMessage
Émis quand un hook termine l’exécution.
SDKToolProgressMessage
Émis périodiquement pendant qu’un outil s’exécute pour indiquer la progression.
SDKAuthStatusMessage
Émis pendant les flux d’authentification.
SDKTaskStartedMessage
Émis quand une tâche de fond commence. Le champ task_type est "local_bash" pour les commandes Bash de fond et les montres Monitor, "local_agent" pour les sous-agents ou "remote_agent".
SDKTaskProgressMessage
Émis périodiquement pendant qu’une tâche de fond s’exécute.
SDKFilesPersistedEvent
Émis quand les points de contrôle de fichiers sont persistés sur disque.
SDKRateLimitEvent
Émis quand la session rencontre une limite de débit.
SDKLocalCommandOutputMessage
Sortie d’une commande slash locale (par exemple, /voice ou /cost). Affichée comme du texte de style assistant dans la transcription.
SDKPromptSuggestionMessage
Émis après chaque tour quand promptSuggestions est activé. Contient une invite utilisateur suivante prédite.
AbortError
Classe d’erreur personnalisée pour les opérations d’abandon.
Configuration du sandbox
SandboxSettings
Configuration pour le comportement du sandbox. Utilisez ceci pour activer le sandboxing des commandes et configurer les restrictions réseau par programmation.
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
enabled | boolean | false | Activer le mode sandbox pour l’exécution des commandes |
autoAllowBashIfSandboxed | boolean | true | Approuver automatiquement les commandes bash quand le sandbox est activé |
excludedCommands | string[] | [] | Commandes qui contournent toujours les restrictions du sandbox (par exemple, ['docker']). Celles-ci s’exécutent sans sandbox automatiquement sans implication du modèle |
allowUnsandboxedCommands | boolean | true | Permettre au modèle de demander l’exécution de commandes en dehors du sandbox. Quand true, le modèle peut définir dangerouslyDisableSandbox dans l’entrée de l’outil, qui revient au système de permissions |
network | SandboxNetworkConfig | undefined | Configuration du sandbox spécifique au réseau |
filesystem | SandboxFilesystemConfig | undefined | Configuration du sandbox spécifique au système de fichiers pour les restrictions de lecture/écriture |
ignoreViolations | Record<string, string[]> | undefined | Carte des catégories de violation aux motifs à ignorer (par exemple, { file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | Activer un sandbox imbriqué plus faible pour la compatibilité |
ripgrep | { command: string; args?: string[] } | undefined | Configuration de binaire ripgrep personnalisée pour les environnements sandbox |
Exemple d’utilisation
SandboxNetworkConfig
Configuration spécifique au réseau pour le mode sandbox.
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
allowedDomains | string[] | [] | Noms de domaine auxquels les processus sandboxés peuvent accéder |
deniedDomains | string[] | [] | Noms de domaine auxquels les processus sandboxés ne peuvent pas accéder. Prend la priorité sur allowedDomains |
allowManagedDomainsOnly | boolean | false | Restreindre l’accès réseau uniquement aux domaines dans allowedDomains |
allowLocalBinding | boolean | false | Permettre aux processus de se lier aux ports locaux (par exemple, pour les serveurs de développement) |
allowUnixSockets | string[] | [] | Chemins de socket Unix auxquels les processus peuvent accéder (par exemple, socket Docker) |
allowAllUnixSockets | boolean | false | Permettre l’accès à tous les sockets Unix |
httpProxyPort | number | undefined | Port du proxy HTTP pour les demandes réseau |
socksProxyPort | number | undefined | Port du proxy SOCKS pour les demandes réseau |
SandboxFilesystemConfig
Configuration spécifique au système de fichiers pour le mode sandbox.
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
allowWrite | string[] | [] | Motifs de chemin de fichier pour permettre l’accès en écriture |
denyWrite | string[] | [] | Motifs de chemin de fichier pour refuser l’accès en écriture |
denyRead | string[] | [] | Motifs de chemin de fichier pour refuser l’accès en lecture |
Repli des permissions pour les commandes non sandboxées
QuandallowUnsandboxedCommands est activé, le modèle peut demander l’exécution de commandes en dehors du sandbox en définissant dangerouslyDisableSandbox: true dans l’entrée de l’outil. Ces demandes reviennent au système de permissions existant, ce qui signifie que votre gestionnaire canUseTool est invoqué, vous permettant d’implémenter une logique d’autorisation personnalisée.
excludedCommands vs allowUnsandboxedCommands :excludedCommands: Une liste statique de commandes qui contournent toujours le sandbox automatiquement (par exemple,['docker']). Le modèle n’a aucun contrôle sur ceci.allowUnsandboxedCommands: Permet au modèle de décider à l’exécution s’il faut demander l’exécution non sandboxée en définissantdangerouslyDisableSandbox: truedans l’entrée de l’outil.
- Auditer les demandes du modèle : Enregistrer quand le modèle demande l’exécution non sandboxée
- Implémenter des listes blanches : Permettre uniquement à des commandes spécifiques de s’exécuter sans sandbox
- Ajouter des flux d’approbation : Exiger une autorisation explicite pour les opérations privilégiées
Voir aussi
- Aperçu du SDK - Concepts généraux du SDK
- Référence du SDK Python - Documentation du SDK Python
- Référence CLI - Interface de ligne de commande
- Flux de travail courants - Guides étape par étape