Инструмент выполнения кода
Claude может анализировать данные, создавать визуализации, выполнять сложные вычисления, запускать системные команды, создавать и редактировать файлы, а также обрабатывать загруженные файлы непосредственно в рамках API-разговора. Инструмент выполнения кода позволяет Claude запускать команды Bash и манипулировать файлами, включая написание кода, в безопасной изолированной среде.
Инструмент выполнения кода в настоящее время находится в публичной бета-версии.
Чтобы использовать эту функцию, добавьте заголовок "code-execution-2025-08-25"
beta header к вашим API-запросам.
Мы недавно обновили инструмент выполнения кода для поддержки команд Bash и прямого манипулирования файлами. Инструкции по обновлению до последней версии инструмента см. в разделе Обновление до последней версии инструмента.
Поддерживаемые модели
Инструмент выполнения кода доступен для:
- Claude Opus 4.1 (
claude-opus-4-1-20250805
) - Claude Opus 4 (
claude-opus-4-20250514
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
) - Claude Sonnet 3.7 (
claude-3-7-sonnet-20250219
) - Claude Haiku 3.5 (
claude-3-5-haiku-latest
)
Быстрый старт
Вот простой пример, который просит Claude выполнить вычисление:
Как работает выполнение кода
Когда вы добавляете инструмент выполнения кода к вашему API-запросу:
- Claude оценивает, поможет ли выполнение кода ответить на ваш вопрос
- Инструмент автоматически предоставляет Claude следующие возможности:
- Команды Bash: Выполнение команд оболочки для системных операций и управления пакетами
- Операции с файлами: Создание, просмотр и редактирование файлов напрямую, включая написание кода
- Claude может использовать любую комбинацию этих возможностей в одном запросе
- Все операции выполняются в безопасной изолированной среде
- Claude предоставляет результаты с любыми созданными диаграммами, вычислениями или анализом
Как использовать инструмент
Выполнение команд Bash
Попросите Claude проверить системную информацию и установить пакеты:
Создание и редактирование файлов напрямую
Claude может создавать, просматривать и редактировать файлы напрямую в песочнице, используя возможности манипулирования файлами:
Загрузка и анализ ваших собственных файлов
Чтобы анализировать ваши собственные файлы данных (CSV, Excel, изображения и т.д.), загрузите их через Files API и ссылайтесь на них в вашем запросе:
Использование Files API с выполнением кода требует двух бета-заголовков: "anthropic-beta": "code-execution-2025-08-25,files-api-2025-04-14"
Среда Python может обрабатывать различные типы файлов, загруженные через Files API, включая:
- CSV
- Excel (.xlsx, .xls)
- JSON
- XML
- Изображения (JPEG, PNG, GIF, WebP)
- Текстовые файлы (.txt, .md, .py и т.д.)
Загрузка и анализ файлов
- Загрузите ваш файл используя Files API
- Ссылайтесь на файл в вашем сообщении, используя блок содержимого
container_upload
- Включите инструмент выполнения кода в ваш API-запрос
Получение созданных файлов
Когда Claude создает файлы во время выполнения кода, вы можете получить эти файлы, используя Files API:
Комбинирование операций
Сложный рабочий процесс, использующий все возможности:
Определение инструмента
Инструмент выполнения кода не требует дополнительных параметров:
Когда этот инструмент предоставлен, Claude автоматически получает доступ к двум под-инструментам:
bash_code_execution
: Запуск команд оболочкиtext_editor_code_execution
: Просмотр, создание и редактирование файлов, включая написание кода
Формат ответа
Инструмент выполнения кода может возвращать два типа результатов в зависимости от операции:
Ответ команды Bash
Ответы операций с файлами
Просмотр файла:
Создание файла:
Редактирование файла (str_replace):
Результаты
Все результаты выполнения включают:
stdout
: Вывод от успешного выполненияstderr
: Сообщения об ошибках, если выполнение не удалосьreturn_code
: 0 для успеха, не ноль для неудачи
Дополнительные поля для операций с файлами:
- Просмотр:
file_type
,content
,numLines
,startLine
,totalLines
- Создание:
is_file_update
(существовал ли файл уже) - Редактирование:
oldStart
,oldLines
,newStart
,newLines
,lines
(формат diff)
Ошибки
Каждый тип инструмента может возвращать специфические ошибки:
Общие ошибки (все инструменты):
Коды ошибок по типу инструмента:
Инструмент | Код ошибки | Описание |
---|---|---|
Все инструменты | unavailable | Инструмент временно недоступен |
Все инструменты | execution_time_exceeded | Выполнение превысило максимальный лимит времени |
Все инструменты | container_expired | Контейнер истек и больше недоступен |
Все инструменты | invalid_tool_input | Недопустимые параметры предоставлены инструменту |
Все инструменты | too_many_requests | Превышен лимит скорости для использования инструмента |
text_editor | file_not_found | Файл не существует (для операций просмотра/редактирования) |
text_editor | string_not_found | old_str не найден в файле (для str_replace) |
Причина остановки pause_turn
Ответ может включать причину остановки pause_turn
, которая указывает, что API приостановил долго выполняющийся ход. Вы можете
предоставить ответ как есть в последующем запросе, чтобы позволить Claude продолжить свой ход, или изменить содержимое, если вы
хотите прервать разговор.
Контейнеры
Инструмент выполнения кода работает в безопасной контейнеризованной среде, специально разработанной для выполнения кода, с повышенным фокусом на Python.
Среда выполнения
- Версия Python: 3.11.12
- Операционная система: Контейнер на базе Linux
- Архитектура: x86_64 (AMD64)
Ограничения ресурсов
- Память: 1ГиБ RAM
- Дисковое пространство: 5ГиБ хранилища рабочего пространства
- CPU: 1 CPU
Сеть и безопасность
- Доступ в интернет: Полностью отключен для безопасности
- Внешние соединения: Исходящие сетевые запросы не разрешены
- Изоляция песочницы: Полная изоляция от хост-системы и других контейнеров
- Доступ к файлам: Ограничен только директорией рабочего пространства
- Область рабочего пространства: Как и Files, контейнеры ограничены рабочим пространством API-ключа
- Истечение срока: Контейнеры истекают через 1 час после создания
Предустановленные библиотеки
Изолированная среда Python включает эти часто используемые библиотеки:
- Наука о данных: pandas, numpy, scipy, scikit-learn, statsmodels
- Визуализация: matplotlib, seaborn
- Обработка файлов: pyarrow, openpyxl, 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
Повторное использование контейнера
Вы можете повторно использовать существующий контейнер в нескольких API-запросах, предоставив ID контейнера из предыдущего ответа. Это позволяет сохранять созданные файлы между запросами.
Пример
Потоковая передача
С включенной потоковой передачей вы будете получать события выполнения кода по мере их возникновения:
Пакетные запросы
Вы можете включить инструмент выполнения кода в Messages Batches API. Вызовы инструмента выполнения кода через Messages Batches API оцениваются так же, как и в обычных запросах Messages API.
Использование и ценообразование
The code execution tool usage is tracked separately from token usage. Execution time is a minimum of 5 minutes. If files are included in the request, execution time is billed even if the tool is not used due to files being preloaded onto the container.
Pricing: $0.05 per session-hour.
Обновление до последней версии инструмента
Обновившись до code-execution-2025-08-25
, вы получите доступ к манипулированию файлами и возможностям Bash, включая код на нескольких языках. Разницы в цене нет.
Что изменилось
Компонент | Устаревший | Текущий |
---|---|---|
Бета-заголовок | code-execution-2025-05-22 | code-execution-2025-08-25 |
Тип инструмента | code_execution_20250522 | code_execution_20250825 |
Возможности | Только Python | Команды Bash, операции с файлами |
Типы ответов | code_execution_result | bash_code_execution_result , text_editor_code_execution_result |
Обратная совместимость
- Все существующее выполнение Python кода продолжает работать точно так же, как и раньше
- Никаких изменений не требуется для существующих рабочих процессов только с Python
Шаги обновления
Для обновления вам нужно внести следующие изменения в ваши API-запросы:
-
Обновите бета-заголовок:
-
Обновите тип инструмента:
-
Просмотрите обработку ответов (если программно парсите ответы):
- Предыдущие блоки для ответов выполнения Python больше не будут отправляться
- Вместо этого будут отправляться новые типы ответов для Bash и операций с файлами (см. раздел Формат ответа)