Claude Platform Docs
MessagesOutils

Outil d'édition de texte

Donnez à Claude l'outil d'édition de texte défini par Anthropic pour afficher, créer et modifier des fichiers, et gérez ses commandes view, str_replace, create et insert.

Claude peut utiliser un outil d'édition de texte au schéma défini par Anthropic pour afficher et modifier des fichiers texte, vous aidant ainsi à déboguer, corriger et améliorer votre code ou d'autres documents texte. Cela permet à Claude d'interagir directement avec vos fichiers, en fournissant une assistance concrète plutôt que de simplement suggérer des modifications.

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

Quand utiliser l'outil d'édition de texte

Voici quelques exemples de cas d'utilisation de l'outil d'édition de texte :

  • Débogage de code : demandez à Claude d'identifier et de corriger les bogues dans votre code, des erreurs de syntaxe aux problèmes de logique.
  • Refactorisation de code : laissez Claude améliorer la structure, la lisibilité et les performances de votre code grâce à des modifications ciblées.
  • Génération de documentation : demandez à Claude d'ajouter des docstrings, des commentaires ou des fichiers README à votre base de code.
  • Création de tests : demandez à Claude de créer des tests unitaires pour votre code en se basant sur son analyse de l'implémentation.

Utiliser l'outil d'édition de texte

Fournissez l'outil d'édition de texte (nommé str_replace_based_edit_tool) à Claude à l'aide de l'API Messages.

Vous pouvez éventuellement spécifier un paramètre max_characters pour contrôler la troncature lors de l'affichage de fichiers volumineux.

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    tools=[
        {
            "type": "text_editor_20250728",
            "name": "str_replace_based_edit_tool",
            "max_characters": 10000,
        }
    ],
    messages=[
        {
            "role": "user",
            "content": "There's a syntax error in my primes.py file. Can you help me fix it?",
        }
    ],
)

print(response)

Utilisez l'outil d'édition de texte de la manière suivante :

  1. Fournir à Claude l'outil d'édition de texte et un prompt utilisateur

    • Incluez l'outil d'édition de texte dans votre requête API.
    • Fournissez un prompt utilisateur susceptible de nécessiter l'examen ou la modification de fichiers, par exemple « Pouvez-vous corriger l'erreur de syntaxe dans mon code ? ».
  2. Claude utilise l'outil pour examiner des fichiers ou des répertoires

    • Claude évalue ce qu'il doit examiner et utilise la commande view pour examiner le contenu d'un fichier ou lister le contenu d'un répertoire.
    • La réponse de l'API contiendra un bloc de contenu tool_use avec la commande view.
  3. Exécuter la commande view et renvoyer les résultats

    • Extrayez le chemin du fichier ou du répertoire à partir de la requête d'utilisation d'outils de Claude.
    • Lisez le contenu du fichier ou listez le contenu du répertoire.
    • Si un paramètre max_characters a été spécifié dans la configuration de l'outil, tronquez le contenu du fichier à cette longueur.
    • Renvoyez les résultats à Claude en poursuivant la conversation avec un nouveau message user contenant un bloc de contenu tool_result.
  4. Claude utilise l'outil pour modifier des fichiers

    • Après avoir examiné le fichier ou le répertoire, Claude peut utiliser une commande telle que str_replace pour apporter des modifications ou insert pour ajouter du texte à un numéro de ligne spécifique.
    • Si Claude utilise la commande str_replace, il construit une requête d'utilisation d'outils correctement formatée avec l'ancien texte et le nouveau texte par lequel le remplacer.
  5. Exécuter la modification et renvoyer les résultats

    • Extrayez le chemin du fichier, l'ancien texte et le nouveau texte à partir de la requête d'utilisation d'outils de Claude.
    • Effectuez le remplacement de texte dans le fichier.
    • Renvoyez les résultats à Claude.
  6. Claude fournit son analyse et ses explications

    • Après avoir examiné et éventuellement modifié les fichiers, Claude fournit une explication complète de ce qu'il a trouvé et des modifications qu'il a apportées.

Commandes de l'outil d'édition de texte

