Claude peut utiliser un outil d'édition de texte 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.
Voici quelques exemples de cas où utiliser l'outil d'édition de texte :
Fournissez l'outil d'édition 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 l'affichage de fichiers volumineux.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-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 :
Fournissez à Claude l'outil d'édition de texte et un prompt utilisateur
Claude utilise l'outil pour examiner des fichiers ou des répertoires
view pour examiner le contenu d'un fichier ou lister le contenu d'un répertoiretool_use avec la commande viewExécutez la commande view et renvoyez les résultats
max_characters a été spécifié dans la configuration de l'outil, tronquez le contenu du fichier à cette longueuruser contenant un bloc de contenu tool_resultClaude utilise l'outil pour modifier des fichiers
str_replace pour effectuer des modifications ou insert pour ajouter du texte à un numéro de ligne spécifique.str_replace, Claude construit une requête d'utilisation d'outils correctement formatée avec l'ancien texte et le nouveau texte qui doit le remplacerExécutez la modification et renvoyez les résultats
Claude fournit son analyse et son explication
L'outil d'édition de texte prend en charge plusieurs commandes pour afficher et modifier des fichiers :
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 vers le fichier ou le répertoire à afficherview_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 que lors de l'affichage de fichiers, pas de répertoires.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 vers le fichier à modifierold_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 texteLa 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 fichierLa 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 vers le fichier à modifierinsert_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érerCet 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",
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 :
{
"id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
"model": "claude-opus-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",
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 :
{
"id": "msg_01VwXyZAbCdEfGhIjKlMnO",
"model": "claude-opus-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",
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 :
{
"id": "msg_01IjKlMnOpQrStUvWxYzAb",
"model": "claude-opus-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."
}
]
}L'outil d'édition de texte est implémenté comme un 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 les 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 Claude 4 et les modèles ultérieurs.
Initialisez votre implémentation d'éditeur
Créez des fonctions d'assistance pour gérer les opérations sur les fichiers comme la lecture, l'écriture et la modification de fichiers. Envisagez d'implémenter une fonctionnalité de sauvegarde pour récupérer en cas d'erreurs.
Gérez les appels de 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", "")
if command == "view":
# Lire et retourner le contenu du fichier
pass
elif command == "str_replace":
# Remplacer du texte dans le fichier
pass
elif command == "create":
# Créer un nouveau fichier
pass
elif command == "insert":
# Insérer du texte à un emplacement
passImplémentez des mesures de sécurité
Ajoutez des validations et des contrôles de sécurité :
Traitez 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 selon la commande
result = handle_editor_tool(content)
# Renvoyer le résultat à Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}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 :
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 :
| Outil | Tokens 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.
Vous pouvez utiliser l'outil d'édition de texte avec d'autres outils Claude. Lorsque vous combinez des outils, assurez-vous de :
| Date | Version | Modifications |
|---|---|---|
| 28 juillet 2025 | text_editor_20250728 | Publication 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 2025 | text_editor_20250429 | Publication 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 2025 | text_editor_20250124 | Introduction de la documentation autonome de 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 2024 | text_editor_20241022 | Version initiale de l'outil d'édition de texte avec Claude Sonnet 3.5 (retiré ; voir 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. |
Voici quelques idées pour utiliser l'outil d'édition de texte de manière plus pratique et plus puissante :
L'outil d'édition de texte permet à Claude de travailler directement avec votre base de code, prenant en charge des flux de travail allant du débogage à la documentation automatisée.
Apprenez à implémenter des flux de travail d'outils à utiliser avec Claude.
Exécutez des commandes shell avec Claude.
Was this page helpful?