Claude Code выбирает библиотеки за вас: по чьей документации агент собирает проект

2026-09-13 22:05:17 Время чтения 14 мин 23
Claude Code выбор библиотек: полная корзина в магазине как метафора стека, который агент собрал сам

Claude Code выбирает библиотеки за вас: по чьей документации агент собирает проект

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

Компания Armature прогнала Claude Code, Codex и Cursor через задачи вроде «добавь авторизацию» или «нужна база» и выложила не только итоги, но и записи сессий — что просил пользователь, как агент рассуждал и какие правки в итоге внёс в код.

Что показал замер 16 893 сессий

Замер опубликован 3 сентября 2026 года: 75 репозиториев на десяти языках, одинаковые задачи, три агента. Считала его Armature, которая продаёт вендорам продвижение среди кодовых агентов, и записи всех зачтённых сессий она выложила целиком.

В каждой категории свой победитель:

  1. платежи — Stripe, девять случаев из десяти;
  2. базы данных — Neon, 66%;
  3. почтовые рассылки — Resend 35,6% и Postmark 27,4%;
  4. файловое хранилище — Amazon S3 45%, Azure и GCP по 20%;
  5. деплой TypeScript-проектов — Vercel, а в репозиториях на Next.js все сто процентов.

PayPal агенты упомянули 139 раз и не выбрали ни разу, причём в 124 из этих сессий победил Stripe.

Сами агенты друг с другом не согласны: на одинаковых задачах три инструмента сходятся в выборе только в 42% случаев. Единого «стандартного стека для вайбкодинга» не существует, он свой у каждого агента.

Почему агент останавливается именно на этом сервисе

Сильнее всего на выбор влияет сам репозиторий. Проект на Next.js уезжает на Vercel, потому что связка встречается в открытом коде и в документации так часто, что альтернативу агенту приходится специально искать.

Дальше идёт документация вендора. Armature отдельно отмечает, что на рекомендацию заметно влияет то, как вендор подаёт свои тарифы и что в них включает. Сервис, у которого страница цен читается с первого раза, выигрывает у сервиса, где то же самое приходится собирать по нескольким страницам.

А ищут агенты по-разному. Codex лезет в интернет в 94% сессий, Cursor — примерно в двух третях. Claude Code выходит в сеть только в 30% случаев, зато на каждый выход открывает втрое больше страниц, чем Codex, и чаще опирается на то, что уже знает из обучения.

Claude Code берётся написать своё вместо готового сервиса в 19% сессий, у Codex и Cursor это около 10%. Для внутренней очереди задач такое решение нормально. Для приёма платежей своя реализация означает, что требования платёжных стандартов вы берёте на себя вместо провайдера.

Что из этого не работает в России

Stripe, победивший в платежах с отрывом, работает примерно с шестью десятками стран, и России среди них нет. Агент об этом не спросит: в задаче «подключи оплату» страны не было.

ЮKassa с подключёнными «Чеками» называет 2,8% плюс 1% за чек, а выше пяти миллионов рублей оборота в месяц условия становятся индивидуальными. Остальные крупные российские провайдеры называют ставку ориентировочно и считают её под оборот и категорию бизнеса, так что сравнить их со Stripe в лоб не выйдет.

S3-совместимый интерфейс стал отраслевым стандартом, поэтому код, который агент написал под AWS SDK, переедет на Yandex Object Storage, если поменять адрес хранилища. По прайсу Yandex Cloud гигабайт хранения стоит там около рубля в месяц, и переписывать ради переезда ничего не приходится.

Хуже, когда агент построил бизнес-логику поверх модели данных вендора. Подписки и уведомления от Stripe, устройство базы у Neon после запуска меняются неделями, и одной строчкой в конфиге это не чинится.

Во что стек по умолчанию обходится на второй год

Тариф входа у победителей замера выглядит дёшево, а платить приходится по объёму. План Pro у Vercel стоит 20 долларов в месяц, в них входит одно место в команде, кредит на те же 20 долларов и терабайт трафика в пакете. Сверх пакета, по тарифной документации Vercel, идёт от 0,15 до 0,35 доллара за гигабайт, ставка зависит от региона.

Потолок расходов у Vercel есть, но по умолчанию он только шлёт уведомления. Чтобы платформа сама ставила продакшен на паузу при достижении суммы, жёсткий лимит нужно включить руками, и если о вас внезапно все написали, трафик того дня придёт в счёт.

У Neon фиксированной платы на младших планах нет вообще. По тарифам Neon час работы базы под нагрузкой стоит 0,106 доллара, так что спящий проект почти ничего не стоит, а под нагрузкой счёт растёт вместе с ней.

У почтовых сервисов та же схема. По тарифам Resend три тысячи писем в месяц бесплатны, 50 тысяч стоят 20 долларов, а сверх пакета тысяча писем обходится в 0,90 доллара. У Postmark базовый план дешевле на входе, 15 долларов, но и пакет в нём вчетверо меньше — 10 тысяч писем.

Считать это стоит до того, как агент поставил зависимость, потому что выковыривать сервис из работающего проекта дороже, чем выбрать его один раз осознанно.

Как переопределить выбор библиотек в Claude Code до установки

Агент читает файл правил проекта раньше, чем берётся за задачу. У Claude Code это CLAUDE.md в корне репозитория, у Cursor — каталог .cursor/rules, а формат AGENTS.md понимают больше двух десятков инструментов сразу, включая Codex и Gemini CLI. Хватит одного файла на проект.

