Интеграция GigaChat и YandexGPT в OpenClaw: мультиагентный ассистент | AiManual
AiManual Logo Ai / Manual.
16 Фев 2026 Гайд

OpenClaw на российских стероидах: подключаем GigaChat, YandexGPT и Yandex 360 за 30 минут

Пошаговый гайд по подключению GigaChat Pro, YandexGPT 3.0 и Yandex 360 к OpenClaw. Создаем мультиагентного ассистента с российскими AI-сервисами.

Зачем это вообще нужно?

OpenClaw - отличный фреймворк для создания AI-агентов, но его стандартная конфигурация заточена под западные API. GPT-4, Claude, Gemini - все это работает через облака, которые могут быть недоступны или дороги. А между тем, у нас есть свои, российские модели, которые в 2026 году уже догнали, а кое в чем и перегнали западные аналоги.

GigaChat Pro показывает результаты на уровне GPT-4 Turbo в русскоязычных задачах. YandexGPT 3.0 отлично справляется с кодом и логикой. Yandex 360 дает доступ к корпоративным данным. Соединив все это в OpenClaw, получаем мультиагентную систему, где каждый агент специализируется на своем, но работает как единый ассистент.

Важный момент: на 16.02.2026 GigaChat Pro доступен только для юридических лиц через официальный API. YandexGPT 3.0 требует регистрации в Yandex Cloud. Без этих условий работать не будет.

Что получаем на выходе

  • Telegram-бота с тремя "мозгами": GigaChat для общего диалога, YandexGPT для кода, Yandex 360 для работы с документами
  • Автоматическую маршрутизацию запросов к нужному агенту
  • Единую историю диалога между всеми агентами
  • Возможность расширения инструментами OpenClaw (поиск в интернете, работа с файлами и т.д.)

Подготовка: ключи, ключи и еще раз ключи

Первое, что бесит в работе с российскими сервисами - это бюрократия. Но без этого никуда.

1Получаем API-ключи

СервисГде взятьСтоимость (на 16.02.2026)
GigaChat ProОфициальный портал SberAI для бизнесаОт 5 руб/1K токенов
YandexGPT 3.0Yandex Cloud Console → AI APIОт 3 руб/1K токенов
Yandex 360Админ-панель Yandex 360 → OAuthБесплатно до 1000 запросов/день

Для GigaChat нужен не просто ключ, а сертификат. Да, именно так. Качаем его в личном кабинете SberAI в формате .pem. YandexGPT использует стандартные IAM-токены, которые живут всего несколько часов. Придется настроить автоматическое обновление.

💡
Если не хотите возиться с получением отдельных ключей, можно использовать единый API-шлюз вроде AITunnel. Он предоставляет легальный доступ к GigaChat и YandexGPT через один ключ, плюс стабильное соединение даже при проблемах с основными сервисами.

2Устанавливаем OpenClaw с нуля

Берем свежую версию - на 16.02.2026 это OpenClaw 2.3.1 с поддержкой мультиагентных архитектур. Если у вас уже стоит OpenClaw, обновитесь:

cd openclaw
git pull origin main
pip install -r requirements.txt --upgrade

Проверяем, что все зависимости на месте. Особое внимание - библиотеки для работы с SSL (нужны для GigaChat) и aiohttp для асинхронных запросов.

Интеграция: пишем кастомных провайдеров

Стандартный OpenClaw не знает про GigaChat и YandexGPT. Придется написать своих провайдеров. Не пугайтесь - это проще, чем кажется.

3Провайдер для GigaChat Pro

Создаем файл gigachat_provider.py в папке openclaw/providers/:

import ssl
import aiohttp
from typing import AsyncGenerator
from openclaw.providers.base import BaseProvider

class GigaChatProvider(BaseProvider):
    name = "gigachat_pro"
    model = "GigaChat-Pro"
    
    def __init__(self, api_key: str, cert_path: str):
        self.api_key = api_key
        self.cert_path = cert_path
        self.base_url = "https://gigachat.api.sberbank.ru/v1"
        
        # SSL контекст для сертификата
        self.ssl_context = ssl.create_default_context()
        self.ssl_context.load_cert_chain(cert_path)
    
    async def generate(self, prompt: str, **kwargs) -> AsyncGenerator[str, None]:
        headers = {
            "Authorization": f"Bearer {self.api_key}",
            "Content-Type": "application/json"
        }
        
        # GigaChat ожидает русский язык в system prompt
        messages = [
            {"role": "system", "content": "Ты - полезный ассистент. Отвечай на русском языке."},
            {"role": "user", "content": prompt}
        ]
        
        payload = {
            "model": self.model,
            "messages": messages,
            "temperature": kwargs.get("temperature", 0.7),
            "stream": True
        }
        
        connector = aiohttp.TCPConnector(ssl=self.ssl_context)
        async with aiohttp.ClientSession(connector=connector) as session:
            async with session.post(
                f"{self.base_url}/chat/completions",
                headers=headers,
                json=payload,
                timeout=aiohttp.ClientTimeout(total=300)
            ) as response:
                async for line in response.content:
                    if line:
                        chunk = line.decode("utf-8").strip()
                        if chunk.startswith("data: "):
                            data = chunk[6:]
                            if data != "[DONE]":
                                try:
                                    import json
                                    delta = json.loads(data)["choices"][0]["delta"]
                                    if "content" in delta:
                                        yield delta["content"]
                                except:
                                    pass

