Перейти к содержанию

Claude Code

Claude Code 2.1.307 переводит код на API 2026-10-21

4 мин чтения

Наш ИИ-аналитик сам проверил эту историю: запускал, считал, сверял с оригиналами. Что мы проверили

Текст написан ИИ-моделью по источникам, на которые ведут ссылки, и сверен с ними второй моделью. Как мы работаем

Всё о теме: Claude Code: версии и изменения →

В Claude Code 2.1.307 от 21 октября у встроенного скилла /claude-api появился режим api-version. Он переводит ваш код под Claude API на версию 2026-10-21. Смена версии ломает совместимость: в 2026-10-21 запрос с temperature возвращает ошибку 400.

Кроме этого режима, в заметках к релизу на GitHub есть новое событие OpenTelemetry для заблокированных вызовов инструментов, исправление двойных HTTP-вызовов MCP и таймаут для хуков checkout на self-hosted runner. Мы разобрали сборку 2.1.307 и документацию, результаты в последнем разделе.

Что переписывает api-version

Номер 2026-10-21 - это значение заголовка anthropic-version, и в документации Anthropic к нему есть отдельное руководство по миграции. Запросы с temperature, top_p или top_k получают 400 даже со значением по умолчанию. Та же ошибка приходит на блок document прямо в реплике assistant и на блок text с непустым citations в реплике user. Подробно, чем заменить убранные параметры сэмплирования, мы разобрали отдельно.

Меняются и имена полей. В Admin API roles переименовали в role_ids, group_id в rbac_group_id, name в display_name, workspace_id в scope. В Enterprise Analytics API actor.email стал actor.email_address, а summaries стал data. Вместе с версией вышли новые мажорные версии SDK, которые по умолчанию шлют 2026-10-21: Python 2.0.0, TypeScript 1.0.0, C# 13.0.0, Go 2.0.0, Java 3.0.0, PHP 1.0.0, Ruby 2.0.0 и CLI ant 2.0.0. Лицензию у них сменили с MIT на Apache 2.0. На Amazon Bedrock новая версия работает только с Claude 4.7 и более новыми моделями.

Событие safety_event

claude_code.safety_event пишется на каждый вызов инструмента, который остановили, отправили на подтверждение или вернули модели. Повод может дать правило доступа, авто-режим, проверка безопасности, хук или песочница. Раньше в телеметрии был только tool_decision с полями classifier_verdict и permission_mode, и вмешательства песочницы или хука собирать приходилось по разным событиям.

Рядом в том же релизе починили /permissions → Recently denied. Там не показывалась сама отклонённая shell-команда, а локальный классификатор авто-режима игнорировал одобрение оттуда, когда проверял повторный вызов. Теперь одобренная строка называет команду, а не её описание.

MCP и остальное

Если соединение с HTTP-сервером MCP обрывалось посреди вызова, вызов уходил дважды. Теперь повторяются только инструменты на чтение и идемпотентные. Другие заметные пункты:

  • MCP-серверы больше не считаются упавшими по таймауту, если macOS или Linux уснули во время подключения. В headless-запусках они так и оставались в ошибке.
  • При заблокированной связке ключей macOS claude -p объясняет, почему сервер требует авторизации, а после разблокировки подключается без повторного входа.
  • Нераспознанный вызов инструмента Claude Code повторяет до двух раз, и только потом завершает ход с ошибкой.
  • setModel() в Agent SDK ждёт подтверждения модели до 15 секунд вместо 5.
  • Форки субагентов, запущенные вместе, знают, какой запуск их собственный, и реже берутся за чужую работу.
  • В Code Review команда @claude review stop (или off, pause) снимает подписку @claude review always с пул-реквеста.

На self-hosted runner хуки checkout по умолчанию останавливаются через 30 минут, а настройка сессии падает. Длинным хукам нужен больший --checkout-hook-timeout-min или значение 0.

Авторский разбор

Что мы проверили

22 октября мы открыли сборку 2.1.307 для linux-x64, страницу скилла Claude API в документации платформы и раздел о мониторинге в документации Claude Code.

Как мы проверяем истории

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

  • В списке режимов скилла есть api-version, а рядом в сборке лежит справочник shared/api-version-migration.md. На странице скилла в документации на 22 октября перечислены только preserved-thinking-migration, managed-agents-onboard и managed-agents-secure.
  • У safety_event есть атрибуты tool_class, tool_name, tool_use_id, sandbox_violation_count и sandbox_enabled, последние два строками. Имена инструментов из внутреннего списка заменяются на other_tool. classifier_category отдаётся только за флагом, каким именно, мы не отследили. Источник вмешательства принимает значения managed_policy, permission_rule, permission_mode, hook, auto_mode_block, auto_mode_no_verdict, дальше в коде идёт ветка проверки безопасности. Возврат от хука помечается post_tool_use или post_tool_use_failure.
  • В документации по мониторингу на 22 октября описан только tool_decision.
  • Рядом с функцией смены модели стоит константа 15000. Где она применяется, мы не проследили, поэтому 15 секунд подтверждены только её наличием.
  • Значение --checkout-hook-timeout-min проверяется как неотрицательное число минут с верхним пределом. Сам предел и умолчание в 30 минут наш поиск не нашёл.

Anthropicразбор

API Claude 2026-10-21 убирает temperature, top_p и top_k

«Даже при значении по умолчанию»: в версии Claude API 2026-10-21 запрос с temperature и двумя соседними параметрами возвращает ошибку 400. Кто снижал её на Sonnet 4.6 ради стабильных ответов, теряет этот эффект без замены. Вы когда-нибудь подкручивали temperature в запросах к Claude?

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите, чтобы оставить комментарий. Он появится после модерации.