|

Полное руководство по переменным окружения Claude Code: исправление ошибки совместимости AWS Bedrock всего одной настройкой

Примечание автора: Подробный разбор всех 60+ переменных окружения Claude Code, их ролей и способов настройки. Особое внимание уделено CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS для решения ошибки заголовка anthropic-beta на сторонних платформах.

При использовании Claude Code для подключения к AWS Bedrock, Google Vertex AI или другим сторонним шлюзам LLM вы, скорее всего, сталкивались с ошибкой: "Unexpected value(s) for the anthropic-beta header". Корень проблемы в том, что Claude Code по умолчанию отправляет специфические экспериментальные Beta-заголовки Anthropic API, которые сторонние платформы вроде AWS Bedrock просто не распознают.

Решение занимает всего одну строку: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.

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

Основная ценность: Прочитав эту статью, вы полностью разберетесь в системе переменных окружения Claude Code, сможете мгновенно решать проблемы совместимости с AWS Bedrock/Vertex AI и научитесь оптимизировать работу с Claude Code, экономя время и ресурсы.

claude-code-environment-variables-complete-guide-ru 图示


Ключевые переменные окружения Claude Code

Более 60 переменных окружения Claude Code можно разделить на 6 основных категорий. Вот те, на которые стоит обратить внимание в первую очередь:

Категория Ключевая переменная Роль Типичный сценарий использования
Совместимость CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS Отключает экспериментальные заголовки anthropic-beta Решение ошибок в AWS Bedrock/Vertex AI
Аутентификация ANTHROPIC_API_KEY Устанавливает API-ключ Вызов модели через сторонние API-платформы
Выбор модели ANTHROPIC_MODEL Указывает используемую модель Переключение на конкретную версию модели
Производительность CLAUDE_CODE_MAX_OUTPUT_TOKENS Ограничивает макс. кол-во токенов на выходе Экономия затрат за счет ограничения длинных ответов
Функции DISABLE_PROMPT_CACHING Отключает кэширование промптов Отладка или требования совместимости
Контекст CLAUDE_AUTOCOMPACT_PCT_OVERRIDE Порог автоматического сжатия контекста Оптимизация работы в длинных диалогах

Два способа настройки переменных окружения Claude Code

Способ 1: Переменные Shell (временный эффект)

Установите переменную в терминале перед запуском Claude Code. Действует только для текущей сессии:

export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export ANTHROPIC_API_KEY="ваш-api-ключ"
claude

Способ 2: Конфигурация settings.json (постоянный эффект)

Настройте поле env в файле ~/.claude/settings.json. Настройки будут загружаться автоматически при каждом запуске:

{
  "env": {
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "ANTHROPIC_API_KEY": "ваш-api-ключ"
  }
}

🎯 Рекомендация: Для настроек, которые должны действовать постоянно (например, API-ключ или исправление совместимости платформ), лучше использовать settings.json, чтобы не вводить export каждый раз. Если ваш API-ключ получен через стороннюю платформу, например APIYI apiyi.com, настраивайте его здесь же.

claude-code-environment-variables-complete-guide-ru 图示


Переменные окружения Claude Code: решение проблем совместимости с AWS Bedrock

Подробно о CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS

Это главный герой нашей статьи. Когда вы используете Claude Code через сторонние шлюзы, такие как AWS Bedrock, Google Vertex AI или LiteLLM, Claude Code автоматически добавляет в заголовки запроса метки экспериментальных функций (Beta) от Anthropic, например:

anthropic-beta: prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20

Эти Beta-метки — особенность прямого API от Anthropic. Сторонние платформы, такие как AWS Bedrock, не могут их распознать и возвращают ошибку:

Error: Unexpected value(s) for the anthropic-beta header

Решение:

# Способ 1: Через терминал (Shell)
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