Самая неприятная часть - SSL-сертификат. Без него GigaChat просто откажется с вами разговаривать. Убедитесь, что путь к .pem файлу указан правильно и файл читается.

4Провайдер для YandexGPT 3.0

С YandexGPT проще - обычный REST API. Но есть нюанс с IAM-токенами:

import aiohttp
import asyncio
from datetime import datetime, timedelta
from openclaw.providers.base import BaseProvider

class YandexGPTProvider(BaseProvider):
    name = "yandexgpt"
    model = "yandexgpt-3.0"
    
    def __init__(self, folder_id: str, iam_token: str):
        self.folder_id = folder_id
        self.iam_token = iam_token
        self.token_expires = datetime.now() + timedelta(hours=11)  # Токены живут ~12 часов
        self.base_url = "https://llm.api.cloud.yandex.net/llm/v1alpha"
    
    async def _refresh_token_if_needed(self):
        """Автоматическое обновление IAM-токена"""
        if datetime.now() > self.token_expires:
            # Здесь должна быть логика обновления токена
            # Обычно через OAuth или сервисный аккаунт
            pass
    
    async def generate(self, prompt: str, **kwargs) -> AsyncGenerator[str, None]:
        await self._refresh_token_if_needed()
        
        headers = {
            "Authorization": f"Bearer {self.iam_token}",
            "Content-Type": "application/json"
        }
        
        # YandexGPT любит, когда явно указана инструкция для кода
        system_prompt = "Ты - эксперт по программированию. Отвечай на русском, код пиши на английском."
        if "code" in prompt.lower():
            system_prompt = "Ты - senior разработчик. Пиши чистый, эффективный код с комментариями."
        
        payload = {
            "model": self.model,
            "generationOptions": {
                "temperature": kwargs.get("temperature", 0.3),  # Для кода ниже температура
                "maxTokens": kwargs.get("max_tokens", 4000)
            },
            "messages": [
                {
                    "role": "system",
                    "text": system_prompt
                },
                {
                    "role": "user",
                    "text": prompt
                }
            ]
        }
        
        async with aiohttp.ClientSession() as session:
            async with session.post(
                f"{self.base_url}/completion",
                headers=headers,
                json=payload,
                params={"folderId": self.folder_id}
            ) as response:
                result = await response.json()
                if "result" in result and "alternatives" in result["result"]:
                    text = result["result"]["alternatives"][0]["message"]["text"]
                    # Эмулируем streaming для совместимости
                    for char in text:
                        yield char
                        await asyncio.sleep(0.01)

Внимание: YandexGPT 3.0 на 16.02.2026 не поддерживает настоящий streaming. Придется эмулировать, как в коде выше. Это костыль, но работает.

5Интеграция Yandex 360

Yandex 360 - это не модель, а источник данных. Подключаем его как инструмент (tool) в OpenClaw:

import yandex_360_rest
from openclaw.tools.base import BaseTool

class Yandex360Tool(BaseTool):
    name = "yandex_360_search"
    description = "Ищет информацию в корпоративных документах Yandex 360"
    
    def __init__(self, oauth_token: str, org_id: str):
        self.client = yandex_360_rest.Client(oauth_token=oauth_token)
        self.org_id = org_id
    
    async def run(self, query: str, **kwargs):
        """Ищет по документам, почте и календарю"""
        results = []
        
        # Поиск в документах
        docs = await self.client.documents.search(
            org_id=self.org_id,
            query=query,
            limit=5
        )
        
        # Поиск в почте (если есть доступ)
        try:
            emails = await self.client.mail.search(
                query=query,
                limit=3
            )
            results.append(f"Найдено писем: {len(emails)}")
        except:
            pass
        
        # Формируем ответ для LLM
        context = "Найдены документы:\n"
        for doc in docs:
            context += f"- {doc['title']}: {doc['snippet'][:200]}...\n"
        
        return {
            "context": context,
            "raw_results": docs,
            "source": "yandex_360"
        }

Собираем мультиагентную систему

Теперь самое интересное - заставляем трех агентов работать как один. В OpenClaw 2.3.1 для этого есть механизм Agent Orchestrator.

6Конфигурационный файл

Создаем config_ru_agents.yaml:

