Cette fonctionnalité est éligible à la Zero Data Retention (ZDR). Lorsque votre organisation dispose d'un accord ZDR, les données envoyées via cette fonctionnalité ne sont pas stockées après le retour de la réponse de l'API.
Claude peut utiliser un outil d'édition de texte avec schéma Anthropic pour visualiser 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, offrant 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 situations où utiliser l'outil d'édition de texte :
Fournissez l'outil d'édition de texte (nommé str_replace_based_edit_tool) à Claude via 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 n'est compatible qu'avec text_editor_20250728 et les versions ultérieures de l'outil d'édition de texte.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
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)L'outil d'édition de texte peut être utilisé 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 des fichiers ou lister le contenu des répertoirestool_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 apporter 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 le remplaceraExé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 visualiser 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 à visualiserview_range (facultatif) : Un tableau de deux entiers spécifiant les numéros de ligne de début et de fin à visualiser. Les numéros de ligne commencent à 1, et -1 pour la ligne de fin signifie lire jusqu'à la fin du fichier. Ce paramètre s'applique uniquement lors de la visualisation 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-4-8",
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 visualiser le fichier :
{
"id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
"model": "claude-opus-4-8",
"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-4-8",
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)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 afin d'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 :
{
"id": "msg_01VwXyZAbCdEfGhIjKlMnO",
"model": "claude-opus-4-8",
"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-4-8",
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-4-8",
"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. Lorsque vous utilisez 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 les modèles Claude 4.
Initialisez votre implémentation d'éditeur
Créez des fonctions auxiliaires 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 renvoyer 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 à l'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 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,
}Lors de l'implémentation de l'outil d'édition de texte, gardez à l'esprit :
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.
L'outil d'édition de texte peut être utilisé conjointement avec d'autres outils Claude. Lorsque vous combinez des outils, assurez-vous de :
| Date | Version | Modifications |
|---|---|---|
| 28 juillet 2025 | text_editor_20250728 | Publication d'une version mise à jour de l'outil d'édition de texte qui corrige certains problèmes et ajoute un paramètre facultatif max_characters. Elle 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 capacité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 capacités identiques à la version précédente. |
| 22 octobre 2024 | text_editor_20241022 | Publication initiale de l'outil d'édition de texte avec Claude Sonnet 3.5 (retiré). Fournit des capacités de visualisation, de création et de modification de 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?