Este recurso é elegível para Zero Data Retention (ZDR). Quando sua organização possui um acordo de ZDR, os dados enviados por meio deste recurso não são armazenados após a resposta da API ser retornada.
Claude pode usar uma ferramenta de editor de texto com esquema definido pela Anthropic para visualizar e modificar arquivos de texto, ajudando você a depurar, corrigir e melhorar seu código ou outros documentos de texto. Isso permite que Claude interaja diretamente com seus arquivos, fornecendo assistência prática em vez de apenas sugerir alterações.
Para suporte de modelos, consulte a Referência de ferramentas.
Alguns exemplos de quando usar a ferramenta de editor de texto são:
Forneça a ferramenta de editor de texto (chamada str_replace_based_edit_tool) a Claude usando a Messages API.
Opcionalmente, você pode especificar um parâmetro max_characters para controlar o truncamento ao visualizar arquivos grandes.
max_characters é compatível apenas com text_editor_20250728 e versões posteriores da ferramenta de editor de texto.
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)A ferramenta de editor de texto pode ser usada da seguinte maneira:
Forneça a Claude a ferramenta de editor de texto e um prompt do usuário
Claude usa a ferramenta para examinar arquivos ou diretórios
view para examinar o conteúdo de arquivos ou listar o conteúdo de diretóriostool_use com o comando viewExecute o comando view e retorne os resultados
max_characters foi especificado na configuração da ferramenta, trunque o conteúdo do arquivo para esse comprimentouser contendo um bloco de conteúdo tool_resultClaude usa a ferramenta para modificar arquivos
str_replace para fazer alterações ou insert para adicionar texto em um número de linha específico.str_replace, Claude constrói uma requisição de uso de ferramentas devidamente formatada com o texto antigo e o novo texto para substituí-loExecute a edição e retorne os resultados
Claude fornece sua análise e explicação
A ferramenta de editor de texto suporta vários comandos para visualizar e modificar arquivos:
O comando view permite que Claude examine o conteúdo de um arquivo ou liste o conteúdo de um diretório. Ele pode ler o arquivo inteiro ou um intervalo específico de linhas.
Parâmetros:
command: Deve ser "view"path: O caminho para o arquivo ou diretório a ser visualizadoview_range (opcional): Um array de dois inteiros especificando os números de linha inicial e final a serem visualizados. Os números de linha são indexados a partir de 1, e -1 para a linha final significa ler até o fim do arquivo. Este parâmetro se aplica apenas ao visualizar arquivos, não diretórios.O comando str_replace permite que Claude substitua uma string específica em um arquivo por uma nova string. Isso é usado para fazer edições precisas.
Parâmetros:
command: Deve ser "str_replace"path: O caminho para o arquivo a ser modificadoold_str: O texto a ser substituído (deve corresponder exatamente, incluindo espaços em branco e indentação)new_str: O novo texto a ser inserido no lugar do texto antigoO comando create permite que Claude crie um novo arquivo com o conteúdo especificado.
Parâmetros:
command: Deve ser "create"path: O caminho onde o novo arquivo deve ser criadofile_text: O conteúdo a ser escrito no novo arquivoO comando insert permite que Claude insira texto em um local específico de um arquivo.
Parâmetros:
command: Deve ser "insert"path: O caminho para o arquivo a ser modificadoinsert_line: O número da linha após a qual inserir o texto (0 para o início do arquivo)insert_text: O texto a ser inseridoEste exemplo demonstra como Claude usa a ferramenta de editor de texto para corrigir um erro de sintaxe em um arquivo Python.
Primeiro, sua aplicação fornece a Claude a ferramenta de editor de texto e um prompt para corrigir um erro de sintaxe:
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 usa a ferramenta de editor de texto primeiro para visualizar o arquivo:
{
"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"
}
}
]
}Sua aplicação deve então ler o arquivo e retornar seu conteúdo a 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)Números de linha
No exemplo acima, o resultado da ferramenta view inclui o conteúdo do arquivo com números de linha prefixados em cada linha (por exemplo, "1: def is_prime(n):"). Números de linha não são obrigatórios, mas são essenciais para usar com sucesso o parâmetro view_range para examinar seções específicas de arquivos e o parâmetro insert_line para adicionar conteúdo em locais precisos.
Claude identifica o erro de sintaxe e usa o comando str_replace para corrigi-lo:
{
"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):"
}
}
]
}Sua aplicação deve então fazer a edição e retornar o resultado:
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
messages=[
# Mensagens anteriores...
{
"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 fornece uma explicação completa da correção:
{
"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."
}
]
}A ferramenta de editor de texto é implementada como uma ferramenta sem esquema. Ao usar esta ferramenta, você não precisa fornecer um esquema de entrada como com outras ferramentas; o esquema é integrado ao modelo de Claude e não pode ser modificado.
O tipo da ferramenta é type: "text_editor_20250728" para modelos Claude 4.
Inicialize sua implementação do editor
Crie funções auxiliares para lidar com operações de arquivo como leitura, escrita e modificação de arquivos. Considere implementar funcionalidade de backup para recuperar de erros.
Processe chamadas da ferramenta de editor
Crie uma função que processe chamadas de ferramenta de Claude com base no 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":
# Lê e retorna o conteúdo do arquivo
pass
elif command == "str_replace":
# Substitui texto no arquivo
pass
elif command == "create":
# Cria um novo arquivo
pass
elif command == "insert":
# Insere texto no local especificado
passImplemente medidas de segurança
Adicione validação e verificações de segurança:
Processe as respostas de Claude
Extraia e processe chamadas de ferramenta das respostas de Claude:
# Processar o uso de ferramentas na resposta do Claude
for content in response.content:
if content.type == "tool_use":
# Executar a ferramenta com base no comando
result = handle_editor_tool(content)
# Retornar o resultado ao Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}Ao implementar a ferramenta de editor de texto, tenha em mente:
Ao usar a ferramenta de editor de texto, vários erros podem ocorrer. Aqui estão orientações sobre como tratá-los:
A ferramenta de editor de texto usa a mesma estrutura de preços que outras ferramentas usadas com o Claude. Ela segue a precificação padrão de tokens de entrada e saída com base no modelo do Claude que você está usando.
Além dos tokens base, os seguintes tokens de entrada adicionais são necessários para a ferramenta de editor de texto:
| Ferramenta | Tokens de entrada adicionais |
|---|---|
text_editor_20250429 (Claude 4.x) | 700 tokens |
Para informações mais detalhadas sobre preços de ferramentas, consulte Preços de uso de ferramentas.
A ferramenta de editor de texto pode ser usada junto com outras ferramentas de Claude. Ao combinar ferramentas, certifique-se de:
| Data | Versão | Alterações |
|---|---|---|
| 28 de julho de 2025 | text_editor_20250728 | Lançamento de uma ferramenta de editor de texto atualizada que corrige alguns problemas e adiciona um parâmetro opcional max_characters. Fora isso, é idêntica à text_editor_20250429. |
| 29 de abril de 2025 | text_editor_20250429 | Lançamento da ferramenta de editor de texto para Claude 4. Esta versão remove o comando undo_edit, mas mantém todas as outras capacidades. O nome da ferramenta foi atualizado para refletir sua arquitetura baseada em str_replace. |
| 13 de março de 2025 | text_editor_20250124 | Introdução da documentação independente da ferramenta de editor de texto. Esta versão é otimizada para Claude Sonnet 3.7, mas tem capacidades idênticas à versão anterior. |
| 22 de outubro de 2024 | text_editor_20241022 | Lançamento inicial da ferramenta de editor de texto com Claude Sonnet 3.5 (descontinuado). Fornece capacidades para visualizar, criar e editar arquivos por meio dos comandos view, create, str_replace, insert e undo_edit. |
Aqui estão algumas ideias de como usar a ferramenta de editor de texto de maneiras mais convenientes e poderosas:
A ferramenta de editor de texto permite que Claude trabalhe diretamente com sua base de código, suportando fluxos de trabalho desde depuração até documentação automatizada.
Aprenda como implementar fluxos de trabalho de ferramentas para uso com Claude.
Execute comandos de shell com Claude.
Was this page helpful?