Chargement

L'outil d'édition de texte

Leçon 327 min

Remarque importante : les identifiants d'outils à jour pour l'outil d'édition de texte se trouvent dans la documentation AWS ici : https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages-tool-use.html#model-parameters-anthropic-anthropic-defined-tools

L'outil d'édition de texte est une capacité intégrée de Claude qui lui donne un accès au système de fichiers et des capacités d'édition de texte. Contrairement aux autres outils pour lesquels vous écrivez à la fois le schéma et l'implémentation, Claude sait déjà comment demander des opérations d'édition de texte - vous devez simplement gérer ces demandes.

Ce que fait l'outil d'édition de texte

Cet outil donne à Claude la capacité de travailler avec des fichiers et des répertoires comme le ferait un ingénieur logiciel :

  • Afficher le contenu d'un fichier ou d'un répertoire
  • Afficher des plages spécifiques de lignes dans un fichier
  • Remplacer du texte dans des fichiers
  • Créer de nouveaux fichiers
  • Insérer du texte à des numéros de ligne spécifiques

Comment ça fonctionne

L'outil d'édition de texte est différent des outils personnalisés car seul le schéma JSON est intégré à Claude. Vous devez tout de même fournir l'implémentation réelle.

Lorsque vous créez des outils personnalisés, vous écrivez les deux côtés - le schéma qui informe Claude sur l'outil, et la fonction qui effectue réellement le travail. Avec l'outil d'édition de texte, Claude possède déjà le schéma, mais vous devez écrire des fonctions pour traiter les demandes de Claude visant à afficher, modifier ou créer des fichiers.

Configuration de l'outil

Pour utiliser l'outil d'édition de texte, vous devez fournir la version de l'outil qui correspond à votre modèle :

python
# Pour Claude 4 et les modèles ultérieurs
text_editor = "text_editor_20250728"

# Pour les modèles Claude antérieurs
text_editor = "text_editor_20250124"

Le reste de cette leçon utilise la version Claude 4 et ultérieure ; avec text_editor_20250124, le nom de l'outil est str_replace_editor à la place, et une commande undo_edit existe également.

Vous devrez également modifier votre fonction de chat pour qu'elle accepte le paramètre d'édition de texte et l'inclue dans la configuration du modèle.

Commandes de l'outil

Lorsque Claude souhaite utiliser l'éditeur de texte, il renvoie des demandes d'utilisation d'outils avec des commandes spécifiques :

Votre implémentation doit gérer les quatre commandes : view, str_replace, create et insert. Voici la structure de base pour traiter ces demandes :

python
def run_tool(tool_name, tool_input):
    if tool_name == "str_replace_based_edit_tool":
        command = tool_input.get("command", "")
        if command == "view":
            path = tool_input.get("path", "")
            return text_editor_tool.view(path)
        elif command == "str_replace":
            path = tool_input.get("path", "")
            old_str = tool_input.get("old_str", "")
            new_str = tool_input.get("new_str", "")
            return text_editor_tool.str_replace(path, old_str, new_str)
        # ... gérer d'autres commandes

Exemple : analyse de fichier

Voici comment l'outil fonctionne en pratique. Lorsque vous demandez à Claude de « rédiger une description en une phrase du code dans le fichier ./main.py », voici ce qui se passe :

Claude envoie une demande d'utilisation d'outil avec {"command": "view", "path": "./main.py"}. Votre serveur utilise la classe TextEditorTool pour lire le fichier et renvoie le contenu. Claude fournit ensuite son analyse basée sur le code qu'il a lu.

Applications pratiques

L'outil d'édition de texte transforme essentiellement Claude en un assistant de code capable de :

  • Lire du code existant et fournir une analyse
  • Créer de nouveaux fichiers et fonctions
  • Modifier du code existant
  • Configurer des fichiers de test
  • Refactoriser du code sur plusieurs fichiers

Par exemple, vous pourriez demander à Claude d'« écrire une fonction pour calculer pi jusqu'au 5e chiffre dans main.py, puis créer un fichier test.py pour le tester ». Claude lira le fichier existant, ajoutera la nouvelle fonction, créera le fichier de test et écrira des tests complets - le tout automatiquement en utilisant les commandes de l'éditeur de texte.

Cela permet de créer des outils de développement alimentés par l'IA similaires aux éditeurs de code modernes dotés de fonctionnalités d'IA intégrées, où vous pouvez demander des modifications de code et les voir implémentées directement dans votre système de fichiers.