Loading...
    • Разработка
    • Администрирование
    • Модели и цены
    • Client SDKs
    • API Reference
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Разработка с Claude
    Обзор функцийИспользование Messages APIClaude API skillОбработка причин остановки
    Возможности модели
    Extended thinkingAdaptive thinkingУсилиеБюджеты задач (бета)Быстрый режим (бета: исследовательский просмотр)Структурированные выходные данныеЦитированияПотоковая передача сообщенийПакетная обработкаРезультаты поискаПотоковая передача отказовПоддержка многоязычностиEmbeddings
    Инструменты
    ОбзорКак работает использование инструментовИнструмент веб-поискаИнструмент веб-выборкиИнструмент выполнения кодаИнструмент советникаИнструмент памятиИнструмент BashИнструмент управления компьютеромИнструмент текстового редактора
    Инфраструктура инструментов
    Справочник инструментовПоиск инструментовПрограммный вызов инструментовПотоковая передача инструментов с детализацией
    Управление контекстом
    Окна контекстаСжатиеРедактирование контекстаКэширование подсказокПодсчет токенов
    Работа с файлами
    Files APIПоддержка PDFИзображения и зрение
    Skills
    ОбзорБыстрый стартЛучшие практикиSkills для предприятияSkills в API
    MCP
    Удаленные MCP серверыMCP коннектор
    Инженерия подсказок
    ОбзорЛучшие практики подсказокИнструменты подсказок Console
    Тестирование и оценка
    Определение успеха и создание оценокИспользование инструмента оценки в ConsoleСнижение задержки
    Укрепление защиты
    Снижение галлюцинацийПовышение согласованности выходных данныхСмягчение взломовСнижение утечки подсказок
    Ресурсы
    Глоссарий
    Примечания к выпуску
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

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

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    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
    Инструменты

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

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

    Was this page helpful?

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

    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 может использовать инструмент текстового редактора на основе схемы Anthropic для просмотра и изменения текстовых файлов, помогая вам отлаживать, исправлять и улучшать ваш код или другие текстовые документы. Это позволяет Claude напрямую взаимодействовать с вашими файлами, обеспечивая практическую помощь вместо простых предложений по изменениям.

    Для поддержки моделей см. Справочник инструментов.

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

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

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

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

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

    Вы можете дополнительно указать параметр max_characters для управления усечением при просмотре больших файлов.

    max_characters совместим только с text_editor_20250728 и более поздними версиями инструмента текстового редактора.

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

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

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

    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 инструмент текстового редактора и запрос на исправление синтаксической ошибки:

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

    Output
    {
      "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"
          }
        }
      ]
    }

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

    Номера строк

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

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

    Output
    {
      "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):"
          }
        }
      ]
    }

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

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

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

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

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

    Тип инструмента — type: "text_editor_20250728" для моделей Claude 4.

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

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

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

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

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


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

    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:

    ToolAdditional input tokens
    text_editor_20250429 (Claude 4.x)700 tokens
    text_editor_20250124 (Claude Sonnet 3.7 (deprecated))700 tokens

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

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

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

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

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

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

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

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

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

    Инструмент Bash

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

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

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

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

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

      • После изучения и возможного редактирования файлов Claude предоставляет полное объяснение того, что он нашел и какие изменения он внес
    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)
    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)
    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)
    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":
              # 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
              pass
    3. 3

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

      Добавьте проверку и меры безопасности:

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

      Обработайте ответы Claude

      Извлеките и обработайте вызовы инструментов из ответов 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,
              }

    снято с производства
    view
    create
    str_replace
    insert
    undo_edit