Claude Platform Docs
  • Messages
  • Agents gérés
  • Administration

Search...
⌘K
Premiers pas
Introduction à ClaudeDémarrage rapide
Développer avec Claude
Aperçu des fonctionnalitésUtilisation de l'API MessagesRaisons d'arrêt et repliRefus et repliCrédit de repli
Capacités du modèle
Réflexion étendueRéflexion adaptativeEffortBudgets de tâches (bêta)Mode rapide (aperçu de recherche)Sorties structuréesCitationsStreaming des messagesTraitement par lotsRésultats de rechercheStreaming des refusPrise en charge multilingueEmbeddings
Outils
AperçuFonctionnement de l'utilisation d'outilsTutoriel : Créer un agent utilisant des outilsDéfinir des outilsGérer les appels d'outilsUtilisation d'outils en parallèleTool Runner (SDK)Utilisation d'outils stricteUtilisation d'outils avec mise en cache des promptsOutils serveurDépannageOutil de recherche webOutil de récupération webOutil d'exécution de codeOutil conseillerOutil de mémoireOutil BashOutil d'utilisation de l'ordinateurOutil d'éditeur de texte
Infrastructure des outils
Référence des outilsGérer le contexte des outilsCombinaisons d'outilsRecherche d'outilsAppel d'outils programmatiqueStreaming d'outils granulaire
Gestion du contexte
Fenêtres de contexteCompactageÉdition du contexteMise en cache des promptsMessages système en cours de conversationCréer un mode d'orchestrationDiagnostics de cache (bêta)Comptage de tokens
Travailler avec des fichiers
API FilesPrise en charge des PDFImages et vision
Compétences
AperçuDémarrage rapideBonnes pratiquesCompétences pour l'entrepriseCompétences dans l'API
MCP
Serveurs MCP distantsConnecteur MCP
Claude sur les plateformes cloud
Amazon BedrockAmazon Bedrock (ancien)Claude Platform sur AWSMicrosoft FoundryVertex AI

Log in
Outil Bash
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Messages/Outils

Outil Bash



Cette fonctionnalité est éligible à la Zero Data Retention (ZDR). Lorsque votre organisation dispose d'un accord ZDR, les données envoyées via cette fonctionnalité ne sont pas stockées après le retour de la réponse de l'API.

L'outil bash permet à Claude d'exécuter des commandes shell dans une session bash persistante, permettant ainsi des opérations système, l'exécution de scripts et l'automatisation en ligne de commande. L'accès au shell est une capacité fondamentale pour un agent. Sur Terminal-Bench 2.0, un benchmark qui évalue des tâches de terminal réelles en utilisant une validation uniquement basée sur le shell, Claude affiche de solides gains de performance lorsqu'il a accès à une session bash persistante.

Vue d'ensemble

L'outil bash fournit à Claude :

  • Une session bash persistante qui maintient l'état
  • La capacité d'exécuter n'importe quelle commande shell
  • L'accès aux variables d'environnement et au répertoire de travail
  • Des capacités de chaînage de commandes et de scripting

Pour la prise en charge des modèles, consultez la Référence des outils.

Cas d'utilisation

  • Workflows de développement : Exécuter des commandes de build, des tests et des outils de développement
  • Automatisation système : Exécuter des scripts, gérer des fichiers, automatiser des tâches
  • Traitement de données : Traiter des fichiers, exécuter des scripts d'analyse, gérer des jeux de données
  • Configuration d'environnement : Installer des packages, configurer des environnements

Démarrage rapide

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    tools=[{"type": "bash_20250124", "name": "bash"}],
    messages=[
        {"role": "user", "content": "List all Python files in the current directory."}
    ],
)

print(response)

Fonctionnement

L'outil bash maintient une session persistante :

  1. Claude détermine quelle commande exécuter
  2. Vous exécutez la commande dans un shell bash
  3. Vous renvoyez la sortie (stdout et stderr) à Claude
  4. L'état de la session persiste entre les commandes (variables d'environnement, répertoire de travail)

Paramètres

ParamètreRequisDescription
commandOui*La commande bash à exécuter
restartNonDéfinir à true pour redémarrer la session bash

*Requis sauf si vous utilisez restart