L'outil d'édition de texte prend en charge plusieurs commandes pour afficher et modifier des fichiers :

view

La commande view permet à Claude d'examiner le contenu d'un fichier ou de lister le contenu d'un répertoire. Elle peut lire le fichier entier ou une plage de lignes spécifique.

Paramètres :

  • command : doit être "view"
  • path : le chemin du fichier ou du répertoire à afficher
  • view_range (facultatif) : un tableau de deux entiers spécifiant les numéros de ligne de début et de fin à afficher. Les numéros de ligne commencent à 1, et -1 pour la ligne de fin signifie lire jusqu'à la fin du fichier. Ce paramètre ne s'applique qu'à l'affichage de fichiers, pas de répertoires.

str_replace

La commande str_replace permet à Claude de remplacer une chaîne spécifique dans un fichier par une nouvelle chaîne. Elle est utilisée pour effectuer des modifications précises.

Paramètres :

  • command : doit être "str_replace"
  • path : le chemin du fichier à modifier
  • old_str : le texte à remplacer (doit correspondre exactement, y compris les espaces et l'indentation)
  • new_str : le nouveau texte à insérer à la place de l'ancien texte

create

La commande create permet à Claude de créer un nouveau fichier avec le contenu spécifié.

Paramètres :

  • command : doit être "create"
  • path : le chemin où le nouveau fichier doit être créé
  • file_text : le contenu à écrire dans le nouveau fichier

insert

La commande insert permet à Claude d'insérer du texte à un emplacement spécifique dans un fichier.

Paramètres :

  • command : doit être "insert"
  • path : le chemin du fichier à modifier
  • insert_line : le numéro de ligne après lequel insérer le texte (0 pour le début du fichier)
  • insert_text : le texte à insérer

Exemple : corriger une erreur de syntaxe avec l'outil d'édition de texte

Cet exemple montre comment Claude utilise l'outil d'édition de texte pour corriger une erreur de syntaxe dans un fichier Python.

Tout d'abord, votre application fournit à Claude l'outil d'édition de texte et un prompt pour corriger une erreur de syntaxe :

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
    messages=[
        {
            "role": "user",
            "content": "There's a syntax error in my primes.py file. Can you help me fix it?",
        }
    ],
)

print(response)

Claude utilise d'abord l'outil d'édition de texte pour afficher le fichier :

Output
{
  "id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
  "model": "claude-opus-5-5",
  "stop_reason": "tool_use",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "I'll help you fix the syntax error in your primes.py file. First, let me take a look at the file to identify the issue."
    },
    {
      "type": "tool_use",
      "id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
      "name": "str_replace_based_edit_tool",
      "input": {
        "command": "view",
        "path": "primes.py"
      }
    }
  ]
}

Votre application doit ensuite lire le fichier et renvoyer son contenu à Claude :

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
    messages=[
        {
            "role": "user",
            "content": "There's a syntax error in my primes.py file. Can you help me fix it?",
        },
        {
            "role": "assistant",
            "content": [
                {
                    "type": "text",
                    "text": "I'll help you fix the syntax error in your primes.py file. First, let me take a look at the file to identify the issue.",
                },
                {
                    "type": "tool_use",
                    "id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
                    "name": "str_replace_based_edit_tool",
                    "input": {"command": "view", "path": "primes.py"},
                },
            ],
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "tool_result",
                    "tool_use_id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
                    "content": '1: def is_prime(n):\n2:     """Check if a number is prime."""\n3:     if n <= 1:\n4:         return False\n5:     if n <= 3:\n6:         return True\n7:     if n % 2 == 0 or n % 3 == 0:\n8:         return False\n9:     i = 5\n10:     while i * i <= n:\n11:         if n % i == 0 or n % (i + 2) == 0:\n12:             return False\n13:         i += 6\n14:     return True\n15: \n16: def get_primes(limit):\n17:     """Generate a list of prime numbers up to the given limit."""\n18:     primes = []\n19:     for num in range(2, limit + 1)\n20:         if is_prime(num):\n21:             primes.append(num)\n22:     return primes\n23: \n24: def main():\n25:     """Main function to demonstrate prime number generation."""\n26:     limit = 100\n27:     prime_list = get_primes(limit)\n28:     print(f"Prime numbers up to {limit}:")\n29:     print(prime_list)\n30:     print(f"Found {len(prime_list)} prime numbers.")\n31: \n32: if __name__ == "__main__":\n33:     main()',
                }
            ],
        },
    ],
)

