Loading...
  • Construire
  • Admin
  • Modèles & tarification
  • SDKs clients
  • Référence API
Search...
⌘K
Log in
Outil éditeur de texte
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

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

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

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
Construire/Outils

Outil d'éditeur de texte

Claude peut utiliser un outil d'éditeur de texte conforme au schéma Anthropic pour afficher et modifier des fichiers texte, vous aidant à déboguer, corriger et améliorer votre code ou d'autres documents texte.

Was this page helpful?

  • Quand utiliser l'outil d'éditeur de texte
  • Utiliser l'outil d'éditeur de texte
  • Commandes de l'outil d'éditeur de texte
  • Exemple : Corriger une erreur de syntaxe avec l'outil d'édition de texte
  • Implémenter l'outil d'édition de texte
  • Gérer les erreurs
  • Suivre les meilleures pratiques d'implémentation
  • Tarification et utilisation des tokens
  • Intégrer l'outil d'édition de texte avec d'autres outils
  • Journal des modifications
  • Étapes suivantes

This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.

Claude peut utiliser un outil d'éditeur de texte conforme au schéma Anthropic pour afficher et modifier des fichiers texte, vous aidant à 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 pratique 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'éditeur de texte

Voici quelques exemples de quand utiliser l'outil d'éditeur 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 fonction de sa compréhension de l'implémentation.

Utiliser l'outil d'éditeur de texte

Fournissez l'outil d'éditeur de texte (nommé str_replace_based_edit_tool) à Claude en utilisant l'API Messages.

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

max_characters est uniquement compatible avec text_editor_20250728 et les versions ultérieures de l'outil d'éditeur de texte.

L'outil d'éditeur de texte peut être utilisé de la manière suivante :

Commandes de l'outil d'éditeur de texte

L'outil d'éditeur 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 spécifique de lignes.

Paramètres :

  • command : Doit être « view »
  • path : Le chemin du fichier ou du répertoire à afficher
  • view_range (optionnel) : Un tableau de deux entiers spécifiant les numéros de ligne de début et de fin à afficher. Les numéros de ligne sont indexés à partir de 1, et -1 pour la ligne de fin signifie lire jusqu'à la fin du fichier. Ce paramètre s'applique uniquement lors de 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. Ceci est utilisé 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 une invite pour corriger une erreur de syntaxe :

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

