Вчера мне заблокировали аккаунт в Claude Code.

Это был не расходник и не тестовый акк, это был нормальный основной аккаунт с полуторагодовалой платной историей. Максимально платный аккаунт, который уже “начал меня хорошо понимать”, и вокруг которого уже была построена софтверная фабрика и фабрика экспериментов, был без предупреждения безвозвратно отключен.

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

Предыстория бана и фабрика slopware

Сначала я пытался понять за что же именно. Я не гоняю криминал, не занимаюсь взломами, не кручу openclaw или похожие сервисы, просто разработка на максималках лимитов. Конечно, там иногда попадался скрейпинг сайтов, какие-то обходы гардрейлов, но оно короткими эпизодами случалось эпизодически всю историю акка. За что же бан платного аккаунта без страйков одним днем?

Антропик позицинирует Claude Code как инструмент для написания кода. Собственно, по большей части я его и писал. Только писал автоматически и под потолок всех лимитов каждую неделю. Когда ты не пишешь код сам из консольки, а строишь фабрику софта с автономным циклом всего SDLC, то где-то здесь проходит опасная граница между “power user” и “misuse” в терминах Terms of Service.

Когда у тебя есть cli-штука, которая умеет через “-p” получить любую задачу (не важно на проверку diff мержа или новое написание кода), то соблазн строить автономные штуки слишком уж велик.

Консолька, кстати, супер крутая вещь, в которой можно делать прикольную анимацию
Консолька, кстати, супер крутая вещь, в которой можно делать прикольную анимацию

Очереди, спринты, ретраи, постхуки — вот это вот все вокруг самой мощной консольной утилиты за всю историю консольных утилит. Этакая фабрика slop software, которая создает много mvp разного софта в прозрачном для понимания энтерпрайз стиле, который затем я могу отмодерировать, и продолжать удачные из них.

А когда тебе обещают “20x” лимитов на написание кода, то не делать это через подписку — преступление. Потому что подписка сильно субсидируется и в ней лимитов сильно больше, чем в pay-per-use (где-то видел расчеты (сам не проверял), что в подписки зашито примерно токенов на несколько тысяч долларов в терминах api).

Не использовать подписку было преступлением, но, похоже, это то самое преступление, за которое тебе и втыкают бан. "claude -p" без явного человеческого участия — это красная дорожка в покупку их api и когда за этим придут к вам и придут ли — не знаю, но лучше быть внимательнее.

Ну бан и бан, но это заставило чуть остановиться и подумать о вечном.

Как дальше жить

Конечно, про массовые баны аккаунтов я слышал, но когда это касается именно твоего честного аккаунта, то начинаешь задумываться про все это целиком. И я надумал несколько неприятных моментов и несколько приятных. В моем пузыре доля использования Claude Code огромна, люди выжимают максимум из его внутренних фичей, строят что-то большое поверх и это выглядит очень круто.

И многие относятся к этому, будто это их и это навсегда.

Иллюзия контроля

В какой-то момент все построенное начинаешь ассоциировать с собой, что это твой инструмент. А он не твой. Не твоя модель, не твои правила и даже не твоя экономика всего, что делаешь. Потому что в какой-то момент могут измениться цены или срезаться лимиты (это уже происходит), что может целиком перевернуть работу инструмента.

Это чужая кнопка, которую нам разрешили нажимать на определенных условиях, и как показал мой опыт — доступ к этой кнопке могут просто отнять, что превращает весь построенный на ней флоу в тыкву. Или нет?

Конечно, бан аккаунта это всего лишь бан аккаунта, я просто заменю его на другой, а при острой необходимости всегда можно построить взаимозаменяемую фермочку таких акков. Но вся цепочка получения акка — это тоже интересный квест с иллюзией контроля. Европейская почта, виртуальный телефон какого-то британского захолустья, азиатский VPN, виртуальные карточки, верификации, да и в конце концов тот самый ToS, который написан так, что позволяет заблочить за минимальный шаг в сторону. Точек потеря контроля и выключения кнопка очень много.

Это была очень неприятная часть, но стакан скорее наполовину полон, нежели пуст.

Шарада-отношение к произошедшему в Anthropic-стиле
Шарада-отношение к произошедшему в Anthropic-стиле

Строить свой харнесс

Почему вообще Claude Code с той же самой моделью, что и в вебе, но помещенной в cli-формат и имеющий продуманный TUI (terminal UI) произвел такой фурор? Потому что для многих задач важно не умение решать моделью эту задачу разом сходу, а важен хороший план, своевременная подача правильных данных, их правильная агрегация и многие другие вещи вокруг модели. Вся эта штука получила название харнесс — от англицизма harness, который переводится, как некая упряжка и который ровно ей же и является.

И именно отличный уровень своего харнесса позволяет не очень сильно переживать за риски из предыдущего пункта. Конечно, если завязываться именно на внутренние фичи конкретного инструмента и на все, что находится вне нашего контроля, то отключение доступа к нему может ощущаться очень больно. Но если построить свой харнесс (а самый лучший в мире уже есть в опенсорсе!) на идее того, что модель лишь заменяемый отчуждаемый компонент, то критичность проблемы значительно снижается.

Это отличный инженерный подход — смена модели неизбежно изменит поведение системы, но это должна быть контролируемая косметика. Сегодня Claude Code, завтра модели OpenAI, послезавтра GLM, Qwen или любой другой опенсорс, развернутый локально.

Когда пересадка на другую китайскую модель выглядит не как “все встало”, а как “давайте посмотрим бенчи, подкрутим и подкалибруем ожидания”, с этим уже точно можно жить. Менее магично, ощутимо сложнее, чем хотелось бы, но точно можно.

Реальность смены моделей

Внезапно, но один из главных минусов ллмок здесь становится плюсом: LLM — это как гений с альцгеймером и полной потерей памяти — может сделать все, что угодно, но постоянно забывает, что мы здесь делаем, какой код хотим писать и о чем договаривались 15 минут назад. И без нашей помощи вспомнить не может. Если смотреть на LLM как на stateless-компонент, то каждый запуск требует заново собрать с нуля вообще все состояние: историю, спецификации, принятые решения, артефакты и выводы инструментов, то есть весь runtime-context.

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

Хороший harness делает модель заменяемым, но не целиком эквивалентным компонентом: при пересадке поведение меняется, однако все же не должно ломать весь процесс. Для этого нужны две вещи: достаточно сильная модель (у наших соседей отличный модели, в том числе в опенсурсе) и весь внешний слой памяти проекта — документация, стейт, архитектурные договоренности, контракты, тесты и многое другое.

Легко ли это? Ну не особо. Возможно? Да.

А еще мне пришла достаточно жесткая мысль, но если провести параллели с людьми, то это условно сравнимо с уходом с проекта всей команды. В реальной жизни это катастрофа и, скорее всего, закрытие проекта. В AI-coding мире это вопрос калибровки.

Харнесс форева.

Что теперь

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

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

Но, к слову, почти полный возврат средств за последний месяц сделали автоматически. Угадайте, куда я потрачу их снова.

А пока — делаем дела! (про свои дела я пишу тут)

Спасибо!