Инструмент выполнения кода Claude получает 90-секундный бюджет ячейки: что операторам нужно изменить в агентных конвейерах
code_execution_20260521 раскрывает 90-секундный лимит ячейки в описании инструмента: Claude планирует ячейки заранее, при превышении — detection_timeout. Операторам нужно обновить версию инструмента, логику повторов и стратегию разбивки ячеек.

11 июня 2026 года Anthropic выпустила code_execution_20260521 — третью версию инструмента выполнения кода. Изменение точечное: та же изолированная среда выполнения, что была в code_execution_20260120, дополнена одним элементом — 90-секундный лимит выполнения ячейки теперь указан в описании самого инструмента, которое видит модель. Это меняет то, как Claude рассуждает о структуре ячеек, и то, что операторам нужно учитывать в архитектуре конвейера.
Что изменилось
Все три версии используют одну и ту же среду — Python и Bash в изолированном контейнере, с сохранением состояния REPL и программным вызовом инструментов из песочницы (функции, добавленные в _20260120). code_execution_20260521 добавляет только одно: 90-секундный лимит теперь присутствует в определении инструмента, которое получает Claude.
Раньше этот лимит применялся инфраструктурным слоем незаметно. Claude писал ячейки, не зная об ограничении, и при превышении лимита получал ошибку detection_timeout, на которую был вынужден реагировать постфактум. Теперь модель знает об ограничении до написания первой строки кода.
{
"tools": [{
"type": "code_execution_20260521",
"name": "code_execution"
}]
}
Бета-заголовок не требуется.
Как выглядит detection_timeout
Когда ячейка превышает 90 секунд реального времени выполнения, API возвращает detection_timeout в блоке результатов инструмента вместо stdout/stderr. Формат ошибки не изменился — code_execution_20260521 не меняет его. Изменилось другое: модель теперь предвидит это ограничение и структурирует ячейки так, чтобы его не превысить.
{
"type": "tool_result",
"content": [{
"type": "text",
"text": "detection_timeout"
}]
}
Конвейер должен явно обрабатывать detection_timeout. Если ошибку игнорировать, Claude будет повторять тот же подход к ячейке или завершит ход без полезного результата.
Совместимость с моделями
code_execution_20260521 доступен для:
| Модель | Поддерживается |
|---|---|
Claude Fable 5 (claude-fable-5) | Да |
Claude Mythos 5 (claude-mythos-5) | Да |
Claude Opus 4.8 (claude-opus-4-8) | Да |
Claude Opus 4.7 (claude-opus-4-7) | Да |
Claude Opus 4.6 (claude-opus-4-6) | Да |
Claude Sonnet 4.6 (claude-sonnet-4-6) | Да |
Claude Opus 4.5 (claude-opus-4-5-20251101) | Да |
Claude Sonnet 4.5 (claude-sonnet-4-5-20250929) | Да |
| Claude Haiku 4.5 | Нет (остаётся на _20250825) |
| Claude Opus 4.1 (устаревший) | Нет (остаётся на _20250825) |
Haiku 4.5 и устаревший Opus 4.1 остаются на code_execution_20250825 — без сохранения REPL и без раскрытия бюджета ячеек. Если вы направляете более дешёвые задачи на Haiku 4.5, модель не видит 90-секундного ограничения и не планирует ячейки с его учётом.
Доступность на платформах
Выполнение кода доступно только на:
- Claude API (Anthropic напрямую)
- Claude Platform on AWS
- Microsoft Foundry
Amazon Bedrock и Vertex AI не поддерживают выполнение кода. Если ваш слой маршрутизации условно выбирает Bedrock или Vertex, вызовы выполнения кода будут завершаться ошибкой на этих конечных точках вне зависимости от версии инструмента.
Цены
Вызовы выполнения кода бесплатны, если в том же запросе присутствует web_search_20260209 или новее, либо web_fetch_20260209 или новее. Без веб-инструментов применяются стандартные тарифы.
Что нужно изменить операторам
1. Обновить строку версии инструмента
Замена code_execution_20260120 или code_execution_20250825 на code_execution_20260521 — минимальное изменение для включения планирования ячеек на стороне модели. Поведение среды выполнения при этом не меняется.
tools = [{"type": "code_execution_20260521", "name": "code_execution"}]
2. Добавить явную обработку detection_timeout в конвейер
При появлении detection_timeout в результатах инструмента конвейер должен:
- Записать ошибку вместе с содержимым ячейки и ID хода для последующего анализа
- Принять решение: повторить попытку с разбитой ячейкой или передать проблему пользователю
- Не игнорировать ошибку и не продолжать выполнение — Claude выдаст деградированный результат при необработанном тайм-ауте
Простой обработчик на Python:
def handle_tool_result(result):
content = result.get("content", [{}])
text = content[0].get("text", "") if content else ""
if text == "detection_timeout":
raise CellTimeoutError("Ячейка кода превысила 90-секундный лимит")
return text
3. Добавить в промпт инструкции по разбивке ячеек
Claude знает о 90-секундном лимите, но не всегда разбивает ячейки самостоятельно без явных указаний. Для известных длительных задач — обработка больших файлов, итерационные ML-циклы, многоэтапный ETL — добавьте явную инструкцию в системный промпт:
При обработке больших наборов данных или выполнении итерационных циклов
разбивай работу на ячейки, каждая из которых завершается менее чем за 60 секунд.
Не помещай в одну ячейку задачи, которые могут занять более минуты.
60-секундный ориентир оставляет 30-секундный запас до detection_timeout. Для задач с предсказуемым временем выполнения можно также инструктировать Claude добавлять внутри ячейки тайм-аут (например, signal.alarm в Python).
4. Проверить маршруты через Haiku 4.5
Если вы направляете менее приоритетные агентные задачи на Claude Haiku 4.5 ради экономии, эти вызовы остаются на code_execution_20250825 — модель не видит 90-секундного ограничения. Либо полностью обрабатывайте тайм-ауты на внешнем уровне для таких путей, либо явно укажите лимит в системном промпте — это даст приближённый эффект без якоря в описании инструмента.
5. Комбинировать с response_inclusion для снижения затрат
code_execution_20260521 хорошо сочетается с параметром response_inclusion в web_search_20260318 и web_fetch_20260318, выпущенных в тот же день. Когда Claude в одном ходу сначала собирает данные через веб-поиск, а затем обрабатывает их через выполнение кода, установка response_inclusion: "excluded" в веб-инструментах убирает потреблённые блоки результатов поиска из ответа API, снижая стоимость выходных токенов в многоэтапных ходах конвейера.
Значение для маршрутизации
Практический эффект code_execution_20260521 — сбои ячеек становятся более предсказуемыми и восстанавливаемыми. Модель, знающая о 90-секундном лимите, будет стремиться писать более короткие ячейки, явно обозначать задачи, требующие нескольких ячеек, и избегать неожиданных detection_timeout, которые раньше появлялись в производственных логах без ясного контекста.
Для операторов, запускающих блокнотоподобные агентные конвейеры — анализ данных, генерация отчётов, многошаговые вычисления — путь к миграции прост: одна строка изменения версии инструмента плюс явная обработка тайм-аута в слое конвейера. Оба изменения стоит сделать до следующего запуска на медленном наборе данных.
Похожие материалы
Новости AI-роутинга и провайдеров →
Claude API: компакция по требованию и режим `auto` для разрешений меняют архитектуру агентных циклов
Два новых бета-обновления Claude API: `compact-2026-09-04` выносит суммаризацию в фоновый вызов, а режим `auto` передаёт оценку доверия к инструментам на сторону сервера. Оба меняют проектирование агентных циклов.

Claude API снижает затраты на поиск в агентных пайплайнах: параметр response_inclusion, который должен знать каждый оператор
Обновление платформы Anthropic от 11 июня добавляет response_inclusion к web_search_20260318 и web_fetch_20260318, позволяя операторам исключать уже обработанные блоки результатов поиска из API-ответа и снижать расходы на output-токены в многошаговых агентных воркфлоу.

Claude Opus 5.5: четыре ломающих изменения API и их влияние на маршрутизацию
Claude Opus 5.5: четыре ломающих изменения — thinking нельзя отключить, tool_choice типы any/tool возвращают 400, thinking-блоки не читаются не-Fable/Mythos моделями, computer_20251124 удалён. Конкретные исправления и влияние на резервную маршрутизацию.