Claude Platform Docs
MessagesИнструменты

Инструмент выполнения кода

Запускайте код Python и bash в изолированном контейнере, чтобы анализировать данные, создавать файлы и итеративно дорабатывать решения.

Claude может анализировать данные, создавать визуализации, выполнять сложные вычисления, запускать системные команды, создавать и редактировать файлы, а также обрабатывать загруженные файлы непосредственно в рамках диалога через API. Инструмент выполнения кода позволяет Claude запускать команды Bash и работать с файлами, включая написание кода, в безопасной изолированной среде — «sandbox» (песочница).

Выполнение кода бесплатно при использовании вместе с веб-поиском или веб-загрузкой (web_search_20260209, web_fetch_20260209 или более поздними версиями). Если один из этих инструментов присутствует в вашем запросе, за выполнение кода в этом запросе не взимается никакой дополнительной платы сверх стандартной стоимости токенов. Это распространяется как на выполнение кода, лежащее в основе динамической фильтрации, так и на любой код, который Claude запускает напрямую. Если эти инструменты не включены, применяются стандартные цены на выполнение кода.

Выполнение кода также обеспечивает работу «dynamic filtering» (динамической фильтрации) в инструментах веб-поиска и веб-загрузки: Claude фильтрует результаты внутри среды выполнения кода до того, как они попадут в «context window» (контекстное окно). Когда выполняется динамическая фильтрация, API автоматически предоставляет необходимое для запроса выполнение кода, поэтому вам не нужно добавлять для этого инструмент выполнения кода в запрос.

Версии инструмента

У инструмента выполнения кода есть три актуальные версии, и каждая поддерживаемая модель принимает все три. Каждая версия основана на предыдущей:

  • code_execution_20250825 поддерживает команды Bash и операции с файлами.
  • code_execution_20260120 добавляет сохранение состояния REPL и «programmatic tool calling» (программный вызов инструментов) изнутри песочницы. Claude Haiku 4.5 принимает типы инструментов code_execution_20260120 и code_execution_20260521, но программный вызов инструментов и зависящее от него сохранение состояния REPL на этой модели недоступны, поэтому более новые версии ведут себя там как code_execution_20250825.
  • code_execution_20260521 использует ту же среду выполнения, что и code_execution_20260120. Разница в том, что описание инструмента сообщает Claude о 90-секундном ограничении по реальному времени («wall-clock limit») для каждой ячейки Python при программном вызове инструментов, чтобы Claude мог планировать длительно выполняющиеся ячейки. Ячейка, превысившая ограничение, возвращает обычный результат выполнения кода с ненулевым return_code и сообщением о статусе detection_timeout в выводе. Это отличается от кода ошибки execution_time_exceeded, который API возвращает, когда весь вызов инструмента превышает максимальное время выполнения.

Ни одна из трёх версий инструмента не требует заголовка anthropic-beta. Устаревшие бета-заголовки выполнения кода по-прежнему остаются допустимым способом подключения.

В примерах на этой странице используется code_execution_20250825, которая охватывает демонстрируемые в них операции Bash и операции с файлами и ведёт себя одинаково на всех поддерживаемых моделях; используйте code_execution_20260120 или более позднюю версию, когда вам нужен программный вызов инструментов или сохранение состояния REPL. Актуальные инструменты веб-поиска и веб-загрузки (web_search_20260209, web_fetch_20260209 и более поздние) требуют в качестве версии выполнения кода code_execution_20260120 или более позднюю.

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

Быстрый старт

Вот пример, в котором Claude просят выполнить вычисление:

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Use the code execution tool to calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

print(response.to_json())

В ответе блоки server_tool_use (команды, которые запустил Claude) чередуются с блоками результатов инструмента, за которыми следует текст Claude. На верхнем уровне также присутствует объект container, чей id можно повторно использовать в последующих запросах. Структура блоков описана в разделе Формат ответа.

