Claude может использовать определенный Anthropic инструмент текстового редактора для просмотра и изменения текстовых файлов, помогая вам отлаживать, исправлять и улучшать ваш код или другие текстовые документы. Это позволяет Claude напрямую взаимодействовать с вашими файлами, предоставляя практическую помощь, а не просто предлагая изменения.

Перед использованием инструмента текстового редактора

Используйте совместимую модель

Инструмент текстового редактора Anthropic доступен только для Claude 3.5 Sonnet и Claude 3.7 Sonnet:

  • Claude 3.7 Sonnet: text_editor_20250124
  • Claude 3.5 Sonnet: text_editor_20241022

Обе версии предоставляют идентичные возможности - версия, которую вы используете, должна соответствовать модели, с которой вы работаете.

Оцените соответствие вашему случаю использования

Некоторые примеры, когда следует использовать инструмент текстового редактора:

  • Отладка кода: Попросите Claude найти и исправить ошибки в вашем коде, от синтаксических ошибок до проблем с логикой.
  • Рефакторинг кода: Позвольте Claude улучшить структуру, читаемость и производительность вашего кода через целенаправленные правки.
  • Создание документации: Попросите Claude добавить строки документации, комментарии или файлы README в вашу кодовую базу.
  • Создание тестов: Попросите Claude создать модульные тесты для вашего кода на основе его понимания реализации.

Использование инструмента текстового редактора

Предоставьте инструмент текстового редактора (названный str_replace_editor) Claude, используя Messages API:

Инструмент текстового редактора можно использовать следующим образом:

1

Предоставьте Claude инструмент текстового редактора и пользовательский запрос

  • Включите инструмент текстового редактора в ваш API-запрос
  • Предоставьте пользовательский запрос, который может потребовать изучения или изменения файлов, например “Можете ли вы исправить синтаксическую ошибку в моем коде?”
2

Claude использует инструмент для изучения файлов или директорий

  • Claude оценивает, что ему нужно посмотреть, и использует команду view для изучения содержимого файла или списка содержимого директории
  • API-ответ будет содержать блок содержимого tool_use с командой view
3

Выполните команду просмотра и верните результаты

  • Извлеките путь к файлу или директории из запроса использования инструмента Claude
  • Прочитайте содержимое файла или список содержимого директории и верните их Claude
  • Верните результаты Claude, продолжив разговор с новым сообщением user, содержащим блок содержимого tool_result
4

Claude использует инструмент для изменения файлов

  • После изучения файла или директории Claude может использовать команду, такую как str_replace, для внесения изменений или insert для добавления текста на определенной строке
  • Если Claude использует команду str_replace, Claude создает правильно отформатированный запрос использования инструмента со старым текстом и новым текстом для замены
5

Выполните редактирование и верните результаты

  • Извлеките путь к файлу, старый текст и новый текст из запроса использования инструмента Claude
  • Выполните замену текста в файле
  • Верните результаты Claude
6

Claude предоставляет свой анализ и объяснение

  • После изучения и возможного редактирования файлов Claude предоставляет полное объяснение того, что он обнаружил и какие изменения внес

Команды инструмента текстового редактора

Инструмент текстового редактора поддерживает несколько команд для просмотра и изменения файлов:

view

Команда view позволяет Claude изучать содержимое файла или список содержимого директории. Она может читать весь файл или определенный диапазон строк.

Параметры:

  • command: Должно быть “view”
  • path: Путь к файлу или директории для просмотра
  • view_range (необязательно): Массив из двух целых чисел, указывающих начальный и конечный номера строк для просмотра. Номера строк начинаются с 1, а -1 для конечной строки означает чтение до конца файла. Этот параметр применяется только при просмотре файлов, не директорий.

str_replace

Команда str_replace позволяет Claude заменить определенную строку в файле на новую строку. Это используется для внесения точных правок.

Параметры:

  • command: Должно быть “str_replace”
  • path: Путь к файлу для изменения
  • old_str: Текст для замены (должен точно совпадать, включая пробелы и отступы)
  • new_str: Новый текст для вставки вместо старого текста

create

Команда create позволяет Claude создать новый файл с указанным содержимым.

Параметры:

  • command: Должно быть “create”
  • path: Путь, где должен быть создан новый файл
  • file_text: Содержимое для записи в новый файл

insert

Команда insert позволяет Claude вставить текст в определенное место в файле.

Параметры:

  • command: Должно быть “insert”
  • path: Путь к файлу для изменения
  • insert_line: Номер строки, после которой вставить текст (0 для начала файла)
  • new_str: Текст для вставки

undo_edit

Команда undo_edit позволяет Claude отменить последнее изменение, сделанное в файле.

Параметры:

  • command: Должно быть “undo_edit”
  • path: Путь к файлу, чье последнее изменение должно быть отменено

Пример: Исправление синтаксической ошибки с помощью инструмента текстового редактора

Этот пример демонстрирует, как Claude использует инструмент текстового редактора для исправления синтаксической ошибки в Python-файле.

Сначала ваше приложение предоставляет Claude инструмент текстового редактора и запрос на исправление синтаксической ошибки:

Claude будет использовать инструмент текстового редактора сначала для просмотра файла:

{
  "id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
  "model": "claude-3-7-sonnet-20250219",
  "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_editor",
      "input": {
        "command": "view",
        "path": "primes.py"
      }
    }
  ]
}