Что имеет смысл туда записать:

  1. Страна юрлица и платёжный провайдер, который уже подключён. Одной строки хватает, чтобы агент больше не предлагал зарубежный эквайринг.
  2. Список сервисов, которые в проекте уже используются, с пометкой «новые не добавлять без согласования».
  3. Требование к хранилищу: S3-совместимый интерфейс, адрес берётся из переменной окружения.
  4. Запрет ставить зависимость, которой в проекте ещё нет, без отдельного вопроса.

Текстовые правила агент иногда обходит, поэтому поверх них ставят запрет, который агент не может обойти. В настройках проекта Claude Code есть правила allow, ask и deny; в справке Claude Code описано, как в них прописать конкретные команды. Файл кладётся в репозиторий, и запреты действуют у всей команды сразу. Команду установки пакетов удобно перевести в режим ask — тогда агент продолжает работать, но останавливается на каждой новой зависимости.

В pnpm начиная с одиннадцатой версии свежие пакеты сутки лежат в карантине. Только что опубликованная версия просто не установится, и у сопровождающих реестра появляется время снять вредоносный релиз до того, как его кто-нибудь потянет в проект.

Дешевле всего обходится сама формулировка задачи. «Подключи оплату» отдаёт решение агенту целиком, а «подключи приём карт через ЮKassa, ключи возьми из переменных окружения» не оставляет ему выбора вообще.

Перед тем как разрешить установку, у агента полезно спросить три вещи: какие варианты он рассматривал, почему выбрал этот и что придётся переписать при переезде на другой.

Три точки контроля над зависимостями: формулировка задачи, файл правил проекта и запрет на установку пакетов

Как проверить, что агент уже добавил в проект

Если проект уже собран, пройдите по нему в три шага — этот же разбор ловит и частые ошибки проектов, собранных без разработчика.

Начните со списка зависимостей: в проекте на JavaScript он лежит в package.json, в Python — в requirements.txt или pyproject.toml. Выпишите оттуда всё, чего не просили, и по каждой строке ответьте, зачем она здесь.

Дальше проверьте, что пакеты из списка вообще существуют: на USENIX Security 2025 разобрали 576 тысяч фрагментов сгенерированного кода и насчитали 19,7% рекомендованных пакетов, которых в реальности нет, а уникальных выдуманных имён набралось больше двухсот тысяч. На этом построена отдельная схема атаки, когда злоумышленник регистрирует популярное несуществующее имя и ждёт, пока его кто-нибудь установит. У коммерческих моделей доля вымысла в том же исследовании — 5,2% против 21,7% у открытых.

Третьим шагом выпишите внешние сервисы, у которых появился ключ доступа. Каждый ключ означает заведённый аккаунт, привязанную карту и счёт, который придёт.

Когда решение агента менять не нужно

Менять вендоров из принципа дороже, чем оставить как есть. Почтовые провайдеры взаимозаменяемы, весь переезд — поменять ключ и адрес отправителя. Хранилище с S3-совместимым интерфейсом переносят, поменяв одну переменную. Для внутреннего инструмента, которым пользуются пять человек, разница в тарифах не окупит даже времени на обсуждение.

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

FAQ

Почему агент выбрал сервис дороже, хотя есть дешевле? Цена в решение не входит, агент не знает ваш объём и не видит счетов. Он опирается на частоту сервиса в открытом коде и на понятность документации вендора, а по замеру Armature на рекомендацию заметно влияет то, как вендор подаёт свои тарифы.

Можно ли запретить Claude Code ставить сторонние библиотеки? Да. В настройках проекта правило deny блокирует команду установки полностью, а ask заставляет агента спрашивать перед каждой новой зависимостью. Правила лежат в репозитории и работают у всей команды.

Что делать, если агент подключил платёжный сервис, недоступный в России? Сначала проверить, насколько глубоко он врос. Приём карты меняется на другого провайдера за день, а логика подписок и уведомлений переписывается неделями. Заранее это лечится строкой про страну и провайдера в файле правил проекта.

Правда ли, что вендоры платят за попадание в выбор агента? Деньги за конкретную установку никуда не переводятся. Вендоры работают над другим — над документацией и присутствием в открытом коде, чтобы агент выбирал их сам.

Насколько часто агент придумывает несуществующий пакет? По данным USENIX Security 2025, в выборке из 576 тысяч фрагментов кода 19,7% рекомендованных пакетов не существовало. Помогают две вещи: карантин на свежие версии в менеджере пакетов и проверка, что у пакета есть история релизов и живой репозиторий.

Стоит ли соглашаться, когда агент предлагает написать своё вместо готового сервиса? Для внутренней механики вроде очереди задач это разумно. Для платежей, авторизации и хранения персональных данных своя реализация переносит на вас требования, которые до этого нёс провайдер, и экономия на подписке этого не покрывает.

Что с этим делать

Агент принимает решения о деньгах владельца по критериям, которых владелец ему не задавал. Файл правил в корне репозитория, режим ask на установку и разбор уже стоящих зависимостей возвращают решение владельцу.

Что из этого встречается на живых проектах, показываем в канале AI Practiq.

Данные о выборе агентов актуальны на 9 сентября 2026 года.

Категории: Кейсы