194 `ToolAnnotations`194 `ToolAnnotations`
195</h4>195</h4>
196 196
197Indices comportementaux pour un outil, passés comme argument `annotations` de [`tool()`](#tool). `ToolAnnotations` étend `mcp.types.ToolAnnotations` du SDK MCP avec un champ `maxResultSizeChars`, et vous pouvez écrire chaque indice en camelCase ou snake\_case : `ToolAnnotations(readOnlyHint=True)` et `ToolAnnotations(read_only_hint=True)` sont équivalents. Vous pouvez également passer un `mcp.types.ToolAnnotations` simple partout où le SDK accepte des annotations.197Indices comportementaux pour un outil, passés comme argument `annotations` de [`tool()`](#tool). `ToolAnnotations` étend `mcp.types.ToolAnnotations` du SDK MCP avec un champ `maxResultSizeChars`, et vous pouvez écrire chaque indice en camelCase ou snake\_case : `ToolAnnotations(readOnlyHint=True)` et `ToolAnnotations(read_only_hint=True)` sont équivalents. Pour relire un indice depuis l'objet, utilisez l'orthographe déclarée par votre package `mcp` installé : `.readOnlyHint` sur `mcp` 1.x et `.read_only_hint` sur 2.x, tandis que `.maxResultSizeChars` fonctionne sur les deux. Vous pouvez également passer un `mcp.types.ToolAnnotations` simple partout où le SDK accepte des annotations.
198 198
199Les noms snake\_case et le champ typé `maxResultSizeChars` nécessitent Python Agent SDK 0.2.140 ou ultérieur. Les versions 0.1.31 à 0.2.139 réexportent `mcp.types.ToolAnnotations` inchangé. Sur les versions 0.1.55 à 0.2.139, vous pouvez toujours passer `maxResultSizeChars` comme argument de mot-clé : la classe MCP accepte les champs supplémentaires, et le SDK transmet la valeur à Claude Code.199Les noms snake\_case et le champ typé `maxResultSizeChars` nécessitent Python Agent SDK 0.2.140 ou ultérieur. Les versions 0.1.31 à 0.2.139 réexportent `mcp.types.ToolAnnotations` inchangé. Sur les versions 0.1.55 à 0.2.139, vous pouvez toujours passer `maxResultSizeChars` comme argument de mot-clé : la classe MCP accepte les champs supplémentaires, et le SDK transmet la valeur à Claude Code.
200 200
321| `summary` | `str` | Titre d'affichage : titre personnalisé, prompt le plus récent, résumé généré automatiquement, ou premier prompt |321| `summary` | `str` | Titre d'affichage : titre personnalisé, prompt le plus récent, résumé généré automatiquement, ou premier prompt |
322| `last_modified` | `int` | Heure de dernière modification en millisecondes depuis l'époque |322| `last_modified` | `int` | Heure de dernière modification en millisecondes depuis l'époque |
323| `file_size` | `int \| None` | Taille du fichier de session en octets (`None` pour les backends de stockage distant) |323| `file_size` | `int \| None` | Taille du fichier de session en octets (`None` pour les backends de stockage distant) |
324| `custom_title` | `str \| None` | Titre de session défini par l'utilisateur |324| `custom_title` | `str \| None` | Titre de session : le titre défini par l'utilisateur, ou le titre généré automatiquement si aucun n'est défini |
325| `first_prompt` | `str \| None` | Premier prompt utilisateur significatif dans la session |325| `first_prompt` | `str \| None` | Premier prompt utilisateur significatif dans la session |
326| `git_branch` | `str \| None` | Branche git à la fin de la session |326| `git_branch` | `str \| None` | Branche git à la fin de la session |
327| `cwd` | `str \| None` | Répertoire de travail pour la session |327| `cwd` | `str \| None` | Répertoire de travail pour la session |
919| Property | Type | Default | Description |919| Property | Type | Default | Description |
920| :- | :- | :- | :- |920| :- | :- | :- | :- |
921| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuration des outils. Utilisez `{"type": "preset", "preset": "claude_code"}` pour les outils par défaut de Claude Code |921| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuration des outils. Utilisez `{"type": "preset", "preset": "claude_code"}` pour les outils par défaut de Claude Code |
922| `allowed_tools` | `list[str]` | `[]` | Outils à approuver automatiquement sans demander. Cela ne restreint pas Claude à seulement ces outils. Si vous nommez l'un des [outils de suivi des tâches](/docs/fr/agent-sdk/todo-tracking#model-availability) ici, Claude Code opte également la session. Les autres outils non listés passent à `permission_mode` et `can_use_tool`. Utilisez `disallowed_tools` pour bloquer les outils. Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |922| `allowed_tools` | `list[str]` | `[]` | Outils à approuver automatiquement sans demander. Cela ne restreint pas Claude à seulement ces outils. Si vous nommez l'un des [outils de suivi des tâches](/docs/fr/agent-sdk/todo-tracking#model-availability) ici, Claude Code active également cette fonctionnalité pour la session. Les autres outils non listés passent à `permission_mode` et `can_use_tool`. Utilisez `disallowed_tools` pour bloquer les outils. Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |
923| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Configuration du prompt système. Passez une chaîne pour un prompt personnalisé, `{"type": "preset", "preset": "claude_code"}` pour le prompt système de Claude Code avec `"append"` optionnel, `{"type": "custom", "prompt": "..."}` pour un prompt personnalisé qui peut également définir `"snapshot"`, ou `{"type": "file", "path": "..."}` pour charger un grand prompt depuis le disque. Voir [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom), et [`SystemPromptFile`](#systempromptfile) |923| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Configuration du prompt système. Passez une chaîne pour un prompt personnalisé, `{"type": "preset", "preset": "claude_code"}` pour le prompt système de Claude Code avec `"append"` optionnel, `{"type": "custom", "prompt": "..."}` pour un prompt personnalisé qui peut également définir `"snapshot"`, ou `{"type": "file", "path": "..."}` pour charger un grand prompt depuis le disque. Voir [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom), et [`SystemPromptFile`](#systempromptfile) |
924| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configurations des serveurs MCP ou chemin vers un fichier de configuration |924| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configurations des serveurs MCP ou chemin vers un fichier de configuration |
925| `strict_mcp_config` | `bool` | `False` | Quand `True`, utilisez uniquement les serveurs passés dans `mcp_servers` et ignorez le `.mcp.json` du projet, les paramètres utilisateur, les serveurs MCP fournis par les plugins, et les [connecteurs claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai). Correspond au drapeau CLI `--strict-mcp-config` |925| `strict_mcp_config` | `bool` | `False` | Quand `True`, utilisez uniquement les serveurs passés dans `mcp_servers` et ignorez le `.mcp.json` du projet, les paramètres utilisateur, les serveurs MCP fournis par les plugins, et les [connecteurs claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai). Correspond au flag CLI `--strict-mcp-config` |
926| `permission_mode` | `PermissionMode \| None` | `None` | Mode de permission pour l'utilisation des outils |926| `permission_mode` | `PermissionMode \| None` | `None` | Mode de permission pour l'utilisation des outils |
927| `continue_conversation` | `bool` | `False` | Continuer la conversation la plus récente |927| `continue_conversation` | `bool` | `False` | Continuer la conversation la plus récente |
928| `resume` | `str \| None` | `None` | ID de session à reprendre |928| `resume` | `str \| None` | `None` | ID de session à reprendre |
930| `max_turns` | `int \| None` | `None` | Nombre maximum de tours d'agent (allers-retours d'utilisation d'outils) |930| `max_turns` | `int \| None` | `None` | Nombre maximum de tours d'agent (allers-retours d'utilisation d'outils) |
931| `max_budget_usd` | `float \| None` | `None` | Arrêter la requête quand l'estimation du coût côté client atteint cette valeur en USD. Compte uniquement les dépenses de l'appel lui-même ; les totaux restaurés à partir d'une session reprise ne comptent pas. Pour les avertissements de précision et le comportement de réinitialisation, voir [Suivre le coût et l'utilisation](/docs/fr/agent-sdk/cost-tracking) |931| `max_budget_usd` | `float \| None` | `None` | Arrêter la requête quand l'estimation du coût côté client atteint cette valeur en USD. Compte uniquement les dépenses de l'appel lui-même ; les totaux restaurés à partir d'une session reprise ne comptent pas. Pour les avertissements de précision et le comportement de réinitialisation, voir [Suivre le coût et l'utilisation](/docs/fr/agent-sdk/cost-tracking) |
932| `disallowed_tools` | `list[str]` | `[]` | Outils à refuser. Un nom simple tel que `"Bash"` supprime l'outil du contexte de Claude. Une règle délimitée telle que `"Bash(rm *)"` laisse l'outil disponible et refuse les appels correspondants dans chaque mode de permission, y compris `bypassPermissions`, pour la commande [telle qu'écrite](/docs/fr/permissions#bash-rule-limits). Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |932| `disallowed_tools` | `list[str]` | `[]` | Outils à refuser. Un nom simple tel que `"Bash"` supprime l'outil du contexte de Claude. Une règle délimitée telle que `"Bash(rm *)"` laisse l'outil disponible et refuse les appels correspondants dans chaque mode de permission, y compris `bypassPermissions`, pour la commande [telle qu'écrite](/docs/fr/permissions#bash-rule-limits). Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |
933| `enable_file_checkpointing` | `bool` | `False` | Activer le suivi des modifications de fichiers pour la rembobinage. Voir [Checkpointing de fichiers](/docs/fr/agent-sdk/file-checkpointing) |933| `enable_file_checkpointing` | `bool` | `False` | Activer le suivi des modifications de fichiers pour le rembobinage. Voir [Checkpointing de fichiers](/docs/fr/agent-sdk/file-checkpointing) |
934| `model` | `str \| None` | `None` | Alias de modèle Claude ou nom de modèle complet. Voir [valeurs acceptées et IDs spécifiques au fournisseur](/docs/fr/model-config#available-models) |934| `model` | `str \| None` | `None` | Alias de modèle Claude ou nom de modèle complet. Voir [valeurs acceptées et IDs spécifiques au fournisseur](/docs/fr/model-config#available-models) |
935| `fallback_model` | `str \| None` | `None` | Modèle de secours à utiliser si le modèle principal échoue. Accepte une liste séparée par des virgules. Pour des conseils, voir [Choisir un modèle](/docs/fr/agent-sdk/configuration#choose-a-model) |935| `fallback_model` | `str \| None` | `None` | Modèle de secours à utiliser si le modèle principal échoue. Accepte une liste séparée par des virgules. Pour des conseils, voir [Choisir un modèle](/docs/fr/agent-sdk/configuration#choose-a-model) |
936| `betas` | `list[SdkBeta]` | `[]` | Fonctionnalités bêta à activer. Voir [`SdkBeta`](#sdkbeta) pour les options disponibles |936| `betas` | `list[SdkBeta]` | `[]` | Fonctionnalités bêta à activer. Voir [`SdkBeta`](#sdkbeta) pour les options disponibles |
937| `output_format` | `dict[str, Any] \| None` | `None` | Format de sortie pour les réponses structurées (par exemple, `{"type": "json_schema", "schema": {...}}`). Voir [Sorties structurées](/docs/fr/agent-sdk/structured-outputs) pour les détails |937| `output_format` | `dict[str, Any] \| None` | `None` | Format de sortie pour les réponses structurées (par exemple, `{"type": "json_schema", "schema": {...}}`). Voir [Sorties structurées](/docs/fr/agent-sdk/structured-outputs) pour les détails |
938| `permission_prompt_tool_name` | `str \| None` | `None` | Nom de l'outil MCP pour les invites de permission |938| `permission_prompt_tool_name` | `str \| None` | `None` | Nom de l'outil MCP pour les demandes de permission |
939| `cwd` | `str \| Path \| None` | `None` | Répertoire de travail courant |939| `cwd` | `str \| Path \| None` | `None` | Répertoire de travail courant |
940| `cli_path` | `str \| Path \| None` | `None` | Chemin personnalisé vers l'exécutable CLI de Claude Code |940| `cli_path` | `str \| Path \| None` | `None` | Chemin personnalisé vers l'exécutable CLI de Claude Code |
941| `settings` | `str \| None` | `None` | Chemin vers un fichier de paramètres ou une chaîne JSON en ligne |941| `settings` | `str \| None` | `None` | Chemin vers un fichier de paramètres ou une chaîne JSON en ligne |
942| `add_dirs` | `list[str \| Path]` | `[]` | Répertoires supplémentaires auxquels Claude peut accéder. Le SDK transmet chaque entrée à Claude Code en tant que `--add-dir`, donc avec la source de paramètre `project` Claude Code [charge également les compétences, commandes et sous-agents du répertoire](/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) |942| `add_dirs` | `list[str \| Path]` | `[]` | Répertoires supplémentaires auxquels Claude peut accéder. Le SDK transmet chaque entrée à Claude Code en tant que `--add-dir`, donc avec la source de paramètre `project` Claude Code [charge également les skills, commandes et sous-agents du répertoire](/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) |
943| `env` | `dict[str, str]` | `{}` | Variables d'environnement fusionnées au-dessus de l'environnement de processus hérité. Voir [Variables d'environnement](/docs/fr/env-vars) pour les variables que le CLI sous-jacent lit, et [Gérer les réponses API lentes ou bloquées](#handle-slow-or-stalled-api-responses) pour les variables liées aux délais d'attente. Définissez `CLAUDE_AGENT_SDK_CLIENT_APP` pour identifier votre application dans l'en-tête User-Agent |943| `env` | `dict[str, str]` | `{}` | Variables d'environnement fusionnées au-dessus de l'environnement de processus hérité. Voir [Variables d'environnement](/docs/fr/env-vars) pour les variables que le CLI sous-jacent lit, et [Gérer les réponses API lentes ou bloquées](#handle-slow-or-stalled-api-responses) pour les variables liées aux délais d'attente. Définissez `CLAUDE_AGENT_SDK_CLIENT_APP` pour identifier votre application dans l'en-tête User-Agent |
944| `extra_args` | `dict[str, str \| None]` | `{}` | Arguments CLI supplémentaires à transmettre directement au CLI |944| `extra_args` | `dict[str, str \| None]` | `{}` | Arguments CLI supplémentaires à transmettre directement au CLI |
945| `max_buffer_size` | `int \| None` | `None` | Nombre maximum d'octets lors de la mise en mémoire tampon de la sortie standard du CLI |945| `max_buffer_size` | `int \| None` | `None` | Nombre maximum d'octets lors de la mise en mémoire tampon de la sortie standard du CLI |
946| `debug_stderr` | `Any` | `sys.stderr` | *Déprécié* - Le SDK ignore cette valeur. Utilisez le rappel `stderr` pour la sortie stderr du CLI |946| `debug_stderr` | `Any` | `sys.stderr` | *Déprécié* - Le SDK ignore cette valeur. Utilisez le rappel `stderr` pour la sortie stderr du CLI |
947| `stderr` | `Callable[[str], None] \| None` | `None` | Fonction de rappel pour la sortie stderr du CLI |947| `stderr` | `Callable[[str], None] \| None` | `None` | Fonction de rappel pour la sortie stderr du CLI |
948| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Rappel de permission d'outil, invoqué uniquement quand le [flux de permission](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une invite. Non invoqué pour les appels pré-approuvés par `allowed_tools`, les règles d'autorisation, ou `permission_mode`. Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves). Voir [`CanUseTool`](#canusetool) pour les détails |948| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Rappel de permission d'outil, invoqué uniquement quand le [flux de permission](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une demande de permission. Non invoqué pour les appels approuvés automatiquement par `allowed_tools`, les règles d'autorisation, ou `permission_mode`. Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves). Voir [`CanUseTool`](#canusetool) pour les détails |
949| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurations de hook pour intercepter les événements |949| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurations de hook pour intercepter les événements |
950| `user` | `str \| None` | `None` | Sur les plates-formes POSIX, le compte utilisateur du système d'exploitation sous lequel le sous-processus Claude Code s'exécute. Claude Code conserve l'environnement du processus parent, y compris `HOME`, et s'exécute dans `cwd` |950| `user` | `str \| None` | `None` | Sur les plates-formes POSIX, le compte utilisateur du système d'exploitation sous lequel le sous-processus Claude Code s'exécute. Claude Code conserve l'environnement du processus parent, y compris `HOME`, et s'exécute dans `cwd` |
951| `include_partial_messages` | `bool` | `False` | Inclure les événements de diffusion de messages partiels. Quand activé, les messages [`StreamEvent`](#streamevent) sont produits |951| `include_partial_messages` | `bool` | `False` | Inclure les événements de streaming de messages partiels. Quand activé, les messages [`StreamEvent`](#streamevent) sont produits |
952| `include_hook_events` | `bool` | `False` | Inclure les événements du cycle de vie des hooks dans le flux de messages en tant qu'objets `HookEventMessage` |952| `include_hook_events` | `bool` | `False` | Inclure les événements du cycle de vie des hooks dans le flux de messages en tant qu'objets `HookEventMessage` |
953| `forward_subagent_text` | `bool` | `False` | Transmettre les blocs de texte et de réflexion des sous-agents dans le flux de messages. Sans cette option, Claude Code émet les blocs `tool_use` et `tool_result` des sous-agents mais pas le texte ou la réflexion. Nécessite Python Agent SDK 0.2.140 ou ultérieur |953| `forward_subagent_text` | `bool` | `False` | Transmettre les blocs de texte et de réflexion des sous-agents dans le flux de messages. Sans cette option, Claude Code émet les blocs `tool_use` et `tool_result` des sous-agents mais pas le texte ou la réflexion. Nécessite Python Agent SDK 0.2.140 ou ultérieur |
954| `verbatim_prompts` | `bool` | `False` | Livrer chaque invite telle qu'écrite. Le SDK envoie chaque message utilisateur avec `client_composed` défini à `True`. Voir [`client_composed`](/docs/fr/agent-sdk/typescript#sdkusermessage) pour ce que Claude Code ignore sur ces messages. Utilisez cette option quand votre texte d'invite inclut du contenu que l'utilisateur final n'a pas tapé. Pour un contrôle par tour, laissez-le désactivé et définissez `"client_composed": True` sur les messages diffusés individuels à la place. Pendant que l'option est activée, le SDK écrase toute valeur `client_composed` que vous définissez. Nécessite Python Agent SDK 0.2.158 ou ultérieur et Claude Code v2.1.248 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |954| `verbatim_prompts` | `bool` | `False` | Livrer chaque prompt tel qu'écrit. Le SDK envoie chaque message utilisateur avec `client_composed` défini à `True`. Voir [`client_composed`](/docs/fr/agent-sdk/typescript#sdkusermessage) pour ce que Claude Code ignore sur ces messages. Utilisez cette option quand le texte de votre prompt inclut du contenu que l'utilisateur final n'a pas tapé. Pour un contrôle par tour, laissez-la désactivée et définissez plutôt `"client_composed": True` sur les messages individuels envoyés en streaming. Pendant que l'option est activée, le SDK écrase toute valeur `client_composed` que vous définissez. Nécessite Python Agent SDK 0.2.158 ou ultérieur et Claude Code v2.1.248 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |
955| `fork_session` | `bool` | `False` | Lors de la reprise avec `resume`, bifurquer vers un nouvel ID de session au lieu de continuer la session d'origine |955| `fork_session` | `bool` | `False` | Lors de la reprise avec `resume`, bifurquer vers un nouvel ID de session au lieu de continuer la session d'origine |
956| `resume_session_at` | `str \| None` | `None` | Lors de la reprise, charger la conversation uniquement jusqu'à et y compris le message avec cet UUID. Utilisez avec `resume`, et généralement `fork_session`, pour brancher à partir d'un point antérieur. Nécessite Python Agent SDK 0.2.137 ou ultérieur |956| `resume_session_at` | `str \| None` | `None` | Lors de la reprise, charger la conversation uniquement jusqu'à et y compris le message avec cet UUID. Utilisez avec `resume`, et généralement `fork_session`, pour créer une branche à partir d'un point antérieur. Nécessite Python Agent SDK 0.2.137 ou ultérieur |
957| `resume_drops_turn` | `str \| None` | `None` | UUID de l'invite utilisateur dont le tour une troncature `resume_session_at` rejette. Quand défini, le CLI refuse la reprise si la plage rejetée contient des entrées non attribuables à ce tour. Nécessite Python Agent SDK 0.2.137 ou ultérieur et Claude Code v2.1.223 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |957| `resume_drops_turn` | `str \| None` | `None` | UUID du prompt utilisateur dont le tour est rejeté par une troncature `resume_session_at`. Quand défini, le CLI refuse la reprise si la plage rejetée contient des entrées non attribuables à ce tour. Nécessite Python Agent SDK 0.2.137 ou ultérieur et Claude Code v2.1.223 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |
958| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Sous-agents définis par programmation |958| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Sous-agents définis par programmation |
959| `plugins` | `list[SdkPluginConfig]` | `[]` | Charger des plugins personnalisés à partir de chemins locaux. Voir [Plugins](/docs/fr/agent-sdk/plugins) pour les détails |959| `plugins` | `list[SdkPluginConfig]` | `[]` | Charger des plugins personnalisés à partir de chemins locaux. Voir [Plugins](/docs/fr/agent-sdk/plugins) pour les détails |
960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurer le comportement du sandbox par programmation. Voir [Paramètres du sandbox](#sandboxsettings) pour les détails |960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurer le comportement du sandbox par programmation. Voir [Paramètres du sandbox](#sandboxsettings) pour les détails |
961| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Contrôler quels paramètres du système de fichiers charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Avec `skills` défini et ce champ non défini, seules les sources utilisateur et projet se chargent. Définissez `setting_sources` explicitement pour conserver les paramètres locaux. La politique gérée par le point de terminaison se charge indépendamment ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec une credential d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour les entrées lues indépendamment de cette option, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |961| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Contrôler quels paramètres du système de fichiers charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Avec `skills` défini et ce champ non défini, seules les sources utilisateur et projet se chargent. Définissez `setting_sources` explicitement pour conserver les paramètres locaux. La politique gérée par le point de terminaison se charge indépendamment ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec des identifiants d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour les entrées lues indépendamment de cette option, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |
962| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Compétences disponibles pour la session. Passez `"all"` pour activer chaque compétence découverte, ou une liste de noms de compétences. Passez uniquement les noms exacts. Le SDK rejette les noms mal formés et de forme générique avec une `ValueError` avant de démarrer le processus Claude Code ; cette vérification nécessite Python Agent SDK 0.2.129 ou ultérieur. Quand défini, le SDK ajoute l'outil Skill à `allowed_tools` automatiquement. Si vous passez également `tools`, incluez `"Skill"` dans cette liste. Voir [Compétences](/docs/fr/agent-sdk/skills) |962| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibles pour la session. Passez `"all"` pour activer chaque skill découvert, ou une liste de noms de skills. Passez uniquement les noms exacts. Le SDK rejette les noms mal formés et de forme générique avec une `ValueError` avant de démarrer le processus Claude Code ; cette vérification nécessite Python Agent SDK 0.2.129 ou ultérieur. Quand défini, le SDK ajoute l'outil Skill à `allowed_tools` automatiquement. Si vous passez également `tools`, incluez `"Skill"` dans cette liste. Voir [Skills](/docs/fr/agent-sdk/skills) |
963| `max_thinking_tokens` | `int \| None` | `None` | *Déprécié* - Nombre maximum de tokens pour les blocs de réflexion. Utilisez `thinking` à la place |963| `max_thinking_tokens` | `int \| None` | `None` | *Déprécié* - Nombre maximum de tokens pour les blocs de réflexion. Utilisez `thinking` à la place |
964| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Contrôle le comportement de la réflexion étendue. Prend la priorité sur `max_thinking_tokens` |964| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Contrôle le comportement de la réflexion étendue. A priorité sur `max_thinking_tokens` |
965| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Niveau d'effort pour la profondeur de réflexion. Voir [ajuster le niveau d'effort](/docs/fr/model-config#adjust-effort-level) |965| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Niveau d'effort pour la profondeur de réflexion. Voir [ajuster le niveau d'effort](/docs/fr/model-config#adjust-effort-level) |
966| `session_store` | [`SessionStore`](/docs/fr/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Refléter les transcriptions de session vers un backend externe afin qu'un autre hôte puisse les reprendre. Voir [Persister les sessions vers un stockage externe](/docs/fr/agent-sdk/session-storage) |966| `session_store` | [`SessionStore`](/docs/fr/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Refléter les transcriptions de session vers un backend externe afin qu'un autre hôte puisse les reprendre. Voir [Persister les sessions vers un stockage externe](/docs/fr/agent-sdk/session-storage) |
967| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quand vider les entrées de transcription refléchies vers `session_store`. `"batched"` vide une fois par tour ou quand le tampon se remplit ; `"eager"` déclenche un vidage en arrière-plan après chaque frame. Ignoré quand `session_store` est `None` |967| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quand vider les entrées de transcription reflétées vers `session_store`. `"batched"` vide une fois par tour ou quand le tampon se remplit ; `"eager"` déclenche un vidage en arrière-plan après chaque frame. Ignoré quand `session_store` est `None` |
968| `load_timeout_ms` | `int` | `60000` | Délai d'attente par appel pour `session_store.load()` et `list_subkeys()` lors de la matérialisation de la reprise, en millisecondes |968| `load_timeout_ms` | `int` | `60000` | Délai d'attente par appel pour `session_store.load()` et `list_subkeys()` lors de la matérialisation de la reprise, en millisecondes |
969| `task_budget` | `TaskBudget \| None` | `None` | Budget de tokens côté API. Envoyé en tant que `output_config.task_budget` avec l'en-tête bêta `task-budgets-2026-03-13`. Passez `{"total": <int>}`. |969| `task_budget` | `TaskBudget \| None` | `None` | Budget de tokens côté API. Envoyé en tant que `output_config.task_budget` avec l'en-tête bêta `task-budgets-2026-03-13`. Passez `{"total": <int>}`. |
970 970
987```987```
988 988
989* `API_TIMEOUT_MS` : délai d'attente par requête sur le client Anthropic, en millisecondes. Par défaut `600000`. S'applique à la boucle principale et à tous les sous-agents.989* `API_TIMEOUT_MS` : délai d'attente par requête sur le client Anthropic, en millisecondes. Par défaut `600000`. S'applique à la boucle principale et à tous les sous-agents.
990* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de tentatives d'API. Par défaut `10`, plafonné à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est à peu près `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre les pannes plus longues, définissez [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/fr/errors#tune-retry-behavior) : il réessaie les erreurs de capacité transitoires indéfiniment et, sur Claude Code v2.1.199 ou ultérieur, augmente la valeur par défaut pour les autres erreurs transitoires à `300` et supprime le plafond sur cette variable.990* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de nouvelles tentatives d'API. Par défaut `10`, plafonné à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est à peu près `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre la fin de pannes plus longues, définissez [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/fr/errors#tune-retry-behavior) : il réessaie les erreurs de capacité transitoires indéfiniment et, sur Claude Code v2.1.199 ou ultérieur, augmente la valeur par défaut pour les autres erreurs transitoires à `300` et supprime le plafond sur cette variable.
991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents. Pendant que le chien de garde de flux est activé, la valeur par défaut est `CLAUDE_STREAM_IDLE_TIMEOUT_MS` plus 5 minutes, ce qui donne `600000` sauf si vous augmentez cette variable. Avec le chien de garde de flux désactivé, la valeur par défaut est `600000`. Avant v2.1.257, la valeur par défaut était toujours `600000`.991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents. Pendant que le chien de garde de flux est activé, la valeur par défaut est `CLAUDE_STREAM_IDLE_TIMEOUT_MS` plus 5 minutes, ce qui donne `600000` sauf si vous augmentez cette variable. Avec le chien de garde de flux désactivé, la valeur par défaut est `600000`. Avant v2.1.257, la valeur par défaut était toujours `600000`.
992 992
993 Le minuteur se réinitialise à chaque événement de flux. En cas de blocage, Claude Code abandonne le sous-agent et signale le blocage au parent. Pour un sous-agent en arrière-plan, il marque également la tâche comme échouée et joint tout résultat partiel.993 Le minuteur se réinitialise à chaque événement de flux. En cas de blocage, Claude Code abandonne le sous-agent et signale le blocage au parent. Pour un sous-agent en arrière-plan, il marque également la tâche comme échouée et joint tout résultat partiel.
994* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : chien de garde de flux qui abandonne la requête quand les en-têtes sont arrivés mais que le corps de la réponse cesse de diffuser. Le chien de garde est activé par défaut pour tous les fournisseurs ; définissez `CLAUDE_ENABLE_STREAM_WATCHDOG=0` pour le désactiver. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` par défaut à `300000` et est limité à ce minimum. Après l'abandon, [Tentatives automatiques](/docs/fr/errors#automatic-retries) couvre ce que Claude Code fait, en fonction de la progression de la réponse.994* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : chien de garde de flux qui abandonne la requête quand les en-têtes sont arrivés mais que le corps de la réponse cesse d'être envoyé en streaming. Le chien de garde est activé par défaut pour tous les fournisseurs ; définissez `CLAUDE_ENABLE_STREAM_WATCHDOG=0` pour le désactiver. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` vaut par défaut `300000` et est limité à ce minimum. Après l'abandon, [Nouvelles tentatives automatiques](/docs/fr/errors#automatic-retries) décrit ce que fait Claude Code, en fonction de la progression de la réponse.
995 995
996 Pendant que le chien de garde attend une réponse qu'une passerelle derrière `ANTHROPIC_BASE_URL` maintient ouverte avec des pings de maintien de connexion, un hôte qui définit `include_partial_messages` continue de recevoir des messages [`StreamEvent`](#streamevent) de `ping`. Lisez ces frames comme une vivacité plutôt que de chronométrer la session sur le silence. Avant v2.1.257, les frames s'arrêtaient 5 minutes après le dernier événement de flux réel.996 Pendant que le chien de garde attend une réponse qu'une passerelle derrière `ANTHROPIC_BASE_URL` maintient ouverte avec des pings de maintien de connexion, un hôte qui définit `include_partial_messages` continue de recevoir des messages [`StreamEvent`](#streamevent) de `ping`. Interprétez ces frames comme un signe d'activité plutôt que de faire expirer la session en cas de silence. Avant v2.1.257, les frames s'arrêtaient 5 minutes après le dernier événement de flux réel.
997 997
998<h3 id="outputformat">998<h3 id="outputformat">
999 `OutputFormat`999 `OutputFormat`
1034| `type` | Yes | Doit être `"preset"` pour utiliser un prompt système prédéfini |1034| `type` | Yes | Doit être `"preset"` pour utiliser un prompt système prédéfini |
1035| `preset` | Yes | Doit être `"claude_code"` pour utiliser le prompt système de Claude Code |1035| `preset` | Yes | Doit être `"claude_code"` pour utiliser le prompt système de Claude Code |
1036| `append` | No | Instructions supplémentaires à ajouter au prompt système prédéfini |1036| `append` | No | Instructions supplémentaires à ajouter au prompt système prédéfini |
1037| `exclude_dynamic_sections` | No | Déplacer le contexte par session tel que le répertoire de travail, le drapeau du dépôt git, et les chemins de mémoire automatique du prompt système vers le premier message utilisateur. Améliore la réutilisation du cache de prompt entre les utilisateurs et les machines. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1037| `exclude_dynamic_sections` | No | Déplacer le contexte propre à chaque utilisateur, tel que l'emplacement de la mémoire automatique, du prompt système vers le premier message utilisateur. Améliore la réutilisation du cache de prompt entre les utilisateurs et les machines. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |
1038| `snapshot` | No | Définissez à `False` pour reconstruire le prompt système à chaque requête au lieu de [réutiliser le prompt que la session a enregistré à sa première requête](/docs/fr/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Nécessite `claude-agent-sdk` v0.2.153 ou ultérieur |1038| `snapshot` | No | Définissez à `False` pour reconstruire le prompt système à chaque requête au lieu de [réutiliser le prompt que la session a enregistré à sa première requête](/docs/fr/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Nécessite `claude-agent-sdk` v0.2.153 ou ultérieur |
1039 1039
1040<h3 id="systempromptcustom">1040<h3 id="systempromptcustom">
1060 `SystemPromptFile`1060 `SystemPromptFile`
1061</h3>1061</h3>
1062 1062
1063Configuration pour charger un prompt système personnalisé à partir d'un fichier au lieu de le passer en tant que chaîne. Le SDK mappe ceci au drapeau CLI [`--system-prompt-file`](/docs/fr/cli-reference#system-prompt-flags). Utilisez la forme fichier quand le prompt est volumineux : le SDK transmet un `system_prompt` chaîne sur l'argv du sous-processus CLI, qui est soumis aux limites de longueur de ligne de commande du système d'exploitation avant que le SDK n'envoie une requête API. Sur Linux, un seul argument plus long que environ 128 KB échoue au lancement du processus avec `Argument list too long`. Sur Windows, la ligne de commande entière est plafonnée à environ 32 KB, donc la forme chaîne échoue à un seuil inférieur.1063Configuration pour charger un prompt système personnalisé à partir d'un fichier au lieu de le passer en tant que chaîne. Le SDK mappe ceci au flag CLI [`--system-prompt-file`](/docs/fr/cli-reference#system-prompt-flags). Utilisez la forme fichier quand le prompt est volumineux : le SDK transmet un `system_prompt` chaîne sur l'argv du sous-processus CLI, qui est soumis aux limites de longueur de ligne de commande du système d'exploitation avant que le SDK n'envoie une requête API. Sur Linux, un seul argument plus long qu'environ 128 KB échoue au lancement du processus avec `Argument list too long`. Sur Windows, la ligne de commande entière est plafonnée à environ 32 KB, donc la forme chaîne échoue à un seuil inférieur.
1064 1064
1065```python theme={null}1065```python theme={null}
1066class SystemPromptFile(TypedDict):1066class SystemPromptFile(TypedDict):
1077 `SettingSource`1077 `SettingSource`
1078</h3>1078</h3>
1079 1079
1080Contrôle quelles sources de configuration basées sur le système de fichiers le SDK charge les paramètres.1080Contrôle à partir de quelles sources de configuration basées sur le système de fichiers le SDK charge les paramètres.
1081 1081
1082```python theme={null}1082```python theme={null}
1083SettingSource = Literal["user", "project", "local"]1083SettingSource = Literal["user", "project", "local"]
1093 Comportement par défaut1093 Comportement par défaut
1094</h4>1094</h4>
1095 1095
1096Quand `setting_sources` est omis ou `None` et `skills` n'est pas défini, `query()` charge les mêmes paramètres du système de fichiers que le CLI Claude Code : utilisateur, projet et local. Avec `skills` défini, la ligne [`setting_sources`](#claudeagentoptions) décrit la valeur par défaut actuelle. La politique gérée par le point de terminaison est chargée dans tous les cas ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec une credential d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour plus d'informations, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control).1096Quand `setting_sources` est omis ou `None` et `skills` n'est pas défini, `query()` charge les mêmes paramètres du système de fichiers que le CLI Claude Code : utilisateur, projet et local. Avec `skills` défini, la ligne [`setting_sources`](#claudeagentoptions) décrit la valeur par défaut actuelle. La politique gérée par le point de terminaison est chargée dans tous les cas ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec des identifiants d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour plus d'informations, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control).
1097 1097
1098<h4 id="why-use-setting_sources">1098<h4 id="why-use-setting_sources">
1099 Pourquoi utiliser setting\_sources1099 Pourquoi utiliser setting\_sources
1174asyncio.run(main())1174asyncio.run(main())
1175```1175```
1176 1176
1177Pour charger les instructions de projet CLAUDE.md, incluez `"project"` dans `setting_sources`. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) pour comment le chargement de CLAUDE.md interagit avec les options de prompt système.1177Pour charger les instructions de projet CLAUDE.md, incluez `"project"` dans `setting_sources`. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) pour savoir comment le chargement de CLAUDE.md interagit avec les options de prompt système.
1178 1178
1179<h4 id="settings-precedence">1179<h4 id="settings-precedence">
1180 Précédence des paramètres1180 Priorité des paramètres
1181</h4>1181</h4>
1182 1182
1183Quand plusieurs sources sont chargées, les paramètres sont fusionnés avec cette précédence (la plus haute à la plus basse) :1183Quand plusieurs sources sont chargées, les paramètres sont fusionnés selon cette priorité (de la plus haute à la plus basse) :
1184 1184
11851. Paramètres locaux (`.claude/settings.local.json`)11851. Paramètres locaux (`.claude/settings.local.json`)
11862. Paramètres de projet (`.claude/settings.json`)11862. Paramètres de projet (`.claude/settings.json`)
11873. Paramètres utilisateur (`~/.claude/settings.json`)11873. Paramètres utilisateur (`~/.claude/settings.json`)
1188 1188
1189Les options programmatiques telles que `agents`, `allowed_tools`, et `settings` remplacent les paramètres du système de fichiers utilisateur, projet et local. Les paramètres de politique gérée prennent la priorité sur les options programmatiques.1189Les options programmatiques telles que `agents`, `allowed_tools`, et `settings` remplacent les paramètres du système de fichiers utilisateur, projet et local. Les paramètres de politique gérée ont priorité sur les options programmatiques.
1190 1190
1191<h3 id="agentdefinition">1191<h3 id="agentdefinition">
1192 `AgentDefinition`1192 `AgentDefinition`
1219| `tools` | No | Tableau de noms d'outils autorisés. S'il est omis, hérite de chaque [outil disponible pour les sous-agents](/docs/fr/sub-agents#available-tools) |1219| `tools` | No | Tableau de noms d'outils autorisés. S'il est omis, hérite de chaque [outil disponible pour les sous-agents](/docs/fr/sub-agents#available-tools) |
1220| `disallowedTools` | No | Tableau de noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les motifs au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime chaque outil de ce serveur, et `mcp__*` supprime chaque outil MCP de n'importe quel serveur |1220| `disallowedTools` | No | Tableau de noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les motifs au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime chaque outil de ce serveur, et `mcp__*` supprime chaque outil MCP de n'importe quel serveur |
1221| `model` | No | Remplacement de modèle pour cet agent. Accepte un alias tel que `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou un ID de modèle complet. Quand vous l'omettez, Claude Code choisit le modèle dans l'[ordre de modèle des sous-agents](/docs/fr/sub-agents#choose-a-model) |1221| `model` | No | Remplacement de modèle pour cet agent. Accepte un alias tel que `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou un ID de modèle complet. Quand vous l'omettez, Claude Code choisit le modèle dans l'[ordre de modèle des sous-agents](/docs/fr/sub-agents#choose-a-model) |
1222| `skills` | No | Liste de noms de compétences à précharger dans le contexte de l'agent au démarrage. Les compétences non listées restent invocables via l'outil Skill |1222| `skills` | No | Liste de noms de skills à précharger dans le contexte de l'agent au démarrage. Les skills non listés restent invocables via l'outil Skill |
1223| `memory` | No | Source de mémoire pour cet agent : `"user"`, `"project"`, ou `"local"` |1223| `memory` | No | Source de mémoire pour cet agent : `"user"`, `"project"`, ou `"local"` |
1224| `mcpServers` | No | Serveurs MCP disponibles pour cet agent. Chaque entrée est un nom de serveur ou un dict `{name: config}` en ligne |1224| `mcpServers` | No | Serveurs MCP disponibles pour cet agent. Chaque entrée est un nom de serveur ou un dict `{name: config}` en ligne |
1225| `initialPrompt` | No | Auto-soumis en tant que premier tour utilisateur quand cet agent s'exécute en tant qu'agent de thread principal |1225| `initialPrompt` | No | Auto-soumis en tant que premier tour utilisateur quand cet agent s'exécute en tant qu'agent de thread principal |
1245 "plan", # Mode planification - explorer sans éditer1245 "plan", # Mode planification - explorer sans éditer
1246 "dontAsk", # Refuser tout ce qui n'est pas pré-approuvé au lieu de demander1246 "dontAsk", # Refuser tout ce qui n'est pas pré-approuvé au lieu de demander
1247 "bypassPermissions", # Contourner les vérifications de permission ; les règles d'ask explicites demandent toujours (utiliser avec prudence)1247 "bypassPermissions", # Contourner les vérifications de permission ; les règles d'ask explicites demandent toujours (utiliser avec prudence)
1248 "auto", # Le classificateur de modèle approuve ou refuse les invites de permission1248 "auto", # Un classifieur de modèle examine les actions telles que les commandes shell et les requêtes réseau
1249]1249]
1250```1250```
1251 1251
1285 1285
1286Retourne un `PermissionResult` (soit `PermissionResultAllow` soit `PermissionResultDeny`).1286Retourne un `PermissionResult` (soit `PermissionResultAllow` soit `PermissionResultDeny`).
1287 1287
1288Le rappel est le remplacement SDK pour l'invite de permission interactive : il est invoqué uniquement quand le [flux d'évaluation de permission](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une invite. Les appels d'outil déjà approuvés par une entrée `allowed_tools`, une règle d'autorisation de paramètres, ou le mode de permission, tel que `acceptEdits` ou `bypassPermissions`, ne l'invoquent jamais. Pour contrôler chaque appel d'outil, utilisez un hook [`PreToolUse`](/docs/fr/agent-sdk/hooks) à la place.1288Le rappel est le remplacement SDK de la demande de permission interactive : il est invoqué uniquement quand le [flux d'évaluation des permissions](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une demande de permission. Les appels d'outils déjà approuvés par une entrée `allowed_tools`, une règle d'autorisation des paramètres, ou le mode de permission, tel que `acceptEdits` ou `bypassPermissions`, ne l'invoquent jamais. Pour contrôler chaque appel d'outil, utilisez plutôt un [hook `PreToolUse`](/docs/fr/agent-sdk/hooks).
1289 1289
1290Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves) ; voir [Comment les permissions sont évaluées](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) pour lesquelles d'entre elles atteignent le rappel et ce qui se passe en mode `dontAsk` et `auto`.1290Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves) ; voir [Comment les permissions sont évaluées](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) pour savoir lesquelles d'entre elles atteignent le rappel et ce qui se passe en mode `dontAsk` et `auto`.
1291 1291
1292<h3 id="toolpermissioncontext">1292<h3 id="toolpermissioncontext">
1293 `ToolPermissionContext`1293 `ToolPermissionContext`
1312| Field | Type | Description |1312| Field | Type | Description |
1313| :- | :- | :- |1313| :- | :- | :- |
1314| `signal` | `Any \| None` | Réservé pour le support futur du signal d'abandon |1314| `signal` | `Any \| None` | Réservé pour le support futur du signal d'abandon |
1315| `suggestions` | `list[PermissionUpdate]` | Suggestions de mise à jour de permission du CLI. Les invites Bash incluent une suggestion avec la destination `localSettings`, donc retourner cela dans `updated_permissions` écrit la règle à `.claude/settings.local.json` et persiste entre les sessions. |1315| `suggestions` | `list[PermissionUpdate]` | Suggestions de mise à jour de permission du CLI. Les demandes de permission Bash incluent une suggestion avec la destination `localSettings`, donc la retourner dans `updated_permissions` écrit la règle dans `.claude/settings.local.json` et persiste entre les sessions. |
1316| `tool_use_id` | `str \| None` | Identifiant de l'appel d'outil spécifique pour lequel cette invite est. Toujours rempli quand livré à `can_use_tool` |1316| `tool_use_id` | `str \| None` | Identifiant de l'appel d'outil spécifique concerné par cette demande de permission. Toujours rempli quand livré à `can_use_tool` |
1317| `agent_id` | `str \| None` | ID du sous-agent quand l'appel provient d'un sous-agent ; `None` pour l'agent principal |1317| `agent_id` | `str \| None` | ID du sous-agent quand l'appel provient d'un sous-agent ; `None` pour l'agent principal |
1318| `blocked_path` | `str \| None` | Chemin de fichier qui a déclenché la demande de permission, le cas échéant. Par exemple, quand une commande Bash essaie d'accéder à un chemin en dehors des répertoires autorisés |1318| `blocked_path` | `str \| None` | Chemin de fichier qui a déclenché la demande de permission, le cas échéant. Par exemple, quand une commande Bash essaie d'accéder à un chemin en dehors des répertoires autorisés |
1319| `decision_reason` | `str \| None` | Raison pour laquelle cette demande de permission a été déclenchée. Transmise d'un hook PreToolUse dont `permissionDecisionReason` quand le hook a retourné `"ask"` |1319| `decision_reason` | `str \| None` | Raison pour laquelle cette demande de permission a été déclenchée. Transmise depuis le `permissionDecisionReason` d'un hook PreToolUse quand le hook a retourné `"ask"` |
1320| `title` | `str \| None` | Phrase d'invite de permission complète, telle que `Claude wants to read foo.txt`. Utilisez comme texte d'invite principal quand présent |1320| `title` | `str \| None` | Phrase complète de la demande de permission, telle que `Claude wants to read foo.txt`. Utilisez-la comme texte principal de la demande quand elle est présente |
1321| `display_name` | `str \| None` | Phrase nominale courte pour l'action d'outil, telle que `Read file`, appropriée pour les étiquettes de bouton |1321| `display_name` | `str \| None` | Phrase nominale courte pour l'action d'outil, telle que `Read file`, appropriée pour les étiquettes de bouton |
1322| `description` | `str \| None` | Sous-titre lisible par l'homme pour l'interface utilisateur de permission |1322| `description` | `str \| None` | Sous-titre lisible par l'homme pour l'interface utilisateur de permission |
1323 1323
1465| `enabled` | `type`, `budget_tokens`, `display` | Activer la réflexion avec un budget de tokens spécifique |1465| `enabled` | `type`, `budget_tokens`, `display` | Activer la réflexion avec un budget de tokens spécifique |
1466| `disabled` | `type` | Désactiver la réflexion |1466| `disabled` | `type` | Désactiver la réflexion |
1467 1467
1468Le champ `display` optionnel contrôle si le texte de réflexion est retourné `"summarized"` ou `"omitted"`. Sur Claude Opus 4.7 et ultérieur, la valeur par défaut de l'API est `"omitted"`, donc définissez `"summarized"` pour recevoir le contenu de réflexion dans les sorties [`ThinkingBlock`](#thinkingblock). Claude Code n'envoie pas `display` à Amazon Bedrock ou à la plateforme d'agent de Google Cloud, donc sur ces fournisseurs Opus 4.7 et ultérieur retournent des sorties `ThinkingBlock` vides même quand vous définissez `display` à `"summarized"`.1468Le champ `display` optionnel contrôle si le texte de réflexion est retourné `"summarized"` ou `"omitted"`. Sur Claude Opus 4.7 et ultérieur, la valeur par défaut de l'API est `"omitted"`, donc définissez `"summarized"` pour recevoir le contenu de réflexion dans les sorties [`ThinkingBlock`](#thinkingblock). Claude Code omet `display` des requêtes envoyées à certains fournisseurs, tels qu'Amazon Bedrock et Agent Platform de Google Cloud. Sur ces fournisseurs, Opus 4.7 et ultérieur retournent des sorties `ThinkingBlock` vides même quand vous définissez `display` à `"summarized"`.
1469 1469
1470Parce que ce sont des classes `TypedDict`, ce sont des dicts simples à l'exécution. Construisez-les soit comme des littéraux dict soit appelez la classe comme un constructeur ; les deux produisent un `dict`. Accédez aux champs avec `config["budget_tokens"]`, pas `config.budget_tokens` :1470Parce que ce sont des classes `TypedDict`, ce sont des dicts simples à l'exécution. Construisez-les soit comme des littéraux dict soit appelez la classe comme un constructeur ; les deux produisent un `dict`. Accédez aux champs avec `config["budget_tokens"]`, pas `config.budget_tokens` :
1471 1471
1660 apiUsage: NotRequired[dict[str, Any] | None]1660 apiUsage: NotRequired[dict[str, Any] | None]
1661```1661```
1662 1662
1663Chaque entrée `ContextUsageCategory` porte `name`, `tokens`, `color`, et un drapeau optionnel `isDeferred`. `totalTokens` est l'utilisation de contexte actuelle de la session, et `maxTokens` est la fenêtre contre laquelle l'utilisation est mesurée. Cette fenêtre est la fenêtre de contexte du modèle, ou la fenêtre de compaction automatique inférieure quand une s'applique, et `rawMaxTokens` porte la même valeur que `maxTokens`. `apiUsage` contient l'utilisation de la dernière réponse API, pas un total cumulé pour la session. Claude Code laisse les clés optionnelles `deferredBuiltinTools`, `systemTools`, et `systemPromptSections` non définies, donc attendez-vous à ce qu'elles soient absentes même si le type les déclare.1663Chaque entrée `ContextUsageCategory` porte `name`, `tokens`, `color`, et un flag optionnel `isDeferred`. `totalTokens` est l'utilisation de contexte actuelle de la session, et `maxTokens` est la fenêtre par rapport à laquelle cette utilisation est mesurée. Cette fenêtre est la fenêtre de contexte du modèle, ou la fenêtre de compaction automatique inférieure quand elle s'applique, et `rawMaxTokens` porte la même valeur que `maxTokens`. `apiUsage` contient l'utilisation de la dernière réponse API, pas un total cumulé pour la session. Claude Code laisse les clés optionnelles `deferredBuiltinTools`, `systemTools`, et `systemPromptSections` non définies, donc attendez-vous à ce qu'elles soient absentes même si le type les déclare.
1664 1664
1665<h3 id="sdkpluginconfig">1665<h3 id="sdkpluginconfig">
1666 `SdkPluginConfig`1666 `SdkPluginConfig`
1840 1840
1841Plusieurs champs portent des détails de diagnostic sur la façon dont la conversation s'est terminée :1841Plusieurs champs portent des détails de diagnostic sur la façon dont la conversation s'est terminée :
1842 1842
1843* `is_error` : `True` quand la conversation s'est terminée dans un état d'erreur. Toujours `True` sur les sous-types `error_*`. Sur `subtype="success"` c'est `True` quand la dernière demande de modèle a échoué, ce qui signifie que la boucle d'agent s'est terminée mais le dernier appel API a retourné une erreur.1843* `is_error` : `True` quand la conversation s'est terminée dans un état d'erreur. Toujours `True` sur les sous-types `error_*`. Sur `subtype="success"` c'est `True` quand la dernière requête de modèle a échoué, ce qui signifie que la boucle d'agent s'est terminée mais le dernier appel API a retourné une erreur.
1844* `api_error_status` : le code de statut HTTP de l'erreur API terminale. `None` quand le tour s'est terminé sans une. Rempli uniquement sur `subtype="success"`.1844* `api_error_status` : le code de statut HTTP de l'erreur API terminale. `None` quand le tour s'est terminé sans une. Rempli uniquement sur `subtype="success"`.
1845* `result` : texte du message d'assistant final sur `subtype="success"`, ou `None` sur les sous-types `error_*`. Quand `subtype="success"` et `is_error=True`, ceci contient la chaîne d'erreur API si une est disponible mais peut être vide, donc vérifiez `api_error_status` et le contenu `AssistantMessage` précédent pour plus de détails.1845* `result` : texte du message d'assistant final sur `subtype="success"`, ou `None` sur les sous-types `error_*`. Quand `subtype="success"` et `is_error=True`, ceci contient la chaîne d'erreur API si une est disponible mais peut être vide, donc vérifiez `api_error_status` et le contenu `AssistantMessage` précédent pour plus de détails.
1846* `errors` : chaînes d'erreur au niveau de la boucle telles que le message max-turns. Rempli uniquement sur les sous-types `error_*`.1846* `errors` : chaînes d'erreur au niveau de la boucle telles que le message max-turns. Rempli uniquement sur les sous-types `error_*`.
1847* `terminal_reason` : pourquoi la boucle de requête s'est terminée, telle que `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"`, ou `"aborted_tools"`. Une valeur de `"aborted_streaming"` ou `"aborted_tools"` signifie que le tour a été interrompu avant de se terminer. Les causes courantes sont [`interrupt()`](#claudesdkclient) et un rappel de permission retournant [`PermissionResultDeny`](#permissionresultdeny) avec `interrupt=True`. `None` sur les versions CLI qui précèdent le champ, sur les résultats des commandes locales telles que `/voice` ou `/usage`, qui contournent la boucle de requête, ou sur les résultats d'erreur synthétisés émis quand la session échoue fatalement. Reflète le [`SDKResultMessage.terminal_reason`](/docs/fr/agent-sdk/typescript#sdkresultmessage) du SDK TypeScript, qui liste l'ensemble complet des valeurs.1847* `terminal_reason` : pourquoi la boucle de requête s'est terminée, telle que `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"`, ou `"aborted_tools"`. Une valeur de `"aborted_streaming"` ou `"aborted_tools"` signifie que le tour a été interrompu avant de se terminer. Les causes courantes sont [`interrupt()`](#claudesdkclient) et un rappel de permission retournant [`PermissionResultDeny`](#permissionresultdeny) avec `interrupt=True`. `None` sur les versions CLI qui précèdent le champ, sur les résultats des commandes locales telles que `/voice` ou `/usage`, qui contournent la boucle de requête, ou sur les résultats d'erreur synthétisés émis quand la session échoue fatalement. Reflète le [`SDKResultMessage.terminal_reason`](/docs/fr/agent-sdk/typescript#sdkresultmessage) du SDK TypeScript, qui liste l'ensemble complet des valeurs.
1848* `origin` : origine du message utilisateur qui a déclenché ce tour. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), vérifiez ceci pour distinguer le résultat de votre propre invite, où `origin` est `None` ou `{"kind": "human"}`, du résultat d'un tour injecté tel qu'une notification de tâche de fond. Nécessite Python Agent SDK 0.2.137 ou ultérieur.1848* `origin` : origine du message utilisateur qui a déclenché ce tour. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), vérifiez ceci pour distinguer le résultat de votre propre prompt, où `origin` est `None` ou `{"kind": "human"}`, du résultat d'un tour injecté tel qu'une notification de tâche en arrière-plan. Nécessite Python Agent SDK 0.2.137 ou ultérieur.
1849 1849
1850Le dict `usage` couvre uniquement la boucle d'agent principal et exclut les sous-agents et autres appels de modèle imbriqués ou auxiliaires. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), les valeurs sont par tour. Préférez `model_usage` pour la comptabilité des tokens et des coûts. Le dict `usage` contient les clés suivantes quand présentes :1850Le dict `usage` couvre uniquement la boucle d'agent principal et exclut les sous-agents et autres appels de modèle imbriqués ou auxiliaires. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), les valeurs sont par tour. Préférez `model_usage` pour la comptabilité des tokens et des coûts. Le dict `usage` contient les clés suivantes quand présentes :
1851 1851
1856| `cache_creation_input_tokens` | `int` | Tokens utilisés pour créer de nouvelles entrées de cache. |1856| `cache_creation_input_tokens` | `int` | Tokens utilisés pour créer de nouvelles entrées de cache. |
1857| `cache_read_input_tokens` | `int` | Tokens lus à partir des entrées de cache existantes. |1857| `cache_read_input_tokens` | `int` | Tokens lus à partir des entrées de cache existantes. |
1858 1858
1859Le dict `model_usage` mappe les noms de modèles à l'utilisation par modèle. Il couvre chaque appel de modèle effectué via le pipeline de requête : la boucle principale, les sous-agents, et les appels internes tels que la compaction et les agents Workflow. Les appels d'assistance en dehors de ce pipeline, tels que le classificateur de permission et les demandes de comptage de tokens, sont exclus de `model_usage`. Traitez `model_usage` comme une estimation, pas une déclaration de facturation.1859Le dict `model_usage` mappe les noms de modèles à l'utilisation par modèle. Il couvre chaque appel de modèle effectué via le pipeline de requête : la boucle principale, les sous-agents, et les appels internes tels que la compaction et les agents Workflow. Les appels d'assistance en dehors de ce pipeline, tels que le classificateur de permission et les requêtes de comptage de tokens, sont exclus de `model_usage`. Traitez `model_usage` comme une estimation, pas une déclaration de facturation.
1860 1860
1861En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), `model_usage` et `total_cost_usd` sont cumulatifs entre les tours, donc lisez le dernier résultat plutôt que de faire la somme entre les résultats. Un appel qui reprend une session compte également les [totaux restaurés à partir des appels antérieurs de la session](/docs/fr/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Voir [Suivre les coûts en mode d'entrée en streaming](/docs/fr/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) pour les réinitialisations et [Récupérer les totaux après un crash de session](/docs/fr/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) pour les résultats remis à zéro.1861En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), `model_usage` et `total_cost_usd` sont cumulatifs entre les tours, donc lisez le dernier résultat plutôt que de faire la somme entre les résultats. Un appel qui reprend une session compte également les [totaux restaurés à partir des appels antérieurs de la session](/docs/fr/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Voir [Suivre les coûts en mode d'entrée en streaming](/docs/fr/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) pour les réinitialisations et [Récupérer les totaux après un crash de session](/docs/fr/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) pour les résultats remis à zéro.
1862 1862
1875| `maxOutputTokens` | `int` | Limite de tokens de sortie maximum pour ce modèle. |1875| `maxOutputTokens` | `int` | Limite de tokens de sortie maximum pour ce modèle. |
1876| `canonicalModel` | `str` | ID de modèle canonique utilisé pour la recherche de tarification. Peut différer de la chaîne de modèle brute par laquelle l'entrée est indexée, telle qu'un ID spécifique au fournisseur ou un alias. Pas toujours présent. |1876| `canonicalModel` | `str` | ID de modèle canonique utilisé pour la recherche de tarification. Peut différer de la chaîne de modèle brute par laquelle l'entrée est indexée, telle qu'un ID spécifique au fournisseur ou un alias. Pas toujours présent. |
1877| `provider` | `str` | Fournisseur d'API qui a servi ce modèle, tel que `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle`, ou `gateway`. Pas toujours présent. |1877| `provider` | `str` | Fournisseur d'API qui a servi ce modèle, tel que `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle`, ou `gateway`. Pas toujours présent. |
1878| `costBasis` | `str` | Grille tarifaire qui a déterminé le prix de la dernière requête de ce modèle : `list` pour le prix catalogue, `managed` pour une table [`modelPricing`](/docs/fr/settings-reference#modelpricing), ou `unknown` quand aucune ne correspondait à l'ID du modèle. Pas toujours présent, et non déclaré sur le TypedDict, donc lisez-le avec `.get()`. Nécessite Claude Code v2.1.246 ou ultérieur. |
1878 1879
1879<h3 id="streamevent">1880<h3 id="streamevent">
1880 `StreamEvent`1881 `StreamEvent`
1945 1946
1946| Champ | Type | Description |1947| Champ | Type | Description |
1947| :- | :- | :- |1948| :- | :- | :- |
1948| `status` | `RateLimitStatus` | Statut actuel. `"allowed_warning"` signifie approcher la limite ; `"rejected"` signifie que la limite a été atteinte |1949| `status` | `RateLimitStatus` | Statut actuel, l'un de `"allowed"`, `"allowed_warning"`, ou `"rejected"`. `"allowed_warning"` signifie approcher la limite ; `"rejected"` signifie que la limite a été atteinte |
1949| `resets_at` | `int \| None` | Timestamp Unix quand la fenêtre de limite de débit se réinitialise |1950| `resets_at` | `int \| None` | Timestamp Unix quand la fenêtre de limite de débit se réinitialise |
1950| `rate_limit_type` | `RateLimitType \| None` | Quelle fenêtre de limite de débit s'applique |1951| `rate_limit_type` | `RateLimitType \| None` | Quelle fenêtre de limite de débit s'applique |
1951| `utilization` | `float \| None` | Fraction de la limite de débit consommée (0,0 à 1,0) |1952| `utilization` | `float \| None` | Fraction de la limite de débit consommée (0,0 à 1,0) |
1978 `TaskStartedMessage`1979 `TaskStartedMessage`
1979</h3>1980</h3>
1980 1981
1981Émis quand une tâche de fond démarre. Une tâche de fond est tout ce qui est suivi en dehors du tour principal : une commande Bash en arrière-plan, une montre [Monitor](#monitor), un sous-agent généré via l'outil Agent, ou un agent distant. Le champ `task_type` vous dit lequel. Ce nommage n'est pas lié au renommage de l'outil `Task`-à-`Agent`.1982Émis quand une tâche en arrière-plan démarre. Une tâche en arrière-plan est tout ce qui est suivi en dehors du tour principal : une commande Bash en arrière-plan, une surveillance [Monitor](#monitor), un sous-agent généré via l'outil Agent, ou un agent distant. Le champ `task_type` vous dit lequel. Ce nommage n'est pas lié au renommage de l'outil `Task`-à-`Agent`.
1982 1983
1983```python theme={null}1984```python theme={null}
1984@dataclass1985@dataclass
1998| `uuid` | `str` | Identifiant de message unique |1999| `uuid` | `str` | Identifiant de message unique |
1999| `session_id` | `str` | Identifiant de session |2000| `session_id` | `str` | Identifiant de session |
2000| `tool_use_id` | `str \| None` | ID d'utilisation d'outil associé |2001| `tool_use_id` | `str \| None` | ID d'utilisation d'outil associé |
2001| `task_type` | `str \| None` | Quel type de tâche de fond : `"local_bash"` pour Bash en arrière-plan et les montres Monitor, `"local_agent"`, ou `"remote_agent"` |2002| `task_type` | `str \| None` | Quel type de tâche en arrière-plan : `"local_bash"` pour Bash en arrière-plan et les surveillances Monitor, `"local_agent"`, ou `"remote_agent"` |
2002 2003
2003<h3 id="taskusage">2004<h3 id="taskusage">
2004 `TaskUsage`2005 `TaskUsage`
2005</h3>2006</h3>
2006 2007
2007Données de tokens et de timing pour une tâche de fond.2008Données de tokens et de timing pour une tâche en arrière-plan.
2008 2009
2009```python theme={null}2010```python theme={null}
2010class TaskUsage(TypedDict):2011class TaskUsage(TypedDict):
2017 `TaskProgressMessage`2018 `TaskProgressMessage`
2018</h3>2019</h3>
2019 2020
2020Émis périodiquement avec les mises à jour de progression pour une tâche de fond en cours d'exécution.2021Émis périodiquement avec les mises à jour de progression pour une tâche en arrière-plan en cours d'exécution.
2021 2022
2022```python theme={null}2023```python theme={null}
2023@dataclass2024@dataclass
2045 `TaskNotificationMessage`2046 `TaskNotificationMessage`
2046</h3>2047</h3>
2047 2048
2048Émis 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 en arrière-plan.2049Émis quand une tâche en arrière-plan se termine, échoue, ou est arrêtée. Les tâches en arrière-plan incluent les commandes Bash `run_in_background`, les surveillances Monitor, et les sous-agents en arrière-plan.
2049 2050
2050```python theme={null}2051```python theme={null}
2051@dataclass2052@dataclass
2166 """Base error for Claude SDK."""2167 """Base error for Claude SDK."""
2167```2168```
2168 2169
2169Quand une requête `query()` unique se termine par un résultat d'erreur, par exemple une erreur de limite de tours, le SDK lève une [`ResultError`](#resulterror) après avoir cédé le message de résultat final. Les versions du Python Agent SDK antérieures à 0.2.140 levaient une `Exception` simple qui n'était pas une sous-classe de `ClaudeSDKError`.2170Quand une requête `query()` unique se termine par un résultat d'erreur, par exemple une erreur de limite de tours, le SDK lève une [`ResultError`](#resulterror).
2170 2171
2171<h3 id="clinotfounderror">2172<h3 id="clinotfounderror">
2172 `CLINotFoundError`2173 `CLINotFoundError`
2216 `ResultError`2217 `ResultError`
2217</h3>2218</h3>
2218 2219
2219Levée après le [`ResultMessage`](#resultmessage) final quand le processus Claude Code se termine parce que l'exécution s'est terminée par un résultat d'erreur, comme une erreur de limite de tours ou une erreur API. `ResultError` est une sous-classe de `ProcessError`, donc un gestionnaire `except ProcessError` existant la capture également. Ses attributs portent les champs de ce message de résultat, vous pouvez donc vous brancher sur la raison de l'échec de l'exécution sans analyser le texte du message. Nécessite Python Agent SDK 0.2.140 ou version ultérieure.2220Levée quand le processus Claude Code se termine parce que l'exécution s'est terminée par un [message de résultat](#resultmessage) d'erreur, comme une erreur de limite de tours ou une erreur API. `ResultError` est une sous-classe de `ProcessError`, donc un gestionnaire `except ProcessError` existant la capture également. Ses attributs portent les champs de ce message de résultat, vous pouvez donc adapter votre logique selon la raison de l'échec de l'exécution sans analyser le texte du message. Nécessite Python Agent SDK 0.2.140 ou version ultérieure.
2220 2221
2221```python theme={null}2222```python theme={null}
2222class ResultError(ProcessError):2223class ResultError(ProcessError):
2649 hookEventName: Literal["PostToolUse"]2650 hookEventName: Literal["PostToolUse"]
2650 additionalContext: NotRequired[str]2651 additionalContext: NotRequired[str]
2651 updatedToolOutput: NotRequired[Any]2652 updatedToolOutput: NotRequired[Any]
2652 updatedMCPToolOutput: NotRequired[Any] # Deprecated: use updatedToolOutput, which works for all tools2653 updatedMCPToolOutput: NotRequired[Any] # MCP tools only. Prefer updatedToolOutput, which works for all tools
2653 2654
2654 2655
2655class PostToolUseFailureHookSpecificOutput(TypedDict):2656class PostToolUseFailureHookSpecificOutput(TypedDict):
2708 Exemple d'utilisation de hook2709 Exemple d'utilisation de hook
2709</h3>2710</h3>
2710 2711
2711Cet exemple enregistre deux hooks : l'un qui bloque les commandes bash dangereuses comme `rm -rf /`, et un autre qui enregistre toute l'utilisation d'outils pour l'audit. Le hook de sécurité s'exécute uniquement sur les commandes Bash (via le `matcher`), tandis que le hook de journalisation s'exécute sur tous les outils.2712Cet exemple enregistre deux hooks : l'un qui bloque les commandes Bash dangereuses comme `rm -rf /`, et un autre qui journalise toute l'utilisation d'outils pour l'audit. Le hook de sécurité s'exécute uniquement sur les commandes Bash (via le `matcher`), tandis que le hook de journalisation s'exécute sur tous les outils.
2712 2713
2713```python theme={null}2714```python theme={null}
2714import asyncio2715import asyncio
2767 Types d'entrée/sortie d'outil2768 Types d'entrée/sortie d'outil
2768</h2>2769</h2>
2769 2770
2770Documentation des schémas d'entrée/sortie pour tous les outils Claude Code intégrés. Bien que le SDK Python n'exporte pas ceux-ci en tant que types, ils représentent la structure des entrées et sorties d'outils dans les messages.2771Documentation des schémas d'entrée/sortie pour les outils Claude Code intégrés. Bien que le SDK Python n'exporte pas ceux-ci en tant que types, ils représentent la structure des entrées et sorties d'outils dans les messages.
2771 2772
2772Chaque sortie affichée est la valeur que vous lisez à partir de [`UserMessage.tool_use_result`](#usermessage) pour cet outil. Les noms de clés apparaissent exactement comme Claude Code les émet. Une clé annotée `| None` avec un commentaire « présent quand » ou « optionnel » est omise quand elle ne s'applique pas.2773Chaque sortie affichée est la valeur que vous lisez à partir de [`UserMessage.tool_use_result`](#usermessage) pour cet outil. Les noms de clés apparaissent exactement comme Claude Code les émet. Une clé annotée `| None` avec un commentaire « présent quand » ou « optionnel » est omise quand elle ne s'applique pas.
2773 2774
3544 TaskOutput3545 TaskOutput
3545</h3>3546</h3>
3546 3547
3547Supprimé dans Claude Code v2.1.277. Précédemment récupéré la sortie d'une tâche de fond en cours d'exécution ou terminée, avec `BashOutput` accepté comme alias ; Claude lit le fichier de sortie d'une tâche de fond avec `Read` à la place.3548Supprimé dans Claude Code v2.1.277. Récupérait auparavant la sortie d'une tâche en arrière-plan en cours d'exécution ou terminée, avec `BashOutput` accepté comme alias ; Claude lit le fichier de sortie d'une tâche en arrière-plan avec `Read` à la place.
3548 3549
3549Une entrée `disallowed_tools` ou une règle de refus qui nomme toujours l'un ou l'autre nom est ignorée sans avertissement.3550Une entrée `disallowed_tools` ou une règle de refus qui nomme toujours l'un ou l'autre nom est ignorée sans avertissement.
3550 3551