Fonctions
query()
La fonction async principale pour interagir avec Claude Code. Retourne un itérateur async qui produit des messages au fur et à mesure qu’ils arrivent.
Paramètres
Paramètre | Type | Description |
---|---|---|
prompt | str | AsyncIterable[dict] | Le prompt d’entrée sous forme de chaîne ou d’itérable async pour le mode streaming |
options | ClaudeCodeOptions | None | Objet de configuration optionnel (par défaut ClaudeCodeOptions() si None) |
Retours
Retourne unAsyncIterator[Message]
qui produit des messages de la conversation.
Exemple - Requête simple
Exemple - Avec options
tool()
Décorateur pour définir des outils MCP avec sécurité de type.
Paramètres
Paramètre | Type | Description |
---|---|---|
name | str | Identifiant unique pour l’outil |
description | str | Description lisible par l’humain de ce que fait l’outil |
input_schema | type | dict[str, Any] | Schéma définissant les paramètres d’entrée de l’outil (voir ci-dessous) |
Options de schéma d’entrée
-
Mappage de type simple (recommandé) :
-
Format de schéma JSON (pour validation complexe) :
Retours
Une fonction décorateur qui encapsule l’implémentation de l’outil et retourne une instanceSdkMcpTool
.
Exemple
create_sdk_mcp_server()
Créer un serveur MCP en processus qui s’exécute dans votre application Python.
Paramètres
Paramètre | Type | Défaut | Description |
---|---|---|---|
name | str | - | Identifiant unique pour le serveur |
version | str | "1.0.0" | Chaîne de version du serveur |
tools | list[SdkMcpTool[Any]] | None | None | Liste des fonctions d’outils créées avec le décorateur @tool |
Retours
Retourne un objetMcpSdkServerConfig
qui peut être passé à ClaudeCodeOptions.mcp_servers
.
Exemple
Classes
ClaudeSDKClient
Client pour des conversations bidirectionnelles et interactives avec Claude Code. Fournit un contrôle complet sur le flux de conversation avec support pour le streaming, les interruptions et l’envoi dynamique de messages.
Méthodes
Méthode | Description |
---|---|
__init__(options) | Initialiser le client avec une configuration optionnelle |
connect(prompt) | Se connecter à Claude avec un prompt initial optionnel ou un flux de messages |
query(prompt, session_id) | Envoyer une nouvelle requête en mode streaming |
receive_messages() | Recevoir tous les messages de Claude comme un itérateur async |
receive_response() | Recevoir des messages jusqu’à et y compris un ResultMessage |
interrupt() | Envoyer un signal d’interruption (fonctionne seulement en mode streaming) |
disconnect() | Se déconnecter de Claude |
Support du gestionnaire de contexte
Le client peut être utilisé comme un gestionnaire de contexte async pour la gestion automatique des connexions :
Important : Lors de l’itération sur les messages, évitez d’utiliser break
pour sortir prématurément car cela peut causer des problèmes de nettoyage asyncio. Au lieu de cela, laissez l’itération se terminer naturellement ou utilisez des drapeaux pour suivre quand vous avez trouvé ce dont vous avez besoin.
Exemple - Conversation interactive
Types
SdkMcpTool
Définition pour un outil MCP SDK créé avec le décorateur @tool
.
Propriété | Type | Description |
---|---|---|
name | str | Identifiant unique pour l’outil |
description | str | Description lisible par l’humain |
input_schema | type[T] | dict[str, Any] | Schéma pour la validation d’entrée |
handler | Callable[[T], Awaitable[dict[str, Any]]] | Fonction async qui gère l’exécution de l’outil |
ClaudeCodeOptions
Dataclass de configuration pour les requêtes Claude Code.
Propriété | Type | Défaut | Description |
---|---|---|---|
allowed_tools | list[str] | [] | Liste des noms d’outils autorisés |
max_thinking_tokens | int | 8000 | Tokens maximum pour le processus de réflexion |
system_prompt | str | None | None | Remplacer entièrement le prompt système par défaut |
append_system_prompt | str | None | None | Texte à ajouter au prompt système par défaut |
mcp_servers | dict[str, McpServerConfig] | str | Path | {} | Configurations de serveur MCP ou chemin vers le fichier de configuration |
permission_mode | PermissionMode | None | None | Mode de permission pour l’utilisation des outils |
continue_conversation | bool | False | Continuer la conversation la plus récente |
resume | str | None | None | ID de session à reprendre |
max_turns | int | None | None | Tours de conversation maximum |
disallowed_tools | list[str] | [] | Liste des noms d’outils interdits |
model | str | None | None | Modèle Claude à utiliser |
permission_prompt_tool_name | str | None | None | Nom d’outil MCP pour les prompts de permission |
cwd | str | Path | None | None | Répertoire de travail actuel |
settings | str | None | None | Chemin vers le fichier de paramètres |
add_dirs | list[str | Path] | [] | Répertoires supplémentaires auxquels Claude peut accéder |
extra_args | dict[str, str | None] | {} | Arguments CLI supplémentaires à passer directement au CLI |
can_use_tool | CanUseTool | None | None | Fonction de rappel de permission d’outil |
hooks | dict[HookEvent, list[HookMatcher]] | None | None | Configurations de hook pour intercepter les événements |
PermissionMode
Modes de permission pour contrôler l’exécution des outils.
McpSdkServerConfig
Configuration pour les serveurs MCP SDK créés avec create_sdk_mcp_server()
.
McpServerConfig
Type union pour les configurations de serveur MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
Types de messages
Message
Type union de tous les messages possibles.
UserMessage
Message d’entrée utilisateur.
AssistantMessage
Message de réponse de l’assistant avec blocs de contenu.
SystemMessage
Message système avec métadonnées.
ResultMessage
Message de résultat final avec informations de coût et d’utilisation.
Types de blocs de contenu
ContentBlock
Type union de tous les blocs de contenu.
TextBlock
Bloc de contenu texte.
ThinkingBlock
Bloc de contenu de réflexion (pour les modèles avec capacité de réflexion).
ToolUseBlock
Bloc de demande d’utilisation d’outil.
ToolResultBlock
Bloc de résultat d’exécution d’outil.
Types d’erreur
ClaudeSDKError
Classe d’exception de base pour toutes les erreurs SDK.
CLINotFoundError
Levée quand le CLI Claude Code n’est pas installé ou introuvable.
CLIConnectionError
Levée quand la connexion à Claude Code échoue.
ProcessError
Levée quand le processus Claude Code échoue.
CLIJSONDecodeError
Levée quand l’analyse JSON échoue.
Types de hook
HookEvent
Types d’événements de hook supportés. Notez qu’en raison de limitations de configuration, le SDK Python ne supporte pas les hooks SessionStart, SessionEnd et Notification.
HookCallback
Définition de type pour les fonctions de rappel de hook.
input_data
: Données d’entrée spécifiques au hook (voir documentation des hooks)tool_use_id
: Identifiant d’utilisation d’outil optionnel (pour les hooks liés aux outils)context
: Contexte de hook avec informations supplémentaires
decision
:"block"
pour bloquer l’actionsystemMessage
: Message système à ajouter à la transcriptionhookSpecificOutput
: Données de sortie spécifiques au hook
HookContext
Informations de contexte passées aux rappels de hook.
HookMatcher
Configuration pour faire correspondre les hooks à des événements ou outils spécifiques.
Exemple d’utilisation de hook
Types d’entrée/sortie d’outil
Documentation des schémas d’entrée/sortie pour tous les outils intégrés Claude Code. Bien que le SDK Python n’exporte pas ceux-ci comme types, ils représentent la structure des entrées et sorties d’outils dans les messages.Task
Nom d’outil :Task
Entrée :
Bash
Nom d’outil :Bash
Entrée :
Edit
Nom d’outil :Edit
Entrée :
MultiEdit
Nom d’outil :MultiEdit
Entrée :
Read
Nom d’outil :Read
Entrée :
Write
Nom d’outil :Write
Entrée :
Glob
Nom d’outil :Glob
Entrée :
Grep
Nom d’outil :Grep
Entrée :
NotebookEdit
Nom d’outil :NotebookEdit
Entrée :
WebFetch
Nom d’outil :WebFetch
Entrée :
WebSearch
Nom d’outil :WebSearch
Entrée :
TodoWrite
Nom d’outil :TodoWrite
Entrée :
BashOutput
Nom d’outil :BashOutput
Entrée :
KillBash
Nom d’outil :KillBash
Entrée :
ExitPlanMode
Nom d’outil :ExitPlanMode
Entrée :
ListMcpResources
Nom d’outil :ListMcpResources
Entrée :
ReadMcpResource
Nom d’outil :ReadMcpResource
Entrée :
Exemple d’utilisation
Opérations de fichier de base
Gestion d’erreur
Mode streaming avec client
Utilisation d’outils personnalisés
Voir aussi
- Guide du SDK Python - Tutoriel et exemples
- Aperçu du SDK - Concepts généraux du SDK
- Référence du SDK TypeScript - Documentation du SDK TypeScript
- Référence CLI - Interface en ligne de commande
- Flux de travail courants - Guides étape par étape