Как работает выполнение кода

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

  1. Claude оценивает, поможет ли выполнение кода ответить на ваш вопрос
  2. Инструмент автоматически предоставляет Claude следующие возможности:
    • Команды Bash: запуск команд оболочки для системных операций
    • Операции с файлами: создание, просмотр и редактирование файлов напрямую, включая написание кода
  3. Claude может использовать любое сочетание этих возможностей в одном запросе
  4. Все операции выполняются в безопасном изолированном контейнере. У контейнера нет доступа к интернету, поэтому Claude не может загружать пакеты во время выполнения: доступны только предустановленные библиотеки
  5. API выполняет каждую команду на стороне сервера и возвращает результаты Claude в рамках того же запроса, поэтому вам никогда не нужно самостоятельно выполнять код или отправлять обратно блоки tool_result. Единственное исключение — когда Claude вызывает один из ваших клиентских инструментов вместе с выполнением кода: API возвращает вызов выполнения кода без его результата. Результат приходит в одном из последующих ответов, после того как вы отправите обратно блоки tool_result для своих клиентских инструментов
  6. Каждый запрос выполняется в новом контейнере, если только вы не передадите обратно ID контейнера из предыдущего ответа (см. Повторное использование контейнера)
  7. Claude предоставляет результаты вместе со всеми созданными диаграммами, вычислениями или анализом

В контейнере предустановлен Python. Claude пишет код на Python с помощью подынструмента операций с файлами и запускает его командой Bash. При использовании code_execution_20260120 или более поздней версии и программного вызова инструментов состояние интерпретатора Python (например, привязки переменных) также сохраняется между запросами, повторно использующими контейнер.

Когда Claude запускает код

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

  • Нетривиальная математика (большие числа, много шагов, результаты, чувствительные к точности)
  • Анализ данных, разбор файлов или визуализация
  • Выполнение алгоритмов или моделирование
  • Явные просьбы «запусти», «вычисли» или «выполни»

Claude отвечает напрямую, не запуская код, в следующих случаях:

  • Простая арифметика и общеизвестные математические факты
  • Фактологические, разговорные или творческие запросы
  • Простые преобразования единиц измерения или переводы

Если вы хотите, чтобы Claude запустил код для пограничного запроса, попросите об этом явно (например, «запусти код, чтобы проверить это»).

Работа с файлами

Загрузка и анализ собственных файлов

Чтобы проанализировать собственные файлы данных (например, CSV, Excel или изображения), загрузите их через Files API и укажите ссылку на них в запросе.

Среда Python может обрабатывать различные типы файлов, загруженных через Files API, включая:

  • CSV
  • Excel (.xlsx, .xls)
  • JSON
  • XML
  • Изображения (JPEG, PNG, GIF, WebP)
  • Текстовые файлы (.txt, .md, .py и другие)

Загрузка и анализ файлов

  1. Загрузите файл с помощью Files API
  2. Сошлитесь на файл в сообщении с помощью блока содержимого container_upload
  3. Включите инструмент выполнения кода в запрос к API
client = anthropic.Anthropic()

# Загрузите файл
file_object = client.files.upload(file=Path("data.csv"))

# Используйте file_id при выполнении кода
response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Analyze this CSV data"},
                {"type": "container_upload", "file_id": file_object.id},
            ],
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

print(response.to_json())

Получение созданных файлов

Когда Claude сохраняет файлы в свой выходной каталог во время выполнения кода (см. Как захватываются созданные файлы), ID каждого файла появляется в результате инструмента выполнения кода, и вы можете скачать файл с помощью Files API:

client = Anthropic()

# Запрос на выполнение кода, создающего файлы
response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Create a matplotlib visualization and save it as output.png",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)


# Извлечение идентификаторов файлов из ответа
def extract_file_ids(response: Message) -> list[str]:
    file_ids: list[str] = []
    for item in response.content:
        if item.type == "bash_code_execution_tool_result":
            content_item = item.content
            if content_item.type == "bash_code_execution_result":
                for output_block in content_item.content:
                    file_ids.append(output_block.file_id)
    return file_ids


# Скачивание созданных файлов
for file_id in extract_file_ids(response):
    file_metadata = client.files.retrieve_metadata(file_id)
    file_content = client.files.download(file_id)
    file_content.write_to_file(file_metadata.filename)
    print(f"Downloaded: {file_metadata.filename}")

Как захватываются созданные файлы

