Construisez des agents IA personnalisés avec le Claude Code SDK
Installer le SDK
@anthropic-ai/claude-code
depuis NPM :Définir votre clé API
ANTHROPIC_API_KEY
:Créer votre premier agent
Exécuter l'agent
@anthropic-ai/claude-code
depuis NPMclaude
. Utilisez le flag --print
(ou -p
) pour exécuter en mode non-interactif et imprimer le résultat final :Flag | Description | Exemple |
---|---|---|
--print , -p | Exécuter en mode non-interactif | claude -p "requête" |
--output-format | Spécifier le format de sortie (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Reprendre une conversation par ID de session | claude --resume abc123 |
--continue , -c | Continuer la conversation la plus récente | claude --continue |
--verbose | Activer la journalisation détaillée | claude --verbose |
--append-system-prompt | Ajouter au prompt système (seulement avec --print ) | claude --append-system-prompt "Instruction personnalisée" |
--allowedTools | Liste séparée par des espaces d’outils autorisés, ou chaîne de liste séparée par des virgules d’outils autorisés | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Liste séparée par des espaces d’outils refusés, ou chaîne de liste séparée par des virgules d’outils refusés | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Charger les serveurs MCP depuis un fichier JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Outil MCP pour gérer les prompts de permission (seulement avec --print ) | claude --permission-prompt-tool mcp__auth__prompt |
ANTHROPIC_API_KEY
, comme démontré dans le Démarrage rapide.
CLAUDE_CODE_USE_BEDROCK=1
et configurez les identifiants AWSCLAUDE_CODE_USE_VERTEX=1
et configurez les identifiants Google Cloud--allowedTools
. Les noms d’outils MCP suivent le modèle mcp__<nomServeur>__<nomOutil>
où :nomServeur
est la clé de votre fichier de configuration MCPnomOutil
est l’outil spécifique fourni par ce serveurmcp__<nomServeur>
), tous les outils de ce serveur seront autorisés.Les modèles glob (par exemple, mcp__go*
) ne sont pas supportés.--permission-prompt-tool
pour passer un outil MCP que nous utiliserons pour vérifier si l’utilisateur accorde ou non au modèle les permissions d’invoquer un outil donné. Quand le modèle invoque un outil, voici ce qui se passe :
--allowedTools
et --disallowedTools
passés dans le SDK ; si l’un de ceux-ci autorise ou refuse l’appel d’outil, nous procédons avec l’appel d’outil--permission-prompt-tool
--permission-prompt-tool
reçoit le nom de l’outil et l’entrée, et doit retourner une charge utile JSON-stringifiée avec le résultat. La charge utile doit être l’une des suivantes :
updatedInput
pour dire au modèle que le prompt de permission a muté son entrée ; sinon, définissez updatedInput
à l’entrée originale, comme dans l’exemple ci-dessus. Par exemple, si l’outil montre un diff d’édition de fichier à l’utilisateur et lui permet d’éditer le diff manuellement, l’outil de prompt de permission devrait retourner cette édition mise à jour.init
initial, suivi d’une liste de messages utilisateur et assistant, suivi d’un message système result
final avec les statistiques. Chaque message est émis comme un objet JSON séparé.
Message
et MessageParam
sont disponibles dans les SDK Anthropic. Par exemple, voir les SDK Anthropic TypeScript et Python.
stdin
où chaque message représente un tour utilisateur. Cela permet plusieurs tours d’une conversation sans relancer le binaire claude
et permet de fournir des conseils au modèle pendant qu’il traite une demande.
Chaque message est un objet JSON ‘Message utilisateur’, suivant le même format que le schéma de message de sortie. Les messages sont formatés en utilisant le format jsonl où chaque ligne d’entrée est un objet JSON complet. L’entrée JSON en streaming nécessite -p
et --output-format stream-json
.
Actuellement, ceci est limité aux messages utilisateur texte seulement.