# Способ 2: В файле settings.json
{
  "env": {
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

После установки значения 1 Claude Code перестанет отправлять эти экспериментальные заголовки, что обеспечит совместимость со всеми сторонними платформами.

Известные проблемы и временные решения

Согласно записям в GitHub Issues, в некоторых версиях Claude Code (после 2.1.18) эта переменная окружения работает не полностью — даже если установлено CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, некоторые новые Beta-заголовки (например, advanced-tool-use-2025-11-20) все равно отправляются.

Если вы по-прежнему сталкиваетесь с проблемами, попробуйте следующие дополнительные меры:

  • Откат версии Claude Code: вернитесь к заведомо стабильной версии, например 2.1.68.
  • Использование шлюза LiteLLM: LiteLLM предлагает конфигурационный файл anthropic_beta_headers_config.json, который позволяет точно контролировать, какие Beta-заголовки будут пересылаться.
  • Одновременная настройка DISABLE_PROMPT_CACHING: отключение кэширования промптов поможет избежать появления Beta-заголовков, связанных с prompt-caching-scope.
# Настройки для полной совместимости
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_PROMPT_CACHING=1

Полный справочник переменных окружения Claude Code

Категория 1: Аутентификация и конфигурация API

Это самые базовые и часто используемые переменные, которые управляют подключением Claude Code к API-сервисам:

Имя переменной Назначение Сценарий использования
ANTHROPIC_API_KEY API-ключ, отправляется в заголовке X-Api-Key Использование сторонних API-платформ (например, APIYI apiyi.com)
ANTHROPIC_AUTH_TOKEN Пользовательское значение заголовка Authorization (префикс Bearer добавляется автоматически) Кастомные схемы аутентификации
ANTHROPIC_CUSTOM_HEADERS Добавление пользовательских заголовков (в формате Name: Value) Шлюзы, требующие дополнительные заголовки
ANTHROPIC_BASE_URL Пользовательский адрес эндпоинта API Подключение к сторонним API-шлюзам
CLAUDE_CODE_CLIENT_CERT Путь к клиентскому сертификату mTLS Корпоративная аутентификация
CLAUDE_CODE_CLIENT_KEY Путь к закрытому ключу mTLS Корпоративная аутентификация

🎯 Внимание пользователям сторонних платформ: При использовании сторонних API-сервисов, таких как APIYI (apiyi.com), необходимо одновременно установить ANTHROPIC_API_KEY и ANTHROPIC_BASE_URL. Claude Code будет отдавать приоритет API-ключу из переменных окружения, даже если вы вошли в аккаунт с подпиской Anthropic.

Категория 2: Выбор и настройка модели

Управляют тем, какую модель использует Claude Code, и параметрами её поведения:

Имя переменной Назначение Значение по умолчанию
ANTHROPIC_MODEL Указывает имя основной модели Claude Sonnet 4.6
ANTHROPIC_DEFAULT_OPUS_MODEL Указывает модель уровня Opus Claude Opus 4.6
ANTHROPIC_DEFAULT_SONNET_MODEL Указывает модель уровня Sonnet Claude Sonnet 4.6
ANTHROPIC_DEFAULT_HAIKU_MODEL Указывает модель уровня Haiku (для фоновых задач) Claude Haiku 4.5
CLAUDE_CODE_SUBAGENT_MODEL Модель, используемая субагентами Наследуется от основной модели
CLAUDE_CODE_MAX_OUTPUT_TOKENS Максимальное количество токенов на выходе 32,000 (макс. 64,000)
CLAUDE_CODE_EFFORT_LEVEL Глубина рассуждений (low/medium/high/max/auto) auto

Категория 3: Совместимость с платформами и настройка шлюзов

Эти переменные специально предназначены для решения проблем совместимости Claude Code с различными облачными платформами и LLM-шлюзами:

Имя переменной Назначение Применимая платформа
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS Отключает экспериментальные Beta-заголовки AWS Bedrock / Vertex AI / Сторонние шлюзы
CLAUDE_CODE_USE_BEDROCK Включает режим AWS Bedrock AWS Bedrock
CLAUDE_CODE_SKIP_BEDROCK_AUTH Пропускает аутентификацию AWS (при использовании шлюза) LLM-шлюз + Bedrock
CLAUDE_CODE_USE_FOUNDRY Включает режим Microsoft Foundry Azure AI
CLAUDE_CODE_SKIP_FOUNDRY_AUTH Пропускает аутентификацию Azure LLM-шлюз + Azure
CLAUDE_CODE_SKIP_VERTEX_AUTH Пропускает аутентификацию Google Vertex LLM-шлюз + Vertex
ANTHROPIC_FOUNDRY_BASE_URL Базовый URL ресурсов Foundry Microsoft Foundry
ANTHROPIC_FOUNDRY_API_KEY API-ключ для Foundry Microsoft Foundry
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION Регион AWS для модели Haiku Bedrock (мультирегиональность)

Категория 4: Переключатели функций

Отключение определенных функций с помощью префиксов DISABLE_ или CLAUDE_CODE_DISABLE_:

Имя переменной Эффект при установке значения 1
DISABLE_PROMPT_CACHING Отключает кэширование промптов
DISABLE_AUTOUPDATER Отключает автоматическое обновление
DISABLE_TELEMETRY Отключает сбор телеметрии
DISABLE_ERROR_REPORTING Отключает отчеты об ошибках
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC Одним махом отключает весь вышеуказанный второстепенный трафик
CLAUDE_CODE_DISABLE_AUTO_MEMORY Отключает функцию автоматической памяти
CLAUDE_CODE_DISABLE_1M_CONTEXT Отключает контекстное окно в миллион токенов
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING Отключает адаптивное мышление
CLAUDE_CODE_DISABLE_FAST_MODE Отключает быстрый режим
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS Отключает фоновые задачи
CLAUDE_CODE_DISABLE_CRON Отключает запланированные задачи (cron)
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS Удаляет встроенные инструкции Git

Категория 5: Управление контекстом и производительностью

Контролируют, как Claude Code управляет контекстным окном и ресурсами:

Имя переменной Назначение Значение по умолчанию
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE Порог срабатывания автоматического сжатия (%) 95%
CLAUDE_CODE_AUTO_COMPACT_WINDOW Размер окна токенов для расчета сжатия Контекстное окно модели
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS Макс. токенов при чтении файла По умолчанию
CLAUDE_CODE_API_KEY_HELPER_TTL_MS Интервал обновления учетных данных (мс)
CLAUDE_CODE_TMPDIR Директория для временных файлов /tmp (Unix)
CLAUDE_CODE_SHELL Указывает используемую оболочку (Shell) Определяется автоматически

🎯 Совет по оптимизации производительности: Если вы заметили, что в длинных диалогах Claude Code слишком часто сжимает контекст, можно установить CLAUDE_AUTOCOMPACT_PCT_OVERRIDE на более низкое значение (например, 50). Это заставит сжатие срабатывать раньше, что может уменьшить потерю важной информации. Эти настройки также поддерживаются при вызовах через APIYI (apiyi.com).

claude-code-environment-variables-complete-guide-ru 图示


Быстрый старт: переменные окружения Claude Code

Минимальный пример: настройка Claude Code для работы со сторонними API-платформами

# Установите переменные окружения в терминале и запустите Claude Code
export ANTHROPIC_API_KEY="sk-your-api-key"
export ANTHROPIC_BASE_URL="https://vip.apiyi.com/v1"
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude

Посмотреть полный шаблон конфигурации settings.json (включая настройки совместимости с AWS Bedrock)
{
  "env": {
    "ANTHROPIC_API_KEY": "sk-your-api-key",
    "ANTHROPIC_BASE_URL": "https://vip.apiyi.com/v1",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
    "DISABLE_TELEMETRY": "1"
  },
  "permissions": {
    "allow": ["Read", "Glob", "Grep"],
    "deny": []
  }
}

Специальная конфигурация для AWS Bedrock:

{
  "env": {
    "CLAUDE_CODE_USE_BEDROCK": "1",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "DISABLE_PROMPT_CACHING": "1",
    "ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION": "us-east-1"
  }
}

Специальная конфигурация для Microsoft Foundry:

{
  "env": {
    "CLAUDE_CODE_USE_FOUNDRY": "1",
    "ANTHROPIC_FOUNDRY_BASE_URL": "https://my-resource.services.ai.azure.com/anthropic",
    "ANTHROPIC_FOUNDRY_API_KEY": "your-foundry-key",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

Совет: Если вы не хотите возиться со сложными настройками AWS Bedrock или Azure, можно использовать всю линейку моделей Claude напрямую через APIYI (apiyi.com). Достаточно установить всего две переменные — API-ключ и Base URL, и вам не придется разбираться с аутентификацией облачных платформ и вопросами совместимости.


Часто задаваемые вопросы

Q1: Что делать, если установлена переменная CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, но ошибка заголовка anthropic-beta все равно появляется?

Это известный баг Claude Code (GitHub Issue #22893, #20031). В некоторых новых версиях появляются новые Beta-заголовки, которые переменная окружения не успевает полностью заблокировать. Решение:

  1. Откатитесь до заведомо стабильной версии, например 2.1.68.
  2. Дополнительно установите DISABLE_PROMPT_CACHING=1, чтобы отключить заголовки, связанные с кэшированием.
  3. Если вы используете шлюз LiteLLM, настройте anthropic_beta_headers_config.json для точной фильтрации.
  4. Перейдите на стороннюю платформу с лучшей совместимостью, например APIYI (apiyi.com), чтобы избежать проблем с заголовками при прямом подключении к Bedrock.

Q2: Каков приоритет между переменной окружения ANTHROPIC_API_KEY и авторизацией через /login?

API-ключ из переменной окружения имеет более высокий приоритет, чем авторизация по подписке через /login. Если вы установили переменную ANTHROPIC_API_KEY, Claude Code будет использовать именно этот ключ с оплатой по факту использования (pay-as-you-go), даже если вы уже вошли в аккаунт Claude Pro/Team. Если вы используете ключ, полученный через APIYI (apiyi.com), расчеты будут производиться через эту платформу.

Q3: Как проверить текущие активные переменные окружения в Claude Code?

В интерактивном режиме Claude Code выполните команду /config, чтобы увидеть статус всех параметров конфигурации, включая переменные окружения, настройки из settings.json и значения по умолчанию. Также можно выполнить команду env | grep -E "CLAUDE|ANTHROPIC|DISABLE" в терминале, чтобы увидеть все установленные связанные переменные.


Итоги

Основные моменты по переменным окружения Claude Code:

  1. Решение ошибок AWS Bedrock: установите CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, чтобы отключить экспериментальные Beta-заголовки. Эта настройка в одну строку исправляет ошибку «Unexpected value(s) for the anthropic-beta header».
  2. 60+ переменных окружения в 6 категориях: аутентификация, выбор модели, совместимость с платформами, переключатели функций, управление контекстом и прочие настройки.
  3. Два способа настройки: через Shell export (временный вариант) и в файле settings.json (постоянный вариант). Для стабильной работы рекомендуем прописывать настройки в settings.json.
  4. Упрощенное решение через сторонние платформы: при использовании единых API-платформ, таких как APIYI (apiyi.com), достаточно настроить всего две переменные — ANTHROPIC_API_KEY и ANTHROPIC_BASE_URL. Это избавляет от необходимости возиться со сложной аутентификацией облачных гигантов и проблемами совместимости Beta-заголовков.

Рекомендуем попробовать подключить Claude Code через APIYI (apiyi.com). Платформа предоставляет бесплатные лимиты и единый интерфейс, что позволяет избежать множества «подводных камней» при настройке AWS Bedrock или Vertex AI.


📚 Справочные материалы

  1. Официальная документация Claude Code — Переменные окружения: полный список переменных и их описание.

    • Ссылка: code.claude.com/docs/en/env-vars
    • Описание: официальный справочник по всем 60+ переменным окружения.
  2. Официальная документация Claude Code — Настройки: области действия конфигурации и спецификация settings.json.

    • Ссылка: code.claude.com/docs/en/settings
    • Описание: понимание четыреххуровневой системы конфигурации (Managed/User/Project/Local).
  3. Официальная документация Claude Code — Amazon Bedrock: руководство по интеграции с AWS Bedrock.

    • Ссылка: code.claude.com/docs/en/amazon-bedrock
    • Описание: специфические настройки для Bedrock и решение типичных проблем.
  4. GitHub Issue #22893 — DISABLE_EXPERIMENTAL_BETAS работает не полностью: отчет об ошибке от сообщества.

    • Ссылка: github.com/anthropics/claude-code/issues/22893
    • Описание: информация об известных ограничениях этой переменной и временных решениях.
  5. LiteLLM — Управление Beta-заголовками Claude Code: фильтрация заголовков на уровне шлюза.

    • Ссылка: docs.litellm.ai/docs/tutorials/claude_code_beta_headers
    • Описание: тонкая настройка Beta-заголовков при использовании шлюза LiteLLM.

Автор: Техническая команда APIYI
Обсуждение: Делитесь своим опытом настройки Claude Code в комментариях. Больше обучающих материалов можно найти в центре документации APIYI на docs.apiyi.com.

Похожие записи