Каждый вызов bash_code_execution получает новый пустой каталог, доступный команде как $OUTPUT_DIR. Когда команда завершается, файлы на верхнем уровне этого каталога захватываются и возвращаются в виде записей file_id в списке content результата. Файлы, записанные в любое другое место, остаются в контейнере и не возвращаются.

Описание инструмента указывает Claude делиться файлами, копируя их в $OUTPUT_DIR. Если ваше приложение зависит от получения файла, попросите Claude скопировать его в $OUTPUT_DIR и вывести содержимое каталога в той же команде, чтобы вывод ls подтвердил захват (Claude не видит список content):

python /tmp/make_report.py && cp /tmp/report.pdf "$OUTPUT_DIR/" && ls "$OUTPUT_DIR"

Файл, который Claude записал в другое место, по-прежнему находится в контейнере, поэтому вы можете повторно использовать контейнер и попросить Claude скопировать его в $OUTPUT_DIR.

Content Credentials в созданных файлах

В Claude API поддерживаемые файлы изображений, видео и аудио, которые Claude создаёт в песочнице выполнения кода, содержат Content Credentials C2PA, когда вы скачиваете их через Files API. Поддерживаемые форматы включают PNG, JPEG, GIF, WebP, TIFF, HEIC, AVIF, SVG, MP4, MOV, MP3, WAV, FLAC и M4A. Учётные данные представляют собой криптографически подписанный манифест, встроенный в метаданные файла. Он указывает Anthropic в качестве издателя, содержит метку времени и фиксирует описание действия «Claude provided this file at the request of a user and may have created or modified the file contents.»

Подписание не требует никаких изменений в ваших запросах или обработке ответов, и манифест не содержит никаких сведений о вас, вашей организации или вашем запросе. Видимое содержимое файла не меняется. Манифест добавляет несколько килобайт, поэтому размер и контрольная сумма скачанного файла отличаются от файла в том виде, в каком он существует внутри контейнера. Текстовые файлы, PDF и офисные документы не подписываются, поскольку их форматы не поддерживаются для подписания. Загружаемые вами файлы хранятся как есть, включая любые Content Credentials, которые они уже содержат.

Чтобы проверить учётные данные, изучите файл с помощью любого C2PA-совместимого инструмента, например утилиты командной строки с открытым исходным кодом c2patool. Перекодирование, преобразование формата, снимки экрана и инструменты, удаляющие метаданные, удаляют учётные данные, поэтому их отсутствие не означает, что файл не был создан с помощью Claude. Подробнее о том, почему учётные данные могут отсутствовать, см. в статье How Claude marks AI-generated content.

Определение инструмента

Инструмент выполнения кода не требует дополнительных параметров:

JSON
{
  "type": "code_execution_20250825",
  "name": "code_execution"
}

Оба поля фиксированы: type выбирает версию инструмента, а name должно быть code_execution.

Когда вы предоставляете этот инструмент, Claude автоматически получает доступ к двум подынструментам:

  • bash_code_execution: запуск команд оболочки
  • text_editor_code_execution: просмотр, создание и редактирование файлов, включая написание кода

Когда Claude запускает код, ответ также содержит объект верхнего уровня container с id контейнера и меткой времени expires_at. Передайте этот ID обратно в параметре запроса верхнего уровня container, чтобы продолжить использовать тот же контейнер. См. Повторное использование контейнера.

Формат ответа

Инструмент выполнения кода может возвращать два типа результатов в зависимости от операции:

Ответ на команду Bash

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
  "name": "bash_code_execution",
  "input": {
    "command": "ls -la | head -5"
  }
},
{
  "type": "bash_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
  "content": {
    "type": "bash_code_execution_result",
    "stdout": "total 24\ndrwxr-xr-x 2 user user 4096 Jan 1 12:00 .\ndrwxr-xr-x 3 user user 4096 Jan 1 11:00 ..\n-rw-r--r-- 1 user user  220 Jan 1 12:00 data.csv\n-rw-r--r-- 1 user user  180 Jan 1 12:00 config.json",
    "stderr": "",
    "return_code": 0,
    "content": []
  }
}

Ответы на операции с файлами