Exemple : Automatisation multi-étapes

Claude peut chaîner des commandes pour accomplir des tâches complexes :

User request:
"Install the requests library and create a simple Python script that
fetches a joke from an API, then run it."

Claude's tool uses:
1. Install package
   {"command": "pip install requests"}

2. Create script
   {"command": "cat > fetch_joke.py << 'EOF'\nimport requests\nresponse = requests.get('https://official-joke-api.appspot.com/random_joke')\njoke = response.json()\nprint(f\"Setup: {joke['setup']}\")\nprint(f\"Punchline: {joke['punchline']}\")\nEOF"}

3. Run script
   {"command": "python fetch_joke.py"}

La session maintient l'état entre les commandes, de sorte que les fichiers créés à l'étape 2 sont disponibles à l'étape 3.

Implémenter l'outil bash

L'outil bash est implémenté comme un outil sans schéma. Lorsque vous utilisez cet outil, vous n'avez pas besoin de fournir un schéma d'entrée comme avec les autres outils ; le schéma est intégré au modèle de Claude et ne peut pas être modifié.

  1. 1

    Configurer un environnement bash

    Créez une session bash persistante avec laquelle Claude peut interagir :

    import subprocess
    import threading
    import queue
    
    
    class BashSession:
        def __init__(self):
            self.process = subprocess.Popen(
                ["/bin/bash"],
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                text=True,
                bufsize=0,
            )
            self.output_queue = queue.Queue()
            self.error_queue = queue.Queue()
            self._start_readers()
  2. 2

    Gérer l'exécution des commandes

    Créez une fonction pour exécuter les commandes et capturer la sortie :

    def execute_command(self, command):
        # Envoyer la commande à bash
        self.process.stdin.write(command + "\n")
        self.process.stdin.flush()
    
        # Capturer la sortie avec un délai d'expiration
        output = self._read_output(timeout=10)
        return output
    
  3. 3

    Traiter les appels d'outils de Claude

    Extrayez et exécutez les commandes à partir des réponses de Claude :

    for content in response.content:
        if content.type == "tool_use" and content.name == "bash":
            if content.input.get("restart"):
                bash_session.restart()
                result = "Bash session restarted"
            else:
                command = content.input.get("command")
                result = bash_session.execute_command(command)
    
            # Renvoyer le résultat à Claude
            tool_result = {
                "type": "tool_result",
                "tool_use_id": content.id,
                "content": result,
            }
  4. 4

    Implémenter des mesures de sécurité

    Ajoutez une validation et des restrictions. Utilisez une liste d'autorisation (allowlist) plutôt qu'une liste de blocage (blocklist), car les listes de blocage sont faciles à contourner. Rejetez les opérateurs shell afin que les commandes chaînées ne puissent pas passer outre la liste d'autorisation :

    import shlex
    
    ALLOWED_COMMANDS = {"ls", "cat", "echo", "pwd", "grep", "find", "wc", "head", "tail"}
    SHELL_OPERATORS = {"&&", "||", "|", ";", "&", ">", "<", ">>"}
    
    
    def validate_command(command):
        # Autoriser uniquement les commandes d'une liste d'autorisation explicite
        try:
            tokens = shlex.split(command)
        except ValueError:
            return False, "Could not parse command"
    
        if not tokens:
            return False, "Empty command"
    
        executable = tokens[0]
        if executable not in ALLOWED_COMMANDS:
            return False, f"Command '{executable}' is not in the allowlist"
    
        # Rejeter les opérateurs shell qui enchaîneraient des commandes supplémentaires
        for token in tokens[1:]:
            if token in SHELL_OPERATORS or token.startswith(("$", "`")):
                return False, f"Shell operator '{token}' is not allowed"
    
        return True, None

    Cette vérification constitue une première ligne de défense. Pour une isolation plus forte, exécutez les commandes validées avec shell=False et passez shlex.split(command) comme liste d'arguments, afin que le shell n'interprète jamais la chaîne.

Gérer les erreurs

Lors de l'implémentation de l'outil bash, gérez divers scénarios d'erreur :

Suivre les bonnes pratiques d'implémentation

Sécurité



