Гайды· 25.08.2026· 5 мин чтения

Anthropic обновил Python SDK до v1.0 и сломал совместимость — как обновиться за 10 минут через Claude Code

Anthropic выпустил Python SDK v1.0 с breaking change — httpx заменили на httpx2. Разбираем, как обновить llm-anthropic и провести миграцию через Claude Code.

📚
PL
Материал подготовлен с помощью ИИ и проверен редактором

Anthropic выпустил Python SDK версии 1.0.0 с breaking change: библиотека переходит с httpx на httpx2. Если вы используете anthropic-python напрямую или через плагины вроде llm-anthropic, старый код может перестать работать после апдейта. Автор инструмента llm Саймон Уиллисон уже прогнал миграцию — и сделал это не руками, а через AI-агента Claude Code. Разбираем, что изменилось и как обновиться с минимальными потерями.

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

Главное изменение в anthropic v1.0.0 — смена HTTP-клиента под капотом: библиотека переходит с httpx на httpx2. Это не косметическая правка версии, а breaking change, который может задеть код, завязанный на внутреннее поведение клиента (таймауты, стриминг, обработку ошибок сети).

Интересно, что это не единичный случай. Двумя неделями ранее точно такой же переход — с httpx на httpx2 — сделала команда OpenAI в релизе своего SDK v3.0.0. Похоже, обе компании синхронизированно обновляют транспортный слой своих клиентских библиотек, и если вы работаете с обоими API, готовьтесь разбираться с миграцией дважды.

Anthropic выпустили официальный гайд по обновлению — MIGRATION.md в репозитории anthropic-sdk-python на GitHub. Это первый документ, который стоит открыть перед апдейтом, вне зависимости от того, обновляете вы код руками или доверяете это агенту.

Зачем следить за llm-anthropic, если вы не пишете плагины

llm — это CLI-утилита и Python-библиотека Саймона Уиллисона для работы с большими языковыми моделями: OpenAI, Anthropic, Gemini, Qwen, Gemma, Kimi, DeepSeek, Mistral и десятками других — как через облачные API, так и с локальными моделями. llm-anthropic — официальный плагин, который подключает Claude к этой экосистеме.

Если вы пользуетесь llm с моделями Claude, релиз llm-anthropic 0.27 касается вас напрямую: это версия, которая приводит плагин в соответствие с anthropic v1.0.0. Без обновления плагина вызовы Claude через llm могут начать падать после того, как pip подтянет новую мажорную версию anthropic SDK как транзитивную зависимость.

Обновление ставится стандартно:

bash
pip install --upgrade llm-anthropic

Если вы держите версии зависимостей вручную, стоит явно закрепить минимальную версию anthropic:

bash
pip install "anthropic>=1"

Как прогнать миграцию через Claude Code

Самое практичное в этом релизе — не сам факт апдейта, а то, как его сделали. Вместо ручного разбора diff между версиями SDK, Уиллисон отдал задачу агенту Claude Code, указав модель Fable 5, с таким промптом:

plain
Upgrade to anthropic>=1 - read https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/refs/heads/main/MIGRATION.md and get the tests passing

Смысл промпта простой и воспроизводимый:

  1. Указать целевую версию зависимости (anthropic>=1).
  2. Дать агенту прямую ссылку на официальный migration guide в raw-формате — так модель читает документ как есть, без разметки GitHub-интерфейса.
  3. Поставить чёткий критерий успеха — тесты должны проходить.

Агент сам прочитал гайд, нашёл несовместимые места в коде плагина, переписал их и прогнал тестовый набор до зелёного статуса. Результат — готовый pull request, который можно смотреть и мёржить как обычный код-ревью.

Как повторить этот подход в своём проекте

Схема хорошо переносится на любую библиотеку с мажорным breaking change и официальным migration-гайдом. Пошагово это выглядит так.

Сначала найдите migration guide для новой версии зависимости — почти все крупные SDK (Anthropic, OpenAI, Stripe и другие) публикуют такие документы при мажорных релизах. Берите именно raw-ссылку на markdown-файл, а не страницу репозитория — так агент получает чистый текст без лишней разметки.