Просмотр файла:

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "name": "text_editor_code_execution",
  "input": {
    "command": "view",
    "path": "config.json"
  }
},
{
  "type": "text_editor_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "content": {
    "type": "text_editor_code_execution_view_result",
    "file_type": "text",
    "content": "{\n  \"setting\": \"value\",\n  \"debug\": true\n}",
    "num_lines": 4,
    "start_line": 1,
    "total_lines": 4
  }
}

Создание файла:

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "name": "text_editor_code_execution",
  "input": {
    "command": "create",
    "path": "new_file.txt",
    "file_text": "Hello, World!"
  }
},
{
  "type": "text_editor_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "content": {
    "type": "text_editor_code_execution_create_result",
    "is_file_update": false
  }
}

Редактирование файла (str_replace):

Output
{
  "type": "server_tool_use",
  "id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
  "name": "text_editor_code_execution",
  "input": {
    "command": "str_replace",
    "path": "config.json",
    "old_str": "\"debug\": true",
    "new_str": "\"debug\": false"
  }
},
{
  "type": "text_editor_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
  "content": {
    "type": "text_editor_code_execution_str_replace_result",
    "old_start": 3,
    "old_lines": 1,
    "new_start": 3,
    "new_lines": 1,
    "lines": ["-  \"debug\": true", "+  \"debug\": false"]
  }
}

Результаты

Результаты команд Bash (bash_code_execution_result) включают:

  • stdout: вывод при успешном выполнении
  • stderr: сообщения об ошибках, если выполнение завершилось неудачей
  • return_code: 0 при успехе, ненулевое значение при неудаче
  • content: список с записью для каждого файла, который команда оставила в $OUTPUT_DIR (см. Как захватываются созданные файлы). Каждая запись содержит file_id, чтобы получить файл с помощью Files API

Результаты операций с файлами имеют собственные поля:

  • Просмотр (text_editor_code_execution_view_result): file_type, content, num_lines, start_line, total_lines
  • Создание (text_editor_code_execution_create_result): is_file_update (существовал ли файл ранее)
  • Редактирование (text_editor_code_execution_str_replace_result): old_start, old_lines, new_start, new_lines, lines (формат diff)

Ошибки

Каждый тип инструмента может возвращать определённые ошибки:

Общие ошибки (все инструменты):

Output
{
  "type": "bash_code_execution_tool_result",
  "tool_use_id": "srvtoolu_01VfmxgZ46TiHbmXgy928hQR",
  "content": {
    "type": "bash_code_execution_tool_result_error",
    "error_code": "unavailable"
  }
}

Коды ошибок по типу инструмента:

ИнструментКод ошибкиОписание
Все инструментыunavailableИнструмент временно недоступен
Все инструментыexecution_time_exceededВызов инструмента превысил максимальное время выполнения
Все инструментыinvalid_tool_inputИнструменту переданы недопустимые параметры
Все инструментыtoo_many_requestsПревышено «rate limit» (ограничение скорости) использования инструментов
bashoutput_file_too_largeВывод команды превысил максимальный размер
text_editorfile_not_foundФайл не существует (для операций просмотра/редактирования)

Контейнер с истёкшим сроком действия нельзя использовать повторно: запросы, ссылающиеся на него, возвращают ошибку вместо его восстановления. Отправьте запрос повторно без параметра container, чтобы получить новый контейнер.

Причина остановки pause_turn

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

Контейнеры

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

Среда выполнения

  • Версия Python: 3.11
  • Операционная система: контейнер на базе Linux
  • Архитектура: x86_64 (AMD64)

Ограничения ресурсов

  • Память: 5 GiB RAM
  • Дисковое пространство: 5 GiB хранилища рабочей области
  • ЦП: 1 CPU
  • Время выполнения: вызов инструмента, выполняющийся дольше максимального времени выполнения, возвращает ошибку execution_time_exceeded. При программном вызове инструментов каждая ячейка REPL также имеет 90-секундное ограничение по реальному времени