Output
{
  "id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
  "model": "claude-opus-4-7",
  "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 retourner son contenu à Claude :

Numéros de ligne

Dans l'exemple ci-dessus, le résultat de l'outil view inclut le contenu du fichier avec des numéros de ligne ajoutés au début de chaque ligne (par exemple, « 1: def is_prime(n): »). Les numéros de ligne ne sont pas obligatoires, mais ils sont essentiels pour utiliser avec succès le paramètre view_range pour examiner des sections spécifiques de fichiers et le paramètre insert_line pour ajouter du contenu à des emplacements précis.

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

Output
{
  "id": "msg_01VwXyZAbCdEfGhIjKlMnO",
  "model": "claude-opus-4-7",
  "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 retourner le résultat :

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

Output
{
  "id": "msg_01IjKlMnOpQrStUvWxYzAb",
  "model": "claude-opus-4-7",
  "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. Lors de l'utilisation de cet outil, vous n'avez pas besoin de fournir un schéma d'entrée comme avec d'autres outils ; le schéma est intégré au modèle de Claude et ne peut pas être modifié.

Le type d'outil est type: "text_editor_20250728" pour les modèles Claude 4.

Lors de l'implémentation de l'outil d'édition de texte, gardez à l'esprit :

  1. Sécurité : L'outil a accès à votre système de fichiers local, donc implémentez des mesures de sécurité appropriées.
  2. Sauvegarde : Créez toujours des sauvegardes avant d'autoriser les modifications de fichiers importants.
  3. Validation : Validez toutes les entrées pour prévenir les modifications involontaires.
  4. Correspondance unique : Assurez-vous que les remplacements correspondent à exactement un emplacement pour éviter les modifications involontaires.

Gérer les erreurs

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

Suivre les meilleures pratiques d'implémentation


Tarification et utilisation des tokens

The text editor tool uses the same pricing structure as other tools used with Claude. It follows the standard input and output token pricing based on the Claude model you're using.

In addition to the base tokens, the following additional input tokens are needed for the text editor tool:

ToolAdditional input tokens
text_editor_20250429 (Claude 4.x)700 tokens
text_editor_20250124 (Claude Sonnet 3.7 (deprecated))700 tokens

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

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

L'outil d'édition de texte peut être utilisé aux côtés d'autres outils Claude. Lors de la combinaison d'outils, assurez-vous de :

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

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 max_characters optionnel. 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 capacité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 de la documentation autonome de l'outil d'édition de texte. Cette version est optimisée pour Claude Sonnet 3.7 mais a des capacité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 (). Fournit des capacités pour afficher, créer et modifier des fichiers via les commandes , , , et .

Étapes suivantes

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

  • Intégrer avec votre flux de travail de développement : Intégrez l'outil d'édition de texte dans vos outils de développement ou votre IDE
  • Créer un système d'examen de code : Faites examiner votre code par Claude et apportez des améliorations
  • Construire un assistant de débogage : Créez un système où Claude peut vous aider à diagnostiquer et corriger les problèmes dans votre code
  • Implémenter la conversion de format de fichier : Laissez Claude vous aider à convertir des fichiers d'un format à un autre
  • Automatiser la documentation : Configurez des flux de travail pour que Claude documente automatiquement votre code

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

Aperçu de l'utilisation des outils

Apprenez comment implémenter les flux de travail des outils pour une utilisation avec Claude.

Outil Bash

Exécutez des commandes shell avec Claude.

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-7",
    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)
  1. 1

    Fournissez à Claude l'outil d'éditeur de texte et une invite utilisateur

    • Incluez l'outil d'éditeur de texte dans votre requête API
    • Fournissez une invite utilisateur qui peut nécessiter d'examiner ou de modifier des fichiers, comme « Pouvez-vous corriger l'erreur de syntaxe dans mon code ? »
  2. 2

    Claude utilise l'outil pour examiner les fichiers ou les répertoires

    • Claude évalue ce qu'il doit examiner et utilise la commande view pour examiner le contenu des fichiers ou lister le contenu des répertoires
    • La réponse de l'API contiendra un bloc de contenu tool_use avec la commande view
  3. 3

    Exécutez la commande view et retournez les résultats

    • Extrayez le chemin du fichier ou du répertoire de la demande d'utilisation d'outil 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
    • Retournez les résultats à Claude en continuant la conversation avec un nouveau message user contenant un bloc de contenu tool_result
  4. 4

    Claude utilise l'outil pour modifier les 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, Claude construit une demande d'utilisation d'outil correctement formatée avec l'ancien texte et le nouveau texte pour le remplacer
  5. 5

    Exécutez la modification et retournez les résultats

    • Extrayez le chemin du fichier, l'ancien texte et le nouveau texte de la demande d'utilisation d'outil de Claude
    • Effectuez le remplacement de texte dans le fichier
    • Retournez les résultats à Claude
  6. 6

    Claude fournit son analyse et son explication

    • Après avoir examiné et possiblement modifié les fichiers, Claude fournit une explication complète de ce qu'il a trouvé et des modifications qu'il a apportées
client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-7",
    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)
response = client.messages.create(
    model="claude-opus-4-7",
    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)
response = client.messages.create(
    model="claude-opus-4-7",
    max_tokens=1024,
    tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
    messages=[
        # Previous messages...
        {
            "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)
  1. 1

    Initialiser votre implémentation d'éditeur

    Créez des fonctions d'aide pour gérer les opérations de fichiers comme la lecture, l'écriture et la modification de fichiers. Envisagez d'implémenter une fonctionnalité de sauvegarde pour récupérer les erreurs.

  2. 2

    Gérer les appels d'outil d'éditeur

    Créez une fonction qui traite les appels d'outil 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", "")
    
        if command == "view":
            # Read and return file contents
            pass
        elif command == "str_replace":
            # Replace text in file
            pass
        elif command == "create":
            # Create new file
            pass
        elif command == "insert":
            # Insert text at location
            pass
  3. 3

    Implémenter les mesures de sécurité

    Ajoutez des validations et des vérifications de sécurité :

    • Validez les chemins de fichiers pour prévenir 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. 4

    Traiter les réponses de Claude

    Extrayez et gérez les appels d'outil des réponses de Claude :

    # Process tool use in Claude's response
    for content in response.content:
        if content.type == "tool_use":
            # Execute the tool based on command
            result = handle_editor_tool(content)
    
            # Return result to Claude
            tool_result = {
                "type": "tool_result",
                "tool_use_id": content.id,
                "content": result,
            }

retiré
view
create
str_replace
insert
undo_edit