print(response)

Claude identifie l'erreur de syntaxe et utilise la commande str_replace pour la corriger :

Output
{
  "id": "msg_01VwXyZAbCdEfGhIjKlMnO",
  "model": "claude-opus-5-5",
  "stop_reason": "tool_use",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "I found the syntax error in your primes.py file. In the `get_primes` function, there is a missing colon (:) at the end of the for loop line. Let me fix that for you."
    },
    {
      "type": "tool_use",
      "id": "toolu_01PqRsTuVwXyZAbCdEfGh",
      "name": "str_replace_based_edit_tool",
      "input": {
        "command": "str_replace",
        "path": "primes.py",
        "old_str": "    for num in range(2, limit + 1)",
        "new_str": "    for num in range(2, limit + 1):"
      }
    }
  ]
}

Votre application doit ensuite effectuer la modification et renvoyer le résultat :

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
    messages=[
        # Messages précédents...
        {
            "role": "assistant",
            "content": [
                {
                    "type": "text",
                    "text": "I found the syntax error in your primes.py file. In the `get_primes` function, there is a missing colon (:) at the end of the for loop line. Let me fix that for you.",
                },
                {
                    "type": "tool_use",
                    "id": "toolu_01PqRsTuVwXyZAbCdEfGh",
                    "name": "str_replace_based_edit_tool",
                    "input": {
                        "command": "str_replace",
                        "path": "primes.py",
                        "old_str": "    for num in range(2, limit + 1)",
                        "new_str": "    for num in range(2, limit + 1):",
                    },
                },
            ],
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "tool_result",
                    "tool_use_id": "toolu_01PqRsTuVwXyZAbCdEfGh",
                    "content": "Successfully replaced text at exactly one location.",
                }
            ],
        },
    ],
)

print(response)

Enfin, Claude fournit une explication complète de la correction :

Output
{
  "id": "msg_01IjKlMnOpQrStUvWxYzAb",
  "model": "claude-opus-5-5",
  "stop_reason": "end_turn",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "I've fixed the syntax error in your primes.py file. The issue was in the `get_primes` function at line 19. There was a missing colon (:) at the end of the for loop line.\n\nHere's what I changed:\n\nFrom:\n```python\nfor num in range(2, limit + 1)\n```\n\nTo:\n```python\nfor num in range(2, limit + 1):\n```\n\nIn Python, a colon is required at the end of statements that start a new code block, such as for loops, if statements, function definitions, etc. Without the colon, Python raises a syntax error because it doesn't know where the code block begins.\n\nYour code should now run correctly. The function will properly generate a list of prime numbers up to the specified limit."
    }
  ]
}

Implémenter l'outil d'édition de texte

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

Le type de l'outil est type: "text_editor_20250728" pour les modèles Claude 4 et ultérieurs.

  1. Initialiser votre implémentation de l'éditeur

    Créez des fonctions utilitaires pour gérer les opérations sur les fichiers telles que la lecture, l'écriture et la modification de fichiers. Envisagez d'implémenter une fonctionnalité de sauvegarde pour pouvoir récupérer en cas d'erreur.

  2. Gérer les appels à l'outil d'édition

    Créez une fonction qui traite les appels d'outils de Claude en fonction du type de commande :

    def handle_editor_tool(tool_call):
        input_params = tool_call.input
        command = input_params.get("command", "")
        file_path = input_params.get("path", "")
    
        match command:
            case "view":
                # Lire et renvoyer le contenu du fichier.
                pass
            case "str_replace":
                # Remplacer du texte dans le fichier.
                pass
            case "create":
                # Créer un nouveau fichier.
                pass
            case "insert":
                # Insérer du texte à l'emplacement indiqué.
                pass
  3. Implémenter des mesures de sécurité

    Ajoutez des contrôles de validation et de sécurité :

    • Validez les chemins de fichiers pour empêcher la traversée de répertoires.
    • Créez des sauvegardes avant d'apporter des modifications.
    • Gérez les erreurs avec élégance.
    • Implémentez des vérifications de permissions.
  4. Traiter les réponses de Claude

    Extrayez et gérez les appels d'outils à partir des réponses de Claude :

    # Traiter l'utilisation d'outils dans la réponse de Claude
    for content in response.content:
        if content.type == "tool_use":
            # Exécuter l'outil en fonction de la commande
            result = handle_editor_tool(content)
    
            # Renvoyer le résultat à Claude
            tool_result = {
                "type": "tool_result",
                "tool_use_id": content.id,
                "content": result,
            }

