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 puede usar una herramienta de editor de texto con esquema Anthropic para ver y modificar archivos de texto, ayudándote a depurar, corregir y mejorar tu código u otros documentos de texto. Esto permite que Claude interactúe directamente con tus archivos, proporcionando asistencia práctica en lugar de solo sugerir cambios.
Para obtener información sobre la compatibilidad de modelos, consulta la Referencia de herramientas.
Algunos ejemplos de cuándo usar la herramienta de editor de texto son:
Proporciona la herramienta de editor de texto (llamada str_replace_based_edit_tool) a Claude usando la API de Mensajes.
Opcionalmente, puedes especificar un parámetro max_characters para controlar el truncamiento al ver archivos grandes.
max_characters solo es compatible con text_editor_20250728 y versiones posteriores de la herramienta de editor de texto.
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)La herramienta de editor de texto se puede usar de la siguiente manera:
Proporciona a Claude la herramienta de editor de texto y un mensaje del usuario
Claude usa la herramienta para examinar archivos o directorios
view para examinar el contenido de archivos o listar el contenido de directoriostool_use con el comando viewEjecuta el comando view y devuelve los resultados
max_characters en la configuración de la herramienta, trunca el contenido del archivo a esa longituduser que contiene un bloque de contenido tool_resultClaude usa la herramienta para modificar archivos
str_replace para hacer cambios o insert para agregar texto en un número de línea específico.str_replace, Claude construye una solicitud de uso de herramienta correctamente formateada con el texto antiguo y el texto nuevo para reemplazarloEjecuta la edición y devuelve los resultados
Claude proporciona su análisis y explicación
La herramienta de editor de texto admite varios comandos para ver y modificar archivos:
El comando view permite a Claude examinar el contenido de un archivo o listar el contenido de un directorio. Puede leer el archivo completo o un rango específico de líneas.
Parámetros:
command: Debe ser "view"path: La ruta al archivo o directorio a verview_range (opcional): Una matriz de dos enteros que especifican los números de línea de inicio y fin a ver. Los números de línea son indexados desde 1, y -1 para la línea final significa leer hasta el final del archivo. Este parámetro solo se aplica al ver archivos, no directorios.El comando str_replace permite a Claude reemplazar una cadena específica en un archivo con una nueva cadena. Esto se usa para hacer ediciones precisas.
Parámetros:
command: Debe ser "str_replace"path: La ruta al archivo a modificarold_str: El texto a reemplazar (debe coincidir exactamente, incluidos espacios en blanco e indentación)new_str: El nuevo texto a insertar en lugar del texto antiguoEl comando create permite a Claude crear un nuevo archivo con contenido especificado.
Parámetros:
command: Debe ser "create"path: La ruta donde se debe crear el nuevo archivofile_text: El contenido a escribir en el nuevo archivoEl comando insert permite a Claude insertar texto en una ubicación específica en un archivo.
Parámetros:
command: Debe ser "insert"path: La ruta al archivo a modificarinsert_line: El número de línea después del cual insertar el texto (0 para el inicio del archivo)insert_text: El texto a insertarEste ejemplo demuestra cómo Claude utiliza la herramienta de editor de texto para corregir un error de sintaxis en un archivo Python.
Primero, tu aplicación proporciona a Claude la herramienta de editor de texto y un mensaje para corregir un error de sintaxis:
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)Claude utiliza la herramienta de editor de texto primero para ver el archivo:
{
"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"
}
}
]
}Tu aplicación debe entonces leer el archivo y devolver su contenido a Claude:
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)Números de línea
En el ejemplo anterior, el resultado de la herramienta view incluye el contenido del archivo con números de línea antepuestos a cada línea (por ejemplo, "1: def is_prime(n):"). Los números de línea no son obligatorios, pero son esenciales para usar exitosamente el parámetro view_range para examinar secciones específicas de archivos y el parámetro insert_line para agregar contenido en ubicaciones precisas.
Claude identifica el error de sintaxis y utiliza el comando str_replace para corregirlo:
{
"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):"
}
}
]
}Tu aplicación debe entonces hacer la edición y devolver el resultado:
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)Finalmente, Claude proporciona una explicación completa de la corrección:
{
"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."
}
]
}La herramienta de editor de texto se implementa como una herramienta sin esquema. Cuando usas esta herramienta, no necesitas proporcionar un esquema de entrada como con otras herramientas; el esquema está integrado en el modelo de Claude y no se puede modificar.
El tipo de herramienta es type: "text_editor_20250728" para modelos Claude 4.
Inicializar tu implementación del editor
Crea funciones auxiliares para manejar operaciones de archivo como lectura, escritura y modificación de archivos. Considera implementar funcionalidad de copia de seguridad para recuperarte de errores.
Manejar llamadas de herramienta del editor
Crea una función que procese llamadas de herramienta de Claude basadas en el tipo de comando:
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
passImplementar medidas de seguridad
Agrega validación y controles de seguridad:
Procesar respuestas de Claude
Extrae y maneja llamadas de herramienta de las respuestas 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,
}Cuando implementes la herramienta de editor de texto, ten en cuenta:
Cuando usas la herramienta de editor de texto, pueden ocurrir varios errores. Aquí hay orientación sobre cómo manejarlos:
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:
| Tool | Additional input tokens |
|---|---|
text_editor_20250429 (Claude 4.x) | 700 tokens |
Para obtener información más detallada sobre precios de herramientas, consulta Precios de uso de herramientas.
La herramienta de editor de texto se puede usar junto con otras herramientas de Claude. Cuando combines herramientas, asegúrate de:
| Fecha | Versión | Cambios |
|---|---|---|
| 28 de julio de 2025 | text_editor_20250728 | Lanzamiento de una herramienta de editor de texto actualizada que corrige algunos problemas y agrega un parámetro max_characters opcional. Es idéntica a text_editor_20250429 en otros aspectos. |
| 29 de abril de 2025 | text_editor_20250429 | Lanzamiento de la herramienta de editor de texto para Claude 4. Esta versión elimina el comando undo_edit pero mantiene todas las otras capacidades. El nombre de la herramienta se ha actualizado para reflejar su arquitectura basada en str_replace. |
| 13 de marzo de 2025 | text_editor_20250124 | Introducción de documentación de herramienta de editor de texto independiente. Esta versión está optimizada para Claude Sonnet 3.7 pero tiene capacidades idénticas a la versión anterior. |
| 22 de octubre de 2024 | text_editor_20241022 | Lanzamiento inicial de la herramienta de editor de texto con Claude Sonnet 3.5 (retirado). Proporciona capacidades para ver, crear y editar archivos a través de los comandos view, create, str_replace, insert y undo_edit. |
Aquí hay algunas ideas sobre cómo usar la herramienta de editor de texto de formas más convenientes y poderosas:
La herramienta de editor de texto permite a Claude trabajar directamente con tu base de código, apoyando flujos de trabajo desde depuración hasta documentación automatizada.
Aprende cómo implementar flujos de trabajo de herramientas para usar con Claude.
Ejecuta comandos de shell con Claude.
Was this page helpful?