Claude Platform Docs
  • Сообщения
  • Управляемые агенты
  • Администрирование

Search...
⌘K
Первые шаги
Введение в ClaudeБыстрый старт
Разработка с Claude
Обзор возможностейИспользование Messages APIПричины остановки и резервный вариантОтказы и резервный вариантРезервный кредит
Возможности модели
Расширенное мышлениеАдаптивное мышлениеУсилиеБюджеты задач (бета)Быстрый режим (исследовательская предварительная версия)Структурированные выходные данныеЦитированиеПотоковая передача сообщенийПакетная обработкаРезультаты поискаПотоковая передача отказовМногоязычная поддержкаЭмбеддинги
Инструменты
ОбзорКак работает использование инструментовРуководство: создание агента с использованием инструментовОпределение инструментовОбработка вызовов инструментовПараллельное использование инструментовTool Runner (SDK)Строгое использование инструментовСерверные инструментыИнструмент веб-поискаИнструмент веб-загрузкиИнструмент выполнения кодаИнструмент советникаИнструмент поиска инструментовИнструмент памятиИнструмент BashИнструмент текстового редактораИнструмент использования компьютераУстранение неполадок
Инфраструктура инструментов
Справочник по инструментамУправление контекстом инструментовКомбинации инструментовИспользование инструментов с кэшированием подсказокПрограммный вызов инструментовДетальная потоковая передача инструментов
Управление контекстом
Контекстные окнаСжатиеРедактирование контекстаКэширование подсказокСистемные сообщения в середине разговораСоздание режима оркестрацииДиагностика кэша (бета)Подсчёт токенов
Работа с файлами
Files APIПоддержка PDF
Навыки
ОбзорБыстрый стартРекомендацииНавыки для предприятийНавыки в API
MCP
Удалённые серверы MCPКоннектор MCP
Claude на облачных платформах
Amazon BedrockAmazon Bedrock (устаревшая версия)Claude Platform на AWSGoogle CloudMicrosoft Foundry

Log in
Инструмент текстового редактора
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Сообщения/Инструменты

Инструмент текстового редактора



Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.

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

Информацию о поддержке моделей см. в Справочнике по инструментам.

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

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

  • Отладка кода: Поручите Claude выявлять и исправлять ошибки в вашем коде — от синтаксических ошибок до логических проблем.
  • Рефакторинг кода: Позвольте Claude улучшить структуру, читаемость и производительность вашего кода с помощью точечных правок.
  • Генерация документации: Попросите Claude добавить строки документации (docstrings), комментарии или файлы README в вашу кодовую базу.
  • Создание тестов: Поручите 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)

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

  1. 1

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

    • Включите инструмент текстового редактора в ваш запрос к API
    • Предоставьте пользовательскую подсказку, которая может потребовать изучения или изменения файлов, например: «Можешь исправить синтаксическую ошибку в моём коде?»
  2. 2

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

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

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

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

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

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

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

    • Извлеките путь к файлу, старый текст и новый текст из запроса Claude на использование инструмента
    • Выполните замену текста в файле
    • Верните результаты Claude
  6. 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 для начала файла)
  • 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 использует инструмент текстового редактора для просмотра файла:

Output
{
  "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 для её исправления:

Output
{
  "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 предоставляет полное объяснение исправления:

Output
{
  "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.

  1. 1

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

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

  2. 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
  3. 3

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

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

    • Проверяйте пути к файлам для предотвращения обхода каталогов (directory traversal)
    • Создавайте резервные копии перед внесением изменений
    • Корректно обрабатывайте ошибки
    • Реализуйте проверки прав доступа
  4. 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_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.

Дальнейшие шаги

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

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

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


Обзор использования инструментов

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

Инструмент Bash

Выполняйте команды оболочки с помощью Claude.

Was this page helpful?

  • Когда использовать инструмент текстового редактора
  • Использование инструмента текстового редактора
  • Команды инструмента текстового редактора
  • Пример: исправление синтаксической ошибки с помощью инструмента текстового редактора
  • Реализация инструмента текстового редактора
  • Обработка ошибок
  • Следуйте лучшим практикам реализации
  • Цены и использование токенов
  • Интеграция инструмента текстового редактора с другими инструментами
  • Журнал изменений
  • Дальнейшие шаги