L'outil bash fournit un accès direct au système. Implémentez ces mesures de sécurité essentielles :

  • Exécution dans des environnements isolés (Docker/VM)
  • Implémentation de filtrage de commandes et de listes d'autorisation
  • Définition de limites de ressources (CPU, mémoire, disque)
  • Journalisation de toutes les commandes exécutées

Recommandations clés

  • Utilisez ulimit pour définir des contraintes de ressources
  • Filtrez les commandes dangereuses (sudo, rm -rf, etc.)
  • Exécutez avec des permissions utilisateur minimales
  • Surveillez et journalisez toute exécution de commande

Tarification

L'outil bash ajoute 245 tokens d'entrée à vos appels API.

Des tokens supplémentaires sont consommés par :

  • Les sorties de commande (stdout/stderr)
  • Les messages d'erreur
  • Les contenus de fichiers volumineux

Consultez la tarification de l'utilisation d'outils pour les détails complets sur la tarification.

Patterns courants

Workflows de développement

  • Exécution de tests : pytest && coverage report
  • Build de projets : npm install && npm run build
  • Opérations Git : git status && git add . && git commit -m "message"

Points de contrôle basés sur Git

Git sert de mécanisme de récupération structuré dans les workflows d'agent de longue durée, et pas seulement de moyen de sauvegarder des modifications :

  • Capturer une référence de base : Avant que tout travail d'agent ne commence, committez l'état actuel. C'est le point de départ connu comme valide.
  • Committer par fonctionnalité : Chaque fonctionnalité terminée reçoit son propre commit. Ceux-ci servent de points de restauration si quelque chose tourne mal par la suite.
  • Reconstruire l'état au démarrage de la session : Lisez git log en parallèle d'un fichier de progression pour comprendre ce qui a déjà été fait et ce qui vient ensuite.
  • Revenir en arrière en cas d'échec : Si le travail dérape, git checkout revient au dernier commit valide au lieu d'essayer de déboguer un état défectueux.

Opérations sur les fichiers

  • Traitement de données : wc -l *.csv && ls -lh *.csv
  • Recherche de fichiers : find . -name "*.py" | xargs grep "pattern"
  • Création de sauvegardes : tar -czf backup.tar.gz ./data

Tâches système

  • Vérification des ressources : df -h && free -m
  • Gestion des processus : ps aux | grep python
  • Configuration d'environnement : export PATH=$PATH:/new/path && echo $PATH

Limitations

  • Pas de commandes interactives : Ne peut pas gérer vim, less ou les invites de mot de passe
  • Pas d'applications graphiques : Ligne de commande uniquement
  • Portée de la session : L'état de la session bash est côté client. L'API est sans état. Votre application est responsable du maintien de la session shell entre les tours.
  • Limites de sortie : Les sorties volumineuses peuvent être tronquées
  • Pas de streaming : Les résultats sont renvoyés après l'achèvement

Combinaison avec d'autres outils

L'outil bash est le plus puissant lorsqu'il est combiné avec l'éditeur de texte et d'autres outils.



Si vous utilisez également l'outil d'exécution de code, Claude a accès à deux environnements d'exécution distincts : votre session bash locale et le conteneur sandboxé d'Anthropic. L'état n'est pas partagé entre eux. Consultez Utiliser l'exécution de code avec d'autres outils d'exécution pour obtenir des conseils sur la manière d'inciter Claude à distinguer les environnements.

Prochaines étapes


Vue d'ensemble de l'utilisation d'outils

En savoir plus sur l'utilisation d'outils avec Claude


Outil éditeur de texte

Afficher et modifier des fichiers texte avec Claude

Was this page helpful?

  • Vue d'ensemble
  • Cas d'utilisation
  • Démarrage rapide
  • Fonctionnement
  • Paramètres
  • Exemple : Automatisation multi-étapes
  • Implémenter l'outil bash
  • Gérer les erreurs
  • Suivre les bonnes pratiques d'implémentation
  • Sécurité
  • Recommandations clés
  • Tarification
  • Patterns courants
  • Workflows de développement
  • Opérations sur les fichiers
  • Tâches système
  • Limitations
  • Combinaison avec d'autres outils
  • Prochaines étapes