Сеть и безопасность

  • Доступ к интернету: полностью отключён в целях безопасности
  • Внешние подключения: исходящие сетевые запросы не разрешены
  • Изоляция песочницы: полная изоляция от хост-системы и других контейнеров
  • Доступ к файлам: ограничен только каталогом рабочей области
  • Область действия рабочей области: как и Files API, контейнеры привязаны к рабочей области запроса
  • Срок действия: срок действия контейнеров истекает через 30 дней после создания

Предустановленные библиотеки

Изолированная среда Python включает следующие часто используемые библиотеки:

  • Наука о данных: pandas, numpy, scipy, scikit-learn, statsmodels
  • Визуализация: matplotlib, seaborn
  • Обработка файлов: pyarrow, openpyxl, xlsxwriter, xlrd, pillow, python-pptx, python-docx, pypdf, pdfplumber, pypdfium2, pdf2image, pdfkit, tabula-py, reportlab[pycairo], Img2pdf
  • Математика и вычисления: sympy, mpmath
  • Утилиты: tqdm, python-dateutil, pytz, joblib

Контейнер также включает инструменты командной строки, такие как unzip, unrar, 7zip, bc, rg (ripgrep), fd и sqlite.

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

Повторное использование контейнера

Вы можете повторно использовать существующий контейнер в нескольких запросах к API, указав ID контейнера из предыдущего ответа. Это позволяет сохранять созданные файлы между запросами. При использовании code_execution_20260120 или более поздней версии и программного вызова инструментов также сохраняется состояние интерпретатора Python.

Срок действия контейнеров истекает через 30 дней после создания. Примерно через 5 минут бездействия для контейнера создаётся контрольная точка, и отправка запроса с его ID в пределах 30-дневного окна восстанавливает его. Метка времени expires_at в объекте container ответа — это более короткое скользящее значение, и оно не отражает 30-дневный лимит. Контейнер с истёкшим сроком действия нельзя использовать повторно. Отправьте запрос повторно без параметра container, чтобы получить новый контейнер.

Пример

client = anthropic.Anthropic()

# Первый запрос: создать файл со случайным числом в новом контейнере
response1 = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Write a file with a random number and save it to '/tmp/number.txt'",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

# Второй запрос: передать ID контейнера обратно, чтобы Claude повторно использовал тот же контейнер
response2 = client.messages.create(
    container=response1.container.id,
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Read the number from '/tmp/number.txt' and calculate its square",
        }
    ],
    tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)

print(response2.to_json())

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

Когда вы предоставляете выполнение кода вместе с клиентскими инструментами, которые также запускают код (например, инструментом Bash или собственным REPL), Claude работает в многокомпьютерной среде. Инструмент выполнения кода работает в изолированном контейнере Anthropic, а ваши клиентские инструменты — в отдельной среде, которую контролируете вы. Claude иногда может путать эти среды, пытаясь использовать не тот инструмент или предполагая, что состояние между ними общее.

Чтобы избежать этого, добавьте в «system prompt» (системную подсказку) инструкции, поясняющие это различие:

When multiple code execution environments are available, be aware that:
- Variables, files, and state do NOT persist between different execution environments
- Use the code_execution tool for general-purpose computation in Anthropic's sandboxed environment
- Use client-provided execution tools (e.g., bash) when you need access to the user's local system, files, or data
- If you need to pass results between environments, explicitly include outputs in subsequent tool calls rather than assuming shared state

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

Когда Claude вызывает один из ваших клиентских инструментов вместе с выполнением кода, API возвращает вызов выполнения кода без его результата. Результат приходит в одном из последующих ответов, после того как вы отправите обратно блоки tool_result для своих клиентских инструментов.

Потоковая передача

При включённой «streaming» (потоковой передаче) ("stream": true) вы будете получать события выполнения кода по мере их возникновения. Входные данные подынструмента передаются потоком в виде событий input_json_delta, а каждый блок результата приходит целиком в одном событии content_block_start:

event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "bash_code_execution"}}

// Tool input streamed as partial JSON
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"command\": \"python analyze.py\"}"}}

// Pause while the command runs

// Execution result delivered as a complete block
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "bash_code_execution_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"type": "bash_code_execution_result", "stdout": "   A  B  C\n0  1  2  3\n1  4  5  6", "stderr": "", "return_code": 0, "content": []}}}

Пакетные запросы

