Claude Code на Google Vertex AI
Узнайте о настройке Claude Code через Google Vertex AI, включая установку, конфигурацию IAM и устранение неполадок.
export const ContactSalesCard = ({surface}) => {
const utm = content => utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content};
const iconArrowRight = (size = 13) => ;
const STYLES = .cc-cs { --cs-slate: #141413; --cs-clay: #d97757; --cs-clay-deep: #c6613f; --cs-gray-000: #ffffff; --cs-gray-700: #3d3d3a; --cs-border-default: rgba(31, 30, 29, 0.15); font-family: inherit; } .dark .cc-cs { --cs-slate: #f0eee6; --cs-gray-000: #262624; --cs-gray-700: #bfbdb4; --cs-border-default: rgba(240, 238, 230, 0.14); } .cc-cs-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; margin: 0; background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default); border-radius: 8px; flex-wrap: wrap; } .cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; } .cc-cs-text strong { font-weight: 550; color: var(--cs-slate); } .cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .cc-cs-btn-clay { display: inline-flex; align-items: center; gap: 8px; background: var(--cs-clay-deep); color: #fff; border: none; border-radius: 8px; padding: 8px 14px; font-size: 13px; font-weight: 500; transition: background-color 0.15s; white-space: nowrap; } .cc-cs-btn-clay:hover { background: var(--cs-clay); } .cc-cs-btn-ghost { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--cs-gray-700); border: 0.5px solid var(--cs-border-default); border-radius: 8px; padding: 8px 14px; font-size: 13px; font-weight: 500; } .cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); } .dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); } @media (max-width: 720px) { .cc-cs-actions { width: 100%; } };
return
https://claude.com/pricing?${utm('view_plans')}#plans-business} className="cc-cs-btn-ghost">
View plans
<a href={https://claude.com/contact-sales?${utm('contact_sales')}} className="cc-cs-btn-clay">
Contact sales {iconArrowRight()}
export const Experiment = ({flag, treatment, children}) => {
const VID_KEY = 'exp_vid';
const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);
const fnv1a = s => {
let h = 0x811c9dc5;
for (let i = 0; i < s.length; i++) {
h ^= s.charCodeAt(i);
h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);
}
return h >>> 0;
};
const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';
const [decision] = useState(() => {
const params = new URLSearchParams(location.search);
const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];
const force = params.get('gb-force');
if (force) {
for (const p of force.split(',')) {
const [k, v] = p.split(':');
if (k === flag) return {
variant: v || 'treatment',
track: false
};
}
}
if (navigator.globalPrivacyControl) {
return {
variant: 'control',
track: false
};
}
const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);
if (prefsMatch) {
try {
if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {
return {
variant: 'control',
track: false
};
}
} catch {
return {
variant: 'control',
track: false
};
}
} else {
const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];
if (!country || CONSENT_COUNTRIES.has(country)) {
return {
variant: 'control',
track: false
};
}
}
let vid;
try {
const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);
if (ajsMatch) {
vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');
} else {
vid = localStorage.getItem(VID_KEY);
if (!vid) {
vid = crypto.randomUUID();
}
document.cookie = ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000;
}
try {
localStorage.setItem(VID_KEY, vid);
} catch {}
} catch {
return {
variant: 'control',
track: false
};
}
const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);
return {
variant,
track: true,
vid
};
});
useEffect(() => {
if (!decision.track) return;
fetch('https://api.anthropic.com/api/event_logging/v2/batch', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-service-name': 'claude_code_docs'
},
body: JSON.stringify({
events: [{
event_type: 'GrowthbookExperimentEvent',
event_data: {
device_id: decision.vid,
anonymous_id: decision.vid,
timestamp: new Date().toISOString(),
experiment_id: flag,
variation_id: decision.variant === 'treatment' ? 1 : 0,
environment: 'production'
}
}]
}),
keepalive: true
}).catch(() => {});
}, []);
return decision.variant === 'treatment' ? treatment : children;
};
<Experiment flag="docs-contact-sales-cta" treatment={
Предварительные требования
Перед настройкой Claude Code с Vertex AI убедитесь, что у вас есть:
- Учетная запись Google Cloud Platform (GCP) с включенной биллингом
- Проект GCP с включенным API Vertex AI
- Доступ к нужным моделям Claude (например, Claude Sonnet 4.6)
- Установленный и настроенный Google Cloud SDK (
gcloud) - Квота, выделенная в нужном регионе GCP
Чтобы войти со своими учетными данными Vertex AI, следуйте инструкциям Вход с Vertex AI ниже. Чтобы развернуть Claude Code для команды, используйте шаги ручной установки и закрепите версии ваших моделей перед развертыванием.
Вход с Vertex AI
Если у вас есть учетные данные Google Cloud и вы хотите начать использовать Claude Code через Vertex AI, мастер входа проведет вас через этот процесс. Вы выполняете предварительные требования на стороне GCP один раз для каждого проекта; мастер обрабатывает сторону Claude Code.
Мастер установки Vertex AI требует Claude Code v2.1.98 или более поздней версии. Запустите claude --version для проверки.
Включите модели Claude в вашем проекте GCP
Включите API Vertex AI для вашего проекта, затем запросите доступ к моделям Claude, которые вам нужны, в Vertex AI Model Garden. См. Конфигурация IAM для разрешений, которые требуются вашей учетной записи.
Запустите Claude Code и выберите Vertex AI
Запустите claude. В приглашении входа выберите 3rd-party platform, затем Google Vertex AI.
Следуйте подсказкам мастера
Выберите способ аутентификации в Google Cloud: Application Default Credentials из gcloud, файл ключа сервисного аккаунта или учетные данные, уже находящиеся в вашей среде. Мастер обнаруживает ваш проект и регион, проверяет, какие модели Claude может вызывать ваш проект, и позволяет вам их закрепить. Результат сохраняется в блок env вашего файла пользовательских настроек, поэтому вам не нужно самостоятельно экспортировать переменные окружения.
После входа запустите /setup-vertex в любое время, чтобы снова открыть мастер и изменить учетные данные, проект, регион или закрепления моделей.
Конфигурация региона
Claude Code поддерживает глобальные, многорегиональные и региональные конечные точки Vertex AI. Установите CLOUD_ML_REGION на global, многорегиональное местоположение, такое как eu или us, или конкретный регион, такой как us-east5. Claude Code выбирает правильное имя хоста Vertex AI для каждой формы, включая хосты aiplatform.eu.rep.googleapis.com и aiplatform.us.rep.googleapis.com для многорегиональных местоположений.
Vertex AI может не поддерживать модели Claude Code по умолчанию на каждом типе конечной точки. Доступность моделей варьируется в зависимости от конкретных регионов, многорегиональных местоположений и глобальных конечных точек. Вам может потребоваться переключиться на поддерживаемое местоположение или указать поддерживаемую модель.
Ручная установка
Чтобы настроить Vertex AI через переменные окружения вместо мастера, например в CI или при развертывании в масштабах предприятия, следуйте приведенным ниже шагам.
1. Включите API Vertex AI
Включите API Vertex AI в вашем проекте GCP:
# Установите ID вашего проекта
gcloud config set project YOUR-PROJECT-ID
# Включите API Vertex AI
gcloud services enable aiplatform.googleapis.com
2. Запросите доступ к модели
Запросите доступ к моделям Claude в Vertex AI:
- Перейдите в Vertex AI Model Garden
- Найдите модели "Claude"
- Запросите доступ к нужным моделям Claude (например, Claude Sonnet 4.6)
- Дождитесь одобрения (может занять 24-48 часов)
3. Настройте учетные данные GCP
Claude Code использует стандартную аутентификацию Google Cloud.
Для получения дополнительной информации см. документацию по аутентификации Google Cloud.
Claude Code версии 2.1.121 или позже поддерживает Федерацию рабочих нагрузок на основе сертификатов X.509 через ту же цепочку Application Default Credentials. Установите GOOGLE_APPLICATION_CREDENTIALS на путь к файлу конфигурации учетных данных.
При аутентификации Claude Code автоматически будет использовать ID проекта из переменной окружения ANTHROPIC_VERTEX_PROJECT_ID. Чтобы переопределить это, установите одну из этих переменных окружения: GCLOUD_PROJECT, GOOGLE_CLOUD_PROJECT или GOOGLE_APPLICATION_CREDENTIALS.
4. Настройте Claude Code
Установите следующие переменные окружения:
# Включите интеграцию Vertex AI
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=global
export ANTHROPIC_VERTEX_PROJECT_ID=YOUR-PROJECT-ID
# Опционально: переопределите URL конечной точки Vertex для пользовательских конечных точек или шлюзов
# export ANTHROPIC_VERTEX_BASE_URL=https://aiplatform.googleapis.com
# Опционально: отключите кэширование запросов, если необходимо
export DISABLE_PROMPT_CACHING=1
# Опционально: запросите TTL кэша запросов на 1 час вместо стандартного 5-минутного
export ENABLE_PROMPT_CACHING_1H=1
# Когда CLOUD_ML_REGION=global, переопределите регион для моделей, которые не поддерживают глобальные конечные точки
export VERTEX_REGION_CLAUDE_HAIKU_4_5=us-east5
export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1
Большинство версий моделей имеют соответствующую переменную VERTEX_REGION_CLAUDE_*. Полный список см. в справочнике переменных окружения. Проверьте Vertex Model Garden, чтобы определить, какие модели поддерживают глобальные конечные точки в сравнении с региональными только.
Кэширование запросов включается автоматически. Чтобы отключить его, установите DISABLE_PROMPT_CACHING=1. Чтобы запросить TTL кэша на 1 час вместо стандартного 5-минутного, установите ENABLE_PROMPT_CACHING_1H=1; записи кэша с TTL на 1 час тарифицируются по более высокому тарифу. Для повышенных лимитов скорости обратитесь в поддержку Google Cloud. При использовании Vertex AI команды /login и /logout отключены, так как аутентификация обрабатывается через учетные данные Google Cloud.
Поиск инструментов MCP отключен по умолчанию на Vertex AI, так как конечная точка не принимает требуемый бета-заголовок. Вместо этого все определения инструментов MCP загружаются заранее. Чтобы включить эту функцию, установите ENABLE_TOOL_SEARCH=true.
5. Закрепите версии моделей
Закрепите конкретные версии моделей при развертывании для нескольких пользователей. Без закрепления псевдонимы моделей, такие как sonnet и opus, разрешаются в последнюю версию, которая может быть еще не включена в вашем проекте Vertex AI при выпуске Anthropic обновления. Claude Code откатывается на предыдущую версию при запуске, когда последняя недоступна, но закрепление позволяет вам контролировать, когда ваши пользователи переходят на новую модель.
Установите эти переменные окружения на конкретные ID моделей Vertex AI.
Без ANTHROPIC_DEFAULT_OPUS_MODEL псевдоним opus на Vertex разрешается в Opus 4.6. Установите его на ID Opus 4.7, чтобы использовать последнюю модель:
export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-7'
export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'
Для текущих и устаревших ID моделей см. Обзор моделей. Полный список переменных окружения см. в разделе Конфигурация моделей.
Claude Code использует эти модели по умолчанию, когда переменные закрепления не установлены:
| Тип модели | Значение по умолчанию |
|---|---|
| Основная модель | claude-sonnet-4-5@20250929 |
| Малая/быстрая модель | claude-haiku-4-5@20251001 |
Для дальнейшей настройки моделей:
export ANTHROPIC_MODEL='claude-opus-4-7'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'
Проверки моделей при запуске
Когда Claude Code запускается с настроенным Vertex AI, он проверяет, что модели, которые он намеревается использовать, доступны в вашем проекте. Эта проверка требует Claude Code v2.1.98 или более поздней версии.
Если вы закрепили версию модели, которая старше текущего значения по умолчанию Claude Code, и ваш проект может вызывать более новую версию, Claude Code предлагает вам обновить закрепление. Принятие записывает новый ID модели в ваш файл пользовательских настроек и перезапускает Claude Code. Отклонение запоминается до следующего изменения версии по умолчанию.
Если вы не закрепили модель и текущее значение по умолчанию недоступно в вашем проекте, Claude Code откатывается на предыдущую версию для текущего сеанса и показывает уведомление. Откат не сохраняется. Включите более новую модель в Model Garden или закрепите версию, чтобы сделать выбор постоянным.
Конфигурация IAM
Назначьте требуемые разрешения IAM:
Роль roles/aiplatform.user включает требуемые разрешения:
aiplatform.endpoints.predict- требуется для вызова модели и подсчета токенов
Для более строгих разрешений создайте пользовательскую роль только с указанными выше разрешениями.
Для получения дополнительной информации см. документацию Vertex IAM.
Создайте выделенный проект GCP для Claude Code, чтобы упростить отслеживание затрат и контроль доступа.
Контекстное окно с 1M токенов
Claude Opus 4.7, Opus 4.6 и Sonnet 4.6 поддерживают контекстное окно с 1M токенов на Vertex AI. Claude Code автоматически включает расширенное контекстное окно при выборе варианта модели с 1M.
Мастер установки предлагает опцию контекстного окна с 1M при закреплении моделей. Чтобы включить его для вручную закрепленной модели, добавьте [1m] к ID модели. Подробности см. в разделе Закрепите модели для развертываний третьих сторон.
Устранение неполадок
Если вы столкнулись с проблемами квоты:
- Проверьте текущие квоты или запросите увеличение квоты через Cloud Console
Если вы столкнулись с ошибками "model not found" 404:
- Подтвердите, что модель включена в Model Garden
- Проверьте, что модель доступна в указанном вами местоположении. Некоторые модели предлагаются только на
globalили многорегиональных местоположениях, таких какeuиus, а не в конкретных регионах - Если вы используете
CLOUD_ML_REGION=global, проверьте, что ваши модели поддерживают глобальные конечные точки в Model Garden в разделе "Supported features". Для моделей, которые не поддерживают глобальные конечные точки, либо:- Укажите поддерживаемую модель через
ANTHROPIC_MODELилиANTHROPIC_DEFAULT_HAIKU_MODEL, либо - Установите регион или многорегиональное местоположение, используя переменные окружения
VERTEX_REGION_<MODEL_NAME>
- Укажите поддерживаемую модель через
Если вы столкнулись с ошибками 429:
- Для региональных конечных точек убедитесь, что основная модель и малая/быстрая модель поддерживаются в выбранном регионе
- Рассмотрите возможность переключения на
CLOUD_ML_REGION=globalдля лучшей доступности