Ваше приложение должно затем прочитать файл и вернуть его содержимое Claude:

Номера строк

В приведенном выше примере результат инструмента view включает содержимое файла с номерами строк, добавленными в начало каждой строки (например, “1: def is_prime(n):”). Номера строк не обязательны, но они необходимы для успешного использования параметра view_range для изучения определенных разделов файлов и параметра insert_line для добавления содержимого в точных местах.

Claude определит синтаксическую ошибку и использует команду str_replace для ее исправления:

{
  "id": "msg_01VwXyZAbCdEfGhIjKlMnO",
  "model": "claude-3-7-sonnet-20250219",
  "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_editor",
      "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):"
      }
    }
  ]
}

Ваше приложение должно затем внести правку и вернуть результат:

Наконец, Claude предоставит полное объяснение исправления:

{
  "id": "msg_01IjKlMnOpQrStUvWxYzAb",
  "model": "claude-3-7-sonnet-20250219",
  "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."
    }
  ]
}

Реализация инструмента текстового редактора

Инструмент текстового редактора реализован как инструмент без схемы, идентифицируемый как type: "text_editor_20250124". При использовании этого инструмента вам не нужно предоставлять схему ввода, как с другими инструментами; схема встроена в модель Claude и не может быть изменена.

1

Инициализируйте вашу реализацию редактора

Создайте вспомогательные функции для обработки файловых операций, таких как чтение, запись и изменение файлов. Рассмотрите реализацию функциональности резервного копирования для восстановления после ошибок.

2

Обработка вызовов инструмента редактора

Создайте функцию, которая обрабатывает вызовы инструмента от 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
    elif command == 'undo_edit':
        # Восстановить из резервной копии
        pass
3

Реализуйте меры безопасности

Добавьте проверки валидации и безопасности:

  • Проверяйте пути к файлам для предотвращения обхода директорий
  • Создавайте резервные копии перед внесением изменений
  • Корректно обрабатывайте ошибки
  • Реализуйте проверки разрешений
4

Обработка ответов 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
        }

При реализации инструмента текстового редактора имейте в виду:

  1. Безопасность: Инструмент имеет доступ к вашей локальной файловой системе, поэтому реализуйте надлежащие меры безопасности.
  2. Резервное копирование: Всегда создавайте резервные копии перед разрешением редактирования важных файлов.
  3. Валидация: Проверяйте все входные данные, чтобы предотвратить непреднамеренные изменения.
  4. Уникальное совпадение: Убедитесь, что замены совпадают точно в одном месте, чтобы избежать непреднамеренных правок.

Обработка ошибок

При использовании инструмента текстового редактора могут возникнуть различные ошибки. Вот руководство по их обработке:

Следуйте лучшим практикам реализации


Ценообразование и использование токенов

Инструмент текстового редактора использует ту же структуру ценообразования, что и другие инструменты, используемые с Claude. Он следует стандартному ценообразованию входных и выходных токенов на основе используемой вами модели Claude.

В дополнение к базовым токенам, следующие дополнительные входные токены необходимы для инструмента текстового редактора:

ИнструментДополнительные входные токены
text_editor_20241022 (Claude 3.5 Sonnet)700 токенов
text_editor_20250124 (Claude 3.7 Sonnet)700 токенов

Для более подробной информации о ценообразовании инструментов см. Ценообразование использования инструментов.

Интеграция инструмента текстового редактора с использованием компьютера

Инструмент текстового редактора может использоваться вместе с инструментом использования компьютера и другими инструментами, определенными Anthropic. При комбинировании этих инструментов вам нужно:

  1. Включить соответствующий бета-заголовок (если используется с использованием компьютера)
  2. Сопоставить версию инструмента с используемой моделью
  3. Учитывать дополнительное использование токенов для всех инструментов, включенных в ваш запрос

Для получения дополнительной информации об использовании инструмента текстового редактора в контексте использования компьютера см. Использование компьютера.

Журнал изменений

ДатаВерсияИзменения
13 марта 2025text_editor_20250124Введение отдельной документации по инструменту текстового редактора. Эта версия оптимизирована для Claude 3.7 Sonnet, но имеет идентичные возможности с предыдущей версией.
22 октября 2024text_editor_20241022Первоначальный выпуск инструмента текстового редактора с Claude 3.5 Sonnet. Предоставляет возможности для просмотра, создания и редактирования файлов через команды view, create, str_replace, insert и undo_edit.

Следующие шаги

Вот некоторые идеи о том, как использовать инструмент текстового редактора более удобным и мощным способом:

  • Интегрируйте с вашим рабочим процессом разработки: Встройте инструмент текстового редактора в ваши инструменты разработки или IDE
  • Создайте систему проверки кода: Попросите Claude проверить ваш код и внести улучшения
  • Создайте помощника по отладке: Создайте систему, где Claude может помочь вам диагностировать и исправлять проблемы в вашем коде
  • Реализуйте конвертацию форматов файлов: Позвольте Claude помочь вам конвертировать файлы из одного формата в другой
  • Автоматизируйте документацию: Настройте рабочие процессы для автоматического документирования вашего кода Claude

Когда вы создаете приложения с инструментом текстового редактора, мы с нетерпением ждем, как вы используете возможности Claude для улучшения вашего рабочего процесса разработки и продуктивности.