Aller au contenu principal

L'outil Text Editor

Mis à jour le 30 juillet 2026

Tous nos outils jusqu’ici étaient définis par nous, schéma compris. Le Text Editor Tool inaugure une autre catégorie : une capacité intégrée de Claude, qui lui donne accès au système de fichiers et à des opérations d’édition de texte. Contrairement aux outils personnalisés où vous écrivez le schéma et l’implémentation, Claude sait déjà comment demander des opérations d’édition — il a été spécifiquement entraîné sur ce format. Vous n’avez qu’à gérer ces demandes.

Ce que fait le Text Editor Tool

Cet outil permet à Claude de travailler avec les fichiers comme un développeur :

  • Voir le contenu de fichiers ou de répertoires
  • Voir des plages de lignes spécifiques
  • Remplacer du texte dans des fichiers
  • Créer de nouveaux fichiers
  • Insérer du texte à des numéros de ligne spécifiques
  • Annuler des modifications récentes

La lecture par plages de lignes n’est pas un gadget : sur un gros fichier, elle permet à Claude de ne charger que la zone utile au lieu de saturer son contexte. Et le remplacement de texte opère par correspondance de chaîne exacte — le même mécanisme d’édition qu’utilisent les agents de code comme Claude Code.

Fonctionnement

La différence avec les outils personnalisés tient en une phrase : seul le schéma JSON est intégré à Claude — vous devez quand même fournir l’implémentation réelle. Claude sait demander des opérations d’édition, mais c’est vous qui écrivez les fonctions qui les exécutent. Cette répartition est aussi une responsabilité de sécurité : votre implémentation décide quels chemins sont accessibles, interdit l’évasion hors du répertoire de travail, et valide chaque opération avant de toucher au disque. Le modèle propose, votre code dispose.

Configuration

Les noms d’outils varient selon la génération de Claude. Les identifiants ci-dessous datent des générations Claude 3.5/3.7 et illustrent le principe de versionnage :

# Générations précédentes (exemples historiques)
text_editor = "text_editor_20250124"   # Claude 3.7
text_editor = "text_editor_20241022"   # Claude 3.5

Pour les modèles actuels (Opus 5, Sonnet 5, Fable 5), consultez la documentation AWS pour les identifiants à jour : documentation Bedrock — un type inadapté au modèle est rejeté par l’API, et les versions récentes de l’outil ont abandonné certaines commandes (dont l’annulation) : le tableau de correspondance de la documentation fait foi à chaque montée de version.

Gérer les commandes

Quand Claude veut utiliser le text editor, il envoie des demandes avec des commandes spécifiques — et votre routeur run_tool les aiguille comme n’importe quel outil :

def run_tool(tool_name, tool_input):
    if tool_name == "str_replace_editor":
        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 les autres commandes

Remarquez la structure à deux niveaux : un seul nom d’outil, mais un champ command qui distingue les opérations — view, str_replace, create, insert. C’est un routeur dans le routeur, et chaque commande extrait ses propres paramètres du tool_input. L’objet text_editor_tool regroupe vos implémentations : c’est là que vivent vos garde-fous.

Applications pratiques

Le Text Editor Tool transforme essentiellement Claude en 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, et refactoriser du code à travers plusieurs fichiers.

Par exemple, demandez à Claude : « Écrivez une fonction pour calculer pi à 5 décimales dans main.py, puis créez un fichier test.py pour la tester. » Claude lira le fichier existant, ajoutera la nouvelle fonction, créera le fichier de test et écrira des tests complets — le tout automatiquement via les commandes du text editor, en enchaînant view, str_replace et create dans la boucle multi-tours que vous avez déjà construite. C’est exactement ce qui rend possible la construction d’outils de développement assistés par IA, similaires aux éditeurs de code modernes avec fonctionnalités IA intégrées — et un avant-goût de la section agents qui clôt ce cours.

Points clés à retenir

  • Outil défini côté modèle : le schéma est connu de Claude, l’implémentation reste la vôtre
  • Votre code est le garde-fou : chemins autorisés, validation, périmètre d’écriture
  • Identifiants versionnés par génération de modèle — la documentation Bedrock fait foi
  • Structure à deux niveaux : un outil, un champ command (view, str_replace, create, insert…)
  • Combiné à la boucle multi-tours, il transforme Claude en assistant d’édition de code complet