agents:
  main_assistant:
    provider: "gigachat_pro"
    provider_config:
      api_key: "${GIGACHAT_API_KEY}"
      cert_path: "./certs/gigachat.pem"
    description: "Основной ассистент для общего диалога"
    
  code_expert:
    provider: "yandexgpt"
    provider_config:
      folder_id: "${YANDEX_FOLDER_ID}"
      iam_token: "${YANDEX_IAM_TOKEN}"
    description: "Специалист по программированию и код-ревью"
    
  corporate_assistant:
    provider: "gigachat_pro"  # Можно использовать того же провайдера
    provider_config:
      api_key: "${GIGACHAT_API_KEY}"
      cert_path: "./certs/gigachat.pem"
    tools:
      - "yandex_360_search"
    description: "Работает с корпоративными данными из Yandex 360"

orchestrator:
  type: "router"
  routing_rules:
    - pattern: ".*(код|программ|алгоритм|функция|класс).*"
      target_agent: "code_expert"
      confidence: 0.8
    
    - pattern: ".*(документ|письмо|встреча|календарь|отчет).*"
      target_agent: "corporate_assistant"
      confidence: 0.7
    
    - pattern: ".*"  # Дефолтное правило
      target_agent: "main_assistant"
      confidence: 1.0

telegram:
  enabled: true
  token: "${TELEGRAM_BOT_TOKEN}"
  allowed_users:
    - 123456789  # Ваш ID в Telegram

logging:
  level: "INFO"
  file: "openclaw_ru.log"

7Запускаем и тестируем

Сначала экспортируем переменные окружения:

export GIGACHAT_API_KEY="ваш_ключ"
export YANDEX_FOLDER_ID="ваш_folder_id"
export YANDEX_IAM_TOKEN="ваш_iam_токен"
export TELEGRAM_BOT_TOKEN="токен_бота"

# Для Yandex 360
export YANDEX_360_OAUTH="oauth_токен"
export YANDEX_360_ORG_ID="id_организации"

Запускаем OpenClaw с нашей конфигурацией:

python -m openclaw.main --config config_ru_agents.yaml

Если все настроено правильно, в логах увидите:

INFO:openclaw:Загружен провайдер gigachat_pro
INFO:openclaw:Загружен провайдер yandexgpt
INFO:openclaw:Загружен инструмент yandex_360_search
INFO:openclaw:Telegram бот запущен
INFO:openclaw:Маршрутизатор настроен на 3 агента

Типичные ошибки и как их избежать

За 5 лет работы с российскими AI-сервисами набил шишек достаточно, чтобы составить топ-5 ошибок:

ОшибкаПричинаРешение
SSL ошибка при подключении к GigaChatСертификат не загружен или путь указан неверноПроверить права на файл .pem, использовать абсолютный путь
"IAM token expired" в YandexGPTТокен живет всего 12 часовНастроить автоматическое обновление через сервисный аккаунт
Агенты отвечают не на том языкеНет system prompt на русскомДобавить "Отвечай на русском языке" в промпт каждого агента
Медленная работа YandexGPTЭмуляция streaming вместо настоящегоИспользовать batch-режим или ждать поддержки streaming
Yandex 360 не возвращает данныеНет прав OAuth или устарел токенПроверить scope в OAuth (нужны mail, calendar, docs)

А что насчет производительности?

На 16.02.2026 российские модели показывают такие результаты:

  • GigaChat Pro: 45 токенов/сек в среднем, задержка 800-1200 мс
  • YandexGPT 3.0: 60 токенов/сек для кода, но batch-обработка занимает 2-3 секунды
  • Стоимость: примерно в 1.5 раза дешевле GPT-4 Turbo для русского текста

Если нужна максимальная скорость, можно использовать локальные модели на RTX 5090 вместе с облачными. OpenClaw позволяет смешивать провайдеры как угодно.

Куда развивать дальше

Базовая интеграция работает. Что можно добавить:

  1. Голосовой интерфейс: подключить STT/TTS на русском
  2. Автоматическое масштабирование: если YandexGPT тормозит, переключаться на GigaChat для кода
  3. Кэширование ответов: одинаковые запросы не должны стоить денег дважды
  4. Интеграцию с другими российскими сервисами: VK AI, Tinkoff AI Platform

Самое главное - не забудьте про мониторинг. Российские API иногда падают без предупреждения. Настройте алерты на увеличение времени ответа или ошибки аутентификации.

💡
Если не хотите поддерживать всю эту инфраструктуру самостоятельно, посмотрите в сторону готовых решений вроде AITunnel. Они берут на себя стабильность соединения, обновление токенов и балансировку нагрузки между разными провайдерами.

И последнее: тестируйте на реальных задачах. Русскоязычные модели иногда выдают странные результаты на специфических запросах. Особенно это касается профессиональной терминологии или локальных реалий. Держите под рукой fallback на западную модель на случай, если российские не справятся.

Через полгода такой мультиагентной системы вы поймете, какой из трех "мозгов" действительно полезен, а какой просто жрет бюджет. Тогда можно будет оптимизировать конфигурацию, оставив только работающее.