Сегодня Anthropic заблокировала использование своих подписок в сторонних инструментах, таких как OpenClaw. Теперь такие запросы не покрываются подпиской, а идут в Extra Usage — платно, по тарифам API. Это в разы дороже. Я разобрался в проблеме и успешно обошёл блокировку. Всё снова работает как раньше.
Рассказываю, как это удалось. Сам я не пишу код, а помогал мне в этом Opus 4.6. Процесс оказался интереснее результата.
Суть блокировки
Anthropic на уровне сервера определяет источник запроса. Если он приходит из официальных приложений — Claude Code, Cowork или веб-чата — используется подписка. Если из сторонних инструментов вроде OpenClaw — запрос попадает в Extra Usage, и вы платите за каждый токен.
Я проверил: мой OpenClaw с моделью Opus за один вечер мог «сжечь» десятки долларов. Хотя по сути я не делал ничего сложного.
API-запрос — это обычный HTTP-запрос с телом, заголовками и токеном. Я предположил: если сделать запрос так, будто он идёт из Claude Code, Anthropic не сможет отличить его.
CLIProxyAPI
Нашёл проект CLIProxyAPI — Go-прокси с 23 тысячами звёзд на GitHub. Он берёт OAuth-токен от Claude Code и пересылает запросы в Anthropic API, подставляя настоящие заголовки: user-agent, billing header, client_id. Для сервера Anthropic такой запрос выглядит идентично тому, что идёт из официального клиента.
Установил, авторизовался (прокси даёт ссылку, логинишься в браузере, токен сохраняется), запустил на localhost, перенаправил OpenClaw на него. Extra Usage отключил. Но не сработало: ошибка «You're out of extra usage» осталась.
Поиск причины
Проверил: простой запрос через curl в прокси — работает. Значит, прокси жив, а проблема в содержимом запроса от OpenClaw.
Первая гипотеза: Anthropic ищет слово «OpenClaw» в теле запроса. В системном промпте оно встречается 110 раз, включая фразу «You are a personal assistant running inside OpenClaw». Логично.
Написал с помощью Opus промежуточный прокси, который заменяет «OpenClaw» на «Assistant» в теле запроса. Но ошибка осталась.
Сужение проблемы
Значит, детекция не по слову. Запрос от OpenClaw — это JSON с системным промптом, историей сообщений, метаданными и 17 инструментами (tools).
Попросил Opus помочь провести серию тестов. Убрал историю — работает. Добавил tools — не работает. Убрал tools, вернул историю — работает. Проблема точно в tools.
Разбил tools на группы и тестировал по одной:
- read, edit, write — работает
- exec, process — работает
- sessions_list, sessions_history, sessions_send — работает
- web_search, web_fetch — работает
- image, memory_search, memory_get — работает
- subagents — блокирует
- session_status — блокирует
Каждая группа в отдельности проходит. Но стоит добавить subagents или session_status — запрос уходит в Extra Usage.
Вывод: Anthropic ищет имена инструментов, которых нет в Claude Code. Даже два таких tool-а — и система понимает, что запрос не из официального клиента.
Решение
Создал дополнительный прокси поверх CLIProxyAPI. Он делает замену имён инструментов в обе стороны:
- В запросе: subagents → sub_dispatch, session_status → check_status (и «OpenClaw» → «Assistant» на всякий случай)
- В ответе: обратная замена, чтобы OpenClaw корректно обработал вызов
Для streaming-ответов прокси буферизует каждое событие и заменяет нужные строки построчно.
Код — 133 строки на Node.js, без зависимостей. Запущен как systemd-сервис с автозапуском и перезапуском при падении.
Итоговая цепочка: OpenClaw → replace-proxy (8318) → CLIProxyAPI (8317) → api.anthropic.com
Что нужно для настройки
1. CLIProxyAPI
Прокси, имитирующий Claude Code. Требуется авторизация через браузер. После запуска слушает на указанном порту.
2. Replace-proxy
Минимальный HTTP-прокси на Node.js, который:
- Перехватывает тело запроса и заменяет имена инструментов и упоминания OpenClaw
- В ответах делает обратную замену, обрабатывает построчно
Код простой — Opus сгенерировал его за минуту.
3. Настройка OpenClaw
В файле openclaw.json добавьте кастомный провайдер, укажите ваш replace-proxy как endpoint. Сделайте его провайдером по умолчанию и перезапустите OpenClaw.
Переключение моделей работает как раньше — через чат. Главное: пропишите все нужные модели в конфиге провайдера.
Важно помнить
Это технический обход ограничений Anthropic. Есть риск блокировки аккаунта. Но многие готовы его принять — альтернатива ведь ещё дороже: платить за каждый токен сверх подписки, которая и так стоит $200 в месяц.
CLIProxyAPI хранит refresh_token и обновляет access_token автоматически. Если refresh_token протухнет — нужно будет заново пройти авторизацию через браузер.
Anthropic может усилить детекцию. Сегодня блокируют по двум tool-ам. Завтра могут начать по структуре промпта, паттернам запросов или другим признакам. Но сейчас схема работает.
Не рекомендую использовать это в коммерческих целях.
Выводы
Весь процесс занял один вечер. Самое интересное — не результат, а путь. Я не разработчик, не пишу код, но, формулируя гипотезы и проводя эксперименты с ИИ, сегодня можно решать задачи, которые раньше требовали серьёзных технических навыков.