Вы можете включить инструмент выполнения кода в Messages Batches API. Вызовы инструмента выполнения кода через Messages Batches API тарифицируются так же, как и в обычных запросах к Messages API.

Использование и цены

Выполнение кода бесплатно при использовании вместе с веб-поиском или веб-загрузкой. Когда web_search_20260209 (или более поздняя версия) или web_fetch_20260209 (или более поздняя версия) включены в ваш запрос к API, дополнительная плата за вызовы инструмента выполнения кода не взимается, помимо стандартной стоимости входных и выходных токенов.

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

  • Минимальное время выполнения составляет 5 минут
  • Каждая организация получает 1 550 бесплатных часов использования в месяц
  • Дополнительное использование сверх 1 550 часов оплачивается по тарифу $0,05 USD за час, за контейнер
  • Если в запрос включены файлы, время выполнения оплачивается, даже если инструмент не вызывается, поскольку файлы предварительно загружаются в контейнер

Использование выполнения кода отслеживается в ответе:

{
  "usage": {
    "input_tokens": 105,
    "output_tokens": 239,
    "server_tool_use": {
      "code_execution_requests": 1
    }
  }
}

Обновление до последней версии инструмента

Последняя версия инструмента — code_execution_20260521. Чтобы переключаться между тремя актуальными версиями, измените строку type в запросе: все три возвращают блоки ответа, описанные в разделе Формат ответа. О том, что добавляет каждая версия, см. в разделе Версии инструмента, а о поддерживающих их моделях — в разделе Совместимость.

Остальная часть этого раздела посвящена переходу с устаревшей версии code_execution_20250522, поддерживающей только Python, на актуальные версии инструмента.

Что изменилось

КомпонентУстаревшая версияАктуальная версия
Бета-заголовокcode-execution-2025-05-22Не требуется
Тип инструментаcode_execution_20250522code_execution_20250825 или более поздняя
ВозможностиТолько PythonКоманды Bash, операции с файлами
Типы ответовcode_execution_resultbash_code_execution_result, text_editor_code_execution_*_result

Обратная совместимость

  • Всё существующее выполнение кода Python продолжает работать точно так же, как раньше
  • Существующие рабочие процессы, использующие только Python, не требуют изменений

Шаги обновления

Чтобы выполнить обновление, измените тип инструмента в запросах к API:

- "type": "code_execution_20250522"
+ "type": "code_execution_20250825"

Проверьте обработку ответов (если вы разбираете ответы программно):

  • API больше не отправляет прежние блоки для ответов на выполнение Python
  • Вместо этого API отправляет новые типы ответов для операций Bash и операций с файлами (см. Формат ответа)

Хранение данных

Выполнение кода происходит в серверных изолированных контейнерах. Данные контейнера, включая артефакты выполнения, загруженные файлы и выходные данные, хранятся до 30 дней. Этот срок хранения распространяется на все данные, обрабатываемые в среде контейнера. Файлы, которые выполнение кода создаёт в Files API (их можно получить с помощью client.files.download()), сохраняются до явного удаления.

Сведения о соответствии требованиям ZDR для всех функций см. в разделе API и хранение данных.

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

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

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

Загружайте файлы для анализа и скачивайте файлы, созданные при выполнении кода.

Узнайте, как использовать Agent Skills для расширения возможностей Claude через API.

Compatibility

Supported models
  • Fable 5 and 5.1
  • Mythos 5 and 5.1
  • Opus 4.5, 4.6, 4.7, 4.8, 5, and 5.5
  • Sonnet 4.5, 4.6, 5, and 5.5
  • Haiku 4.5
Supported platforms
  • Claude API
  • Claude Platform on AWS
  • Microsoft Foundry1
  1. В Microsoft Foundry для выполнения кода требуется развёртывание Hosted on Anthropic. ↩
  • Каждая поддерживаемая модель принимает все три версии инструмента. На Claude Haiku 4.5 программный вызов инструментов и сохранение состояния REPL недоступны, поэтому более новые версии ведут себя там как code_execution_20250825.
  • Для Claude Mythos Preview выполнение кода поддерживается в Claude API и Microsoft Foundry.

Was this page helpful?