Исправление расхода токенов Claude Code: отключение заголовка атрибуции для улучшения кэширования.

Claude Code тратит токены в каждой новой сессии начиная с версии 2.1.69 из-за заголовка атрибуции биллинга, который нарушает кэширование промптов. Проблема задокументирована в нескольких GitHub-ишью (#40652, #34629, #40524) без официального ответа от Anthropic на момент публикации источника.
Что происходит
Начиная с v2.1.69, Claude Code вставляет строку атрибуции биллинга в первый блок вашего системного промпта: x-anthropic-billing-header: cc_version=2.1.88.a3f; cc_entrypoint=cli; cch=00000;
Часть .a3f — это 3-символьный хэш, вычисляемый из вашего первого сообщения в каждом диалоге с помощью этой функции:
function computeHash(firstUserMessage, version) {
const chars = [4, 7, 20].map(i => firstUserMessage[i] || "0").join("");
return sha256("59cf53e54c78" + chars + version).slice(0, 3);
}Разные диалоги с разными первыми сообщениями генерируют разные хэши каждый раз.
Почему это нарушает кэширование
Кэширование Anthropic требует 100% идентичных сегментов промптов. Кэш общий для всей вашей Организации или Рабочего пространства, а не для каждой сессии. Заголовок биллинга находится в начале системного промпта размером ~23K токенов, и поскольку он меняется для каждого диалога, префикс никогда не совпадает, что приводит к промахам кэша в каждом новом чате.
Результаты тестирования
Контролируемый A/B-тест показал:
- Заголовок ВКЛ (по умолчанию): 48% попаданий в кэш, ~12K токенов перестраивается за сессию
- Заголовок ВЫКЛ: 99,98% попаданий в кэш, создание кэша в 3 из 4 сессий равно нулю
Результат — обработка системного промпта становится в 7 раз дешевле за сессию.
Решение
Добавьте это в конфигурацию вашей оболочки:
export CLAUDE_CODE_ATTRIBUTION_HEADER=falseДля пользователей zsh:
echo 'export CLAUDE_CODE_ATTRIBUTION_HEADER=false' >> ~/.zshrc
source ~/.zshrcНовые сессии подхватывают это автоматически. Существующие сессии не требуют перезапуска — хэш не меняется в середине диалога, и они не мешают новым сессиям.
Безопасность и предыстория
Это не взлом — переменная окружения существует в исходном коде как полноценный переключатель функции. claude-code-router и CLIProxyAPI уже поставляются с отключённым этим параметром в продакшене без сообщений о проблемах.
Anthropic, вероятно, реализовали это для отслеживания, какая версия и точка входа (CLI vs SDK vs GitHub Action) делала каждый API-вызов, помещая это в системный промпт, потому что Bedrock/Vertex не передают пользовательские заголовки.
📖 Read the full source: r/ClaudeAI
👀 Смотрите также

Маршрутизация снижает стоимость использования OpenClaw Max на 85%: с $200/мес до $30/мес с помощью API-маршрутизации
Пользователь отследил использование токенов и обнаружил, что только 15% задач требуют Opus. Маршрутизируя рутинную работу на Sonnet через API, ежемесячные расходы снизились с $200 до $30 при идентичном качестве вывода.

Потратили $850 на OpenClaw за месяц? Исправляйте архитектуру, а не модель
Разработчик сжег $850 за месяц на мультиагентной установке OpenClaw — причем $350 ушло за один день. Решением стала не более дешевая модель, а системный дизайн: строгое усечение контекста, сброс сессий, n8n для задач, не требующих рассуждений, и уровень маршрутизации для дешевых и мощных моделей.

«Режим отказа „Белая обезьяна“: как настойчивые агенты застревают на неверных фактах»
Межархитектурное исследование «загрязнения субстрата реконструкции» — когда ложные факты из файлов состояния бодрствования реплицируются между сессиями. Включает опрос из 6 вопросов для постоянных агентов.

ИИ написал 100 тысяч строк на Rust: контракты, спецификация и производительность
Чэн Хуан создал движок Multi-Paxos на Rust с помощью AI-агентов, достигнув производительности 300K операций в секунду. Ключевые техники: AI-написанные контракты кода, облегченная разработка на основе спецификаций и агрессивная оптимизация.