GigaChat и YandexGPT в Cline, Cursor и Claude Code
Коротко
GigaChat или ChatGPT — выбор не про то, какая модель умнее, а про то, куда уходит код. Российские модели берут ровно одну задачу: агент работает, а данные не покидают контур РФ. Технически это уже решаемо — у GigaChat есть OpenAI-совместимый эндпоинт https://api.giga.chat/v1 с моделью GigaChat, у Yandex AI Studio — https://llm.api.cloud.yandex.net/v1 с моделью, заданной полным URI gpt://<folder_id>/<модель>. Cline и Cursor подключаются напрямую через провайдер «OpenAI Compatible». Claude Code напрямую не подключается: он говорит на Anthropic Messages API, нужен прокси-переводчик — gpt2giga от команды GigaChat или LiteLLM с эндпоинтом /v1/messages. Главные грабли: токен GigaChat живёт 30 минут, а агентные клиенты хранят статический ключ и обновлять его не умеют; без корневого сертификата Минцифры соединение не устанавливается вообще — запрос падает на TLS-рукопожатии, до авторизации. У Cline вдобавок нет поля для произвольных заголовков, и folder ID приходится зашивать в идентификатор модели. По деньгам вход низкий: физлицу GigaChat при регистрации даёт 365 млн бесплатных токенов на 12 месяцев, чего с запасом хватает на пилот.
В чём задача
Ситуация типовая: в компании запрещено отправлять исходники за границу — политика безопасности, требования заказчика или прямой запрет на трансграничную передачу. При этом отказываться от агентного кодинга никто не хочет: Cline и Cursor уже в работе, откат к ручному написанию воспринимается как деградация.
Обзоров российских LLM много, но почти все они про чат-интерфейс: «зашли в веб, спросили, сравнили ответы». Про подключение к агентному клиенту, где модель должна вызывать инструменты, читать файлы и возвращать корректные диффы, там нет ничего. А это как раз то место, где всё ломается.
Что выбрать под задачу:
| Критерий | GigaChat | YandexGPT (AI Studio) | Зарубежная модель |
|---|---|---|---|
| Данные покидают РФ | нет | нет | да |
| OpenAI-совместимый эндпоинт | есть | есть | есть |
| Оплата в рублях по договору | да | да | нет |
| Нужен корневой сертификат Минцифры | да | нет | нет |
| Прямое подключение Cline | через прокси | да, с оговоркой | да |
| Прямое подключение Claude Code | через прокси | через прокси | да |
Если ограничения на вывоз данных нет — задача решается проще и качественнее через зарубежных провайдеров, разбор вариантов есть в материале про бесплатные LLM-провайдеры для Cline и Roo Code. Дальше — только для случая, когда данные вывозить нельзя.
Пошагово: GigaChat
1. Ставим корневой сертификат. Это первый шаг, а не пункт в разделе «если не работает». Без сертификата НУЦ Минцифры запрос падает ещё до авторизации. Проверено 28 июля 2026 на чистой Linux-машине:
$ curl https://gigachat.devices.sberbank.ru/api/v1/models
* SSL certificate problem: self-signed certificate in certificate chain
$ curl https://api.giga.chat/v1/models
* SSL certificate problem: unable to get local issuer certificate
Сертификаты берутся на Госуслугах, инструкции по ОС — в документации GigaChat. В Python-коде альтернатива — параметр ca_bundle_file при инициализации SDK, но для агентных клиентов это не поможет: они ходят системным HTTPS-стеком, значит сертификат нужен на уровне ОС.
2. Получаем ключ. В личном кабинете создаётся Authorization key — пара client id и secret в base64. Это не API-ключ: его меняют на access token запросом к /api/v2/oauth, и токен живёт 30 минут. Разница между «ключом» и «токеном» здесь принципиальна, к ней вернёмся в подводных камнях.
3. Проверяем совместимый эндпоинт. Базовый URL — https://api.giga.chat/v1, модель для чата называется GigaChat, для эмбеддингов — EmbeddingsGigaR. Официальная формулировка честная: в руководстве по совместимости с OpenAI прямо сказано, что формат сообщений GigaChat API совместим с OpenAI API частично.
4. Поднимаем прокси. Для агентных клиентов практичнее не биться с совместимостью вручную, а поставить gpt2giga — FastAPI-прокси от ai-forever, той же команды, что делает GigaChat. Он принимает запросы в форматах OpenAI, Anthropic и Gemini и переводит их в GigaChat:
uv tool install --prerelease allow gpt2giga
# .env: GPT2GIGA_API_KEY=<свой ключ для клиентов>
# GPT2GIGA_MODE=PROD
Прокси отдаёт POST /chat/completions и POST /embeddings для OpenAI-клиентов и POST /messages — для Anthropic-совместимых, список эндпоинтов есть в README. Второе и есть ключ к Claude Code.
5. Подключаем клиентов. В Cline выбираем провайдер OpenAI Compatible, Base URL — адрес прокси, Model ID — GigaChat. В Cursor то же самое пишется в Settings → Models → Override OpenAI Base URL. Для Claude Code переменные окружения кладутся в ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:8090",
"ANTHROPIC_AUTH_TOKEN": "ваш-ключ-прокси",
"ANTHROPIC_MODEL": "GigaChat"
}
}
Имена переменных взяты из официальной документации Claude Code, порт подставьте свой.
Пошагово: YandexGPT
Здесь проще: сертификат не нужен, эндпоинт публичный, авторизация — обычный API-ключ сервисного аккаунта.
- Создаём сервисный аккаунт в облаке, выдаём ему роль на использование моделей, генерируем API-ключ. Биллинг в консоли должен быть включён — без этого запросы отклоняются, даже если ключ валиден.
- Базовый URL —
https://llm.api.cloud.yandex.net/v1. Идентификатор модели задаётся полным URI:gpt://<folder_id>/yandexgpt/latest. Folder ID берётся из консоли. Часть руководств использует хостai.api.cloud.yandex.net— оба отвечают, актуальный смотрите в документации AI Studio. - В Cline: провайдер OpenAI Compatible, Base URL из пункта 2, Model ID — полный
gpt://…URI, ключ — как есть. - Для Claude Code — тот же трюк с переводчиком, только вместо
gpt2gigaберём LiteLLM: его прокси поднимает Anthropic-совместимый эндпоинт/v1/messagesповерх любого провайдера из своего списка (раздел документации Anthropic/v1/messages—docs.litellm.ai).
Проверка результата
Не верьте зелёной галочке в настройках клиента — она проверяет только доступность эндпоинта. Прогоните три сценария:
curl -X POST http://localhost:8090/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"model":"GigaChat","messages":[{"role":"user","content":"ping"}]}'
Дальше — в самом агенте. Первое: попросите прочитать файл и назвать номер строки с конкретной функцией. Проверяется, что вызовы инструментов доходят и парсятся. Второе: попросите внести правку в две строки существующего файла. Здесь ломается чаще всего — модель возвращает не тот формат диффа, и агент зацикливается на повторных попытках. Третье: задача на 5–6 шагов подряд. Смотрите, не теряется ли контекст к четвёртому шагу.
Если первый сценарий проходит, а второй нет — дело не в подключении, а в модели. Подключение вы сделали правильно.
Подводные камни
Токен на 30 минут против статического ключа. Cline, Cursor и Claude Code хранят ключ один раз и не умеют его обновлять. У GigaChat access token живёт полчаса. Поэтому «вставить ключ напрямую в клиент» — тупик: через 30 минут посыпятся 401. Прокси нужен именно за этим — он держит обновление токена у себя, а клиенту отдаёт постоянный ключ.
У Cline нет поля для произвольных заголовков. Провайдер OpenAI Compatible даёт Base URL, API Key, Model ID и настройки контекстного окна — и всё; поля для дополнительных HTTP-заголовков в его конфигурации нет. Если интеграция требует дополнительного заголовка (у Яндекса в части руководств фигурирует OpenAI-Project с folder ID), вариантов два: указывать folder прямо в URI модели или ставить прокси, который подмешает заголовок.
Claude Code не подключается без переводчика. Он общается по Anthropic Messages API, а российские облака отдают OpenAI-совместимый интерфейс. Никакая настройка ANTHROPIC_BASE_URL сама по себе это не починит — нужен слой, который переведёт /v1/messages в /chat/completions.
Агентное качество проверяйте на своей задаче. Публичных бенчмарков многошагового tool-use для российских моделей, которым можно доверять, нет. Синтетические сравнения из обзоров меряют качество ответа в чате, а не способность держать цикл «прочитал — изменил — проверил». Ставьте пилот на реальном репозитории, а не на тестовом «напиши функцию».
Контур не станет закрытым сам по себе. Российское облако снимает вопрос трансграничной передачи, но не отменяет остальных требований к обработке персданных — что именно остаётся, разобрано в материале про ИИ и 152-ФЗ. А если политика запрещает вообще любое облако, оба варианта отпадают: остаётся модель на собственном сервере.
Что это стоит
Цены с сайта GigaChat на 28 июля 2026, для физлиц, с НДС; пакеты действуют 12 месяцев.
| Что | Объём | Цена |
|---|---|---|
| Freemium при регистрации | 365 млн токенов на 12 мес. | 0 ₽ |
| GigaChat Lite | 20 млн токенов | 1 300 ₽ |
| GigaChat Pro | 3 млн токенов | 1 500 ₽ |
| GigaChat Max | 3 млн токенов | 1 950 ₽ |
| EmbeddingsGigaR | 50 млн токенов | 700 ₽ |
Бесплатный объём разложен по моделям: 250 млн на Lite, 40 млн на Pro, 25 млн на Max, 50 млн на Ultra — полная таблица в тарифах. Для пилота на одном репозитории этого хватает с запасом, для команды на потоке — нет. Тарифы Yandex AI Studio считаются иначе, по рублям за тысячу токенов, и сверяются в облачном калькуляторе.
Частые вопросы
GigaChat или ChatGPT — что лучше для кода?
Для чистого качества кода зарубежные модели пока сильнее, особенно в длинных агентных циклах с правкой файлов. Российские выигрывают там, где вопрос стоит иначе: «можно ли вообще отправить этот репозиторий наружу». Если нельзя — сравнение бессмысленно, ChatGPT не вариант ни на каких условиях. Если можно — берите зарубежную модель и не усложняйте.
Можно ли подключить GigaChat к Cursor?
Да, через провайдер OpenAI Compatible и поле Override OpenAI Base URL. Но вставлять туда адрес GigaChat напрямую не стоит: 30-минутный токен убьёт сессию. Ставьте прокси на localhost, а в Cursor указывайте его адрес. Сертификат Минцифры при этом всё равно нужен на машине, где крутится прокси.
Почему запрос падает с ошибкой сертификата?
Потому что цепочка GigaChat подписана корневым сертификатом НУЦ Минцифры, которого нет в системном хранилище по умолчанию. Симптом — SSL: CERTIFICATE_VERIFY_FAILED или unable to get local issuer certificate. Лечится установкой сертификата на уровне ОС. Отключать проверку TLS ради обхода не надо: вы теряете единственную защиту канала.
Нужен ли отдельный ключ для каждого клиента?
Если стоит прокси — нет: ему вы отдаёте настоящие учётные данные один раз, а клиентам раздаёте собственные ключи прокси, которые можно отзывать по отдельности. Это заодно решает вопрос с ротацией — базовые правила обращения с ключами есть в заметке про API-ключи и секреты.
Что делать, если агент зацикливается на правках файлов?
Почти всегда это модель не удерживает формат диффа. Сначала уменьшите шаг: просите менять один файл и одну функцию за раз. Затем проверьте, что в клиенте выставлен реальный размер контекстного окна — карточка Cline в арсенале описывает, где это настраивается. Если не помогает, задача упирается в возможности модели, а не в интеграцию.