Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.
Claude может использовать инструмент текстового редактора со схемой Anthropic для просмотра и изменения текстовых файлов, помогая вам отлаживать, исправлять и улучшать ваш код или другие текстовые документы. Это позволяет Claude напрямую взаимодействовать с вашими файлами, оказывая практическую помощь, а не просто предлагая изменения.
Информацию о поддержке моделей см. в Справочнике по инструментам.
Вот несколько примеров, когда стоит использовать инструмент текстового редактора:
Предоставьте Claude инструмент текстового редактора (с именем str_replace_based_edit_tool) через Messages API.
При необходимости вы можете указать параметр max_characters для управления усечением при просмотре больших файлов.
max_characters совместим только с text_editor_20250728 и более поздними версиями инструмента текстового редактора.
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)Инструмент текстового редактора можно использовать следующим образом:
Предоставьте Claude инструмент текстового редактора и пользовательскую подсказку
Claude использует инструмент для изучения файлов или каталогов
view для изучения содержимого файла или вывода содержимого каталогаtool_use с командой viewВыполните команду view и верните результаты
max_characters, усеките содержимое файла до этой длиныuser, содержащим блок контента tool_resultClaude использует инструмент для изменения файлов
str_replace, для внесения изменений или insert для добавления текста в определённую строку.str_replace, он формирует правильно оформленный запрос на использование инструмента со старым текстом и новым текстом для заменыВыполните редактирование и верните результаты
Claude предоставляет свой анализ и объяснение
Инструмент текстового редактора поддерживает несколько команд для просмотра и изменения файлов:
Команда view позволяет Claude изучить содержимое файла или вывести содержимое каталога. Она может прочитать весь файл или определённый диапазон строк.
Параметры:
command: Должно быть "view"path: Путь к файлу или каталогу для просмотраview_range (необязательно): Массив из двух целых чисел, указывающих начальный и конечный номера строк для просмотра. Нумерация строк начинается с 1, а значение -1 для конечной строки означает чтение до конца файла. Этот параметр применяется только при просмотре файлов, но не каталогов.Команда str_replace позволяет Claude заменить определённую строку в файле на новую строку. Она используется для внесения точных правок.
Параметры:
command: Должно быть "str_replace"path: Путь к файлу для измененияold_str: Текст для замены (должен точно совпадать, включая пробелы и отступы)new_str: Новый текст для вставки вместо старого текстаКоманда create позволяет Claude создать новый файл с указанным содержимым.
Параметры:
command: Должно быть "create"path: Путь, по которому должен быть создан новый файлfile_text: Содержимое для записи в новый файлКоманда insert позволяет Claude вставить текст в определённое место в файле.
Параметры:
command: Должно быть "insert"path: Путь к файлу для измененияinsert_line: Номер строки, после которой нужно вставить текст (0 для начала файла)insert_text: Текст для вставкиЭтот пример демонстрирует, как Claude использует инструмент текстового редактора для исправления синтаксической ошибки в файле Python.
Сначала ваше приложение предоставляет Claude инструмент текстового редактора и подсказку с просьбой исправить синтаксическую ошибку:
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 использует инструмент текстового редактора для просмотра файла:
{
"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"
}
}
]
}Затем ваше приложение должно прочитать файл и вернуть его содержимое 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)Номера строк
В приведённом выше примере результат инструмента view включает содержимое файла с номерами строк, добавленными в начало каждой строки (например, "1: def is_prime(n):"). Номера строк не обязательны, но они необходимы для успешного использования параметра view_range для изучения определённых разделов файлов и параметра insert_line для добавления содержимого в точные места.
Claude определяет синтаксическую ошибку и использует команду str_replace для её исправления:
{
"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):"
}
}
]
}Затем ваше приложение должно внести правку и вернуть результат:
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": "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)Наконец, Claude предоставляет полное объяснение исправления:
{
"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."
}
]
}Инструмент текстового редактора реализован как инструмент без схемы. При использовании этого инструмента вам не нужно предоставлять входную схему, как для других инструментов; схема встроена в модель Claude и не может быть изменена.
Тип инструмента — type: "text_editor_20250728" для моделей Claude 4.
Инициализируйте вашу реализацию редактора
Создайте вспомогательные функции для обработки файловых операций, таких как чтение, запись и изменение файлов. Рассмотрите возможность реализации функции резервного копирования для восстановления после ошибок.
Обрабатывайте вызовы инструмента редактора
Создайте функцию, которая обрабатывает вызовы инструмента от Claude в зависимости от типа команды:
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":
# Прочитать и вернуть содержимое файла
pass
elif command == "str_replace":
# Заменить текст в файле
pass
elif command == "create":
# Создать новый файл
pass
elif command == "insert":
# Вставить текст в указанное место
passРеализуйте меры безопасности
Добавьте валидацию и проверки безопасности:
Обрабатывайте ответы Claude
Извлекайте и обрабатывайте вызовы инструментов из ответов Claude:
# Обработка использования инструментов в ответе Claude
for content in response.content:
if content.type == "tool_use":
# Выполнение инструмента на основе команды
result = handle_editor_tool(content)
# Возврат результата в Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}При реализации инструмента текстового редактора учитывайте следующее:
При использовании инструмента текстового редактора могут возникать различные ошибки. Ниже приведены рекомендации по их обработке:
Инструмент текстового редактора использует ту же структуру ценообразования, что и другие инструменты, используемые с Claude. Он следует стандартному ценообразованию на основе входных и выходных токенов в зависимости от используемой вами модели Claude.
В дополнение к базовым токенам для инструмента текстового редактора требуются следующие дополнительные входные токены:
| Инструмент | Дополнительные входные токены |
|---|---|
text_editor_20250429 (Claude 4.x) | 700 токенов |
Более подробную информацию о ценах на инструменты см. в разделе Цены на использование инструментов.
Инструмент текстового редактора можно использовать вместе с другими инструментами Claude. При комбинировании инструментов убедитесь, что вы:
| Дата | Версия | Изменения |
|---|---|---|
| 28 июля 2025 г. | text_editor_20250728 | Выпуск обновлённого инструмента текстового редактора, который исправляет некоторые проблемы и добавляет необязательный параметр max_characters. В остальном он идентичен text_editor_20250429. |
| 29 апреля 2025 г. | text_editor_20250429 | Выпуск инструмента текстового редактора для Claude 4. В этой версии удалена команда undo_edit, но сохранены все остальные возможности. Название инструмента было обновлено, чтобы отразить его архитектуру на основе str_replace. |
| 13 марта 2025 г. | text_editor_20250124 | Введение отдельной документации по инструменту текстового редактора. Эта версия оптимизирована для Claude Sonnet 3.7, но имеет идентичные возможности с предыдущей версией. |
| 22 октября 2024 г. | text_editor_20241022 | Первоначальный выпуск инструмента текстового редактора с Claude Sonnet 3.5 (выведен из эксплуатации). Предоставляет возможности для просмотра, создания и редактирования файлов с помощью команд view, create, str_replace, insert и undo_edit. |
Вот несколько идей, как использовать инструмент текстового редактора более удобными и эффективными способами:
Инструмент текстового редактора позволяет Claude работать напрямую с вашей кодовой базой, поддерживая рабочие процессы от отладки до автоматизированной документации.
Узнайте, как реализовать рабочие процессы с инструментами для использования с Claude.
Выполняйте команды оболочки с помощью Claude.
Was this page helpful?