Gérer les erreurs

Lors de l'utilisation de l'outil d'édition de texte, diverses erreurs peuvent survenir. Voici des conseils sur la manière de les gérer :

Suivre les bonnes pratiques d'implémentation


Tarification et utilisation des tokens

L'outil d'édition de texte utilise la même structure tarifaire que les autres outils utilisés avec Claude. Il suit la tarification standard des tokens d'entrée et de sortie en fonction du modèle Claude que vous utilisez.

En plus des tokens de base, les tokens d'entrée supplémentaires suivants sont nécessaires pour l'outil d'édition de texte :

OutilTokens d'entrée supplémentaires
text_editor_20250429 (Claude 4.x)700 tokens

Pour des informations plus détaillées sur la tarification des outils, consultez Tarification de l'utilisation d'outils.

Intégrer l'outil d'édition de texte avec d'autres outils

Vous pouvez utiliser l'outil d'édition de texte conjointement avec d'autres outils Claude. Lorsque vous combinez des outils, assurez-vous de :

  • Faire correspondre la version de l'outil au modèle que vous utilisez.
  • Tenir compte de l'utilisation supplémentaire de tokens pour tous les outils inclus dans votre requête.

Journal des modifications

DateVersionModifications
28 juillet 2025text_editor_20250728Publication d'un outil d'édition de texte mis à jour qui corrige certains problèmes et ajoute un paramètre facultatif max_characters. Il est par ailleurs identique à text_editor_20250429.
29 avril 2025text_editor_20250429Publication de l'outil d'édition de texte pour Claude 4. Cette version supprime la commande undo_edit mais conserve toutes les autres fonctionnalités. Le nom de l'outil a été mis à jour pour refléter son architecture basée sur str_replace.
13 mars 2025text_editor_20250124Introduction d'une documentation autonome pour l'outil d'édition de texte. Cette version est optimisée pour Claude Sonnet 3.7 mais possède des fonctionnalités identiques à la version précédente.
22 octobre 2024text_editor_20241022Publication initiale de l'outil d'édition de texte avec Claude Sonnet 3.5 (retiré ; consultez Dépréciations de modèles). Fournit des fonctionnalités pour afficher, créer et modifier des fichiers via les commandes view, create, str_replace, insert et undo_edit.

Étapes suivantes

Voici quelques idées pour utiliser l'outil d'édition de texte de manière plus pratique et plus puissante :

  • Intégration à votre flux de travail de développement : intégrez l'outil d'édition de texte à vos outils de développement ou à votre IDE.
  • Création d'un système de revue de code : demandez à Claude de réviser votre code et d'y apporter des améliorations.
  • Construction d'un assistant de débogage : créez un système dans lequel Claude peut vous aider à diagnostiquer et à corriger les problèmes dans votre code.
  • Implémentation de la conversion de formats de fichiers : laissez Claude vous aider à convertir des fichiers d'un format à un autre.
  • Automatisation de la documentation : mettez en place des flux de travail permettant à Claude de documenter automatiquement votre code.

L'outil d'édition de texte permet à Claude de travailler directement avec votre base de code, en prenant en charge des flux de travail allant du débogage à la documentation automatisée.

Découvrez comment implémenter des flux de travail d'outils à utiliser avec Claude.

Exécutez des commandes shell avec Claude.

Was this page helpful?