Затем сформулируйте промпт по той же структуре, что использовал Уиллисон: назвать целевую версию зависимости, дать ссылку на гайд, задать измеримый критерий готовности (тесты, линтер, сборка). Не полагайтесь на общее «обнови зависимость» — модель работает точнее, когда у неё есть документ-первоисточник и понятный финиш.

bash
# пример общей структуры промпта для Claude Code
Upgrade to <package>>=<version> - read <raw-url-to-migration-guide> \
and get the tests passing

После того как агент отработал, обязательно прогоните тесты локально и просмотрите diff вручную, даже если CI зелёный. Автоматическая миграция закрывает механическую часть работы — замену устаревших вызовов, обновление сигнатур — но не заменяет ревью логики, особенно в местах, завязанных на сетевое поведение библиотеки.

Где это может сломаться

Смена транспортного слоя (httpx на httpx2) — из тех изменений, которые редко ловятся юнит-тестами, если тесты не проверяют реальные сетевые сценарии: таймауты, ретраи, стриминг ответов по частям. Если ваш проект тестирует только моки API-ответов, стоит отдельно прогнать интеграционные тесты против реального Anthropic API после обновления.

Второй риск — транзитивные зависимости. Если в проекте несколько библиотек одновременно тянут anthropic или httpx разных версий, апгрейд одной может конфликтовать с закреплёнными версиями другой. Перед мёржем PR от агента полезно прогнать pip check или аналог в вашем менеджере пакетов, чтобы убедиться в отсутствии конфликтов версий.

Третье — если вы одновременно используете OpenAI и Anthropic SDK, помните, что оба перешли на httpx2 практически синхронно (OpenAI в v3.0.0, Anthropic в v1.0.0). Планируйте обновление обеих зависимостей в одном заходе, а не по очереди, чтобы не тестировать промежуточное состояние с несовместимыми транспортными слоями.

Что попробовать дальше

Если вы поддерживаете собственный плагин или обёртку над Anthropic или OpenAI API, возьмите на вооружение сам паттерн: ссылка на migration guide плюс чёткий критерий «тесты зелёные» превращают рутинную миграцию в задачу, которую агент решает за один проход. Начните с малого — прогоните такой промпт на менее критичном модуле, посмотрите на качество PR, и только потом доверяйте агенту миграции в продакшен-коде.

FAQ

Что изменилось в Anthropic Python SDK 1.0.0?

Главное изменение — переход с HTTP-клиента httpx на httpx2. Это breaking change, из-за которого код, завязанный на старое поведение клиента, может перестать работать после обновления.

Нужно ли обновлять llm-anthropic вручную?

Да, стандартным способом: pip install --upgrade llm-anthropic. Версия 0.27 совместима с anthropic v1.0.0, более старые версии плагина могут конфликтовать с новым SDK.

OpenAI делала что-то похожее?

Да, OpenAI выпустила похожий breaking change — переход с httpx на httpx2 — в релизе SDK v3.0.0 примерно за две недели до Anthropic v1.0.0.

Можно ли доверить миграцию AI-агенту полностью?

Агент вроде Claude Code хорошо справляется с механической частью миграции по официальному гайду, но результат всё равно стоит проверять руками: гонять тесты локально и смотреть diff, особенно в местах, связанных с сетевым поведением.

Где искать migration guide для Anthropic SDK?

Официальный документ — MIGRATION.md в репозитории anthropic-sdk-python на GitHub. Для работы с AI-агентами лучше использовать raw-ссылку на файл, а не страницу репозитория.

Источники

Материал подготовил PLai AI — редакционный ИИ PLai.

Он же отбирает источники, пишет тексты и модерирует комментарии. Работает на PLGames AI — собственном шлюзе к языковым моделям.

Читайте также

Комментарии

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

Комментарии проверяет AI-модератор PLai. По существу — публикуется сразу.