Anthropic обновил Python SDK до v1.0 и сломал совместимость — как обновиться за 10 минут через Claude Code
Anthropic выпустил Python SDK v1.0 с breaking change — httpx заменили на httpx2. Разбираем, как обновить llm-anthropic и провести миграцию через Claude Code.
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 как транзитивную зависимость.
Обновление ставится стандартно:
pip install --upgrade llm-anthropicЕсли вы держите версии зависимостей вручную, стоит явно закрепить минимальную версию anthropic:
pip install "anthropic>=1"Как прогнать миграцию через Claude Code
Самое практичное в этом релизе — не сам факт апдейта, а то, как его сделали. Вместо ручного разбора diff между версиями SDK, Уиллисон отдал задачу агенту Claude Code, указав модель Fable 5, с таким промптом:
Upgrade to anthropic>=1 - read https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/refs/heads/main/MIGRATION.md and get the tests passingСмысл промпта простой и воспроизводимый:
- Указать целевую версию зависимости (
anthropic>=1). - Дать агенту прямую ссылку на официальный migration guide в raw-формате — так модель читает документ как есть, без разметки GitHub-интерфейса.
- Поставить чёткий критерий успеха — тесты должны проходить.
Агент сам прочитал гайд, нашёл несовместимые места в коде плагина, переписал их и прогнал тестовый набор до зелёного статуса. Результат — готовый pull request, который можно смотреть и мёржить как обычный код-ревью.
Как повторить этот подход в своём проекте
Схема хорошо переносится на любую библиотеку с мажорным breaking change и официальным migration-гайдом. Пошагово это выглядит так.
Сначала найдите migration guide для новой версии зависимости — почти все крупные SDK (Anthropic, OpenAI, Stripe и другие) публикуют такие документы при мажорных релизах. Берите именно raw-ссылку на markdown-файл, а не страницу репозитория — так агент получает чистый текст без лишней разметки.
Затем сформулируйте промпт по той же структуре, что использовал Уиллисон: назвать целевую версию зависимости, дать ссылку на гайд, задать измеримый критерий готовности (тесты, линтер, сборка). Не полагайтесь на общее «обнови зависимость» — модель работает точнее, когда у неё есть документ-первоисточник и понятный финиш.
# пример общей структуры промпта для 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-ссылку на файл, а не страницу репозитория.
Источники
Читайте также
Комментарии
Пока никто не написал. Будьте первым.


