OpenClaw
Self-hosted шлюз OpenClaw через AITUNNEL: custom provider, ключ в рублях, VPN не нужен.
OpenClaw — шлюз для AI-агентов: один Gateway на вашей машине, чат из Telegram, Discord, WhatsApp, Control UI и узлов. Через AITUNNEL это custom provider, протокол openai-completions на https://api.aitunnel.ru/v1.
Зачем через AITUNNEL
- Из России без VPN. Запросы идут на
api.aitunnel.ru. Зарубежный аккаунт провайдера не нужен. - Оплата в рублях, бюджет на ключе, расход в панели.
- Один baseUrl на каталог. Claude, GPT, Gemini, Kimi — id как на странице моделей. Слаг со слешем уходит в OpenRouter.
- Запасные модели. Если апстрим не ответил — fallback AITUNNEL и цепочка
agents.defaults.model.fallbacksв OpenClaw.
Быстрый старт
Самый удобный путь: поставить CLI без мастера, положить ~/.openclaw/openclaw.json, затем дать онбордингу проверить живой completion. Он подхватит уже прописанный провайдер.
Установка
Рекомендуемый установщик ставит Node при необходимости (нужны 22.22.3+, 24.15+ или 25.9+; по умолчанию Node 26).
--no-onboardпропускает мастер. npm — запасной путь: пакетopenclaw@latest, не@openclaw/cli. На npm 12 / 11.16+ нужен--allow-scripts=openclaw. Install.curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboardПроверкаopenclaw --versionКлюч
Создайте ключ в панели ключей. Экспортируйте его — OpenClaw подставляет
${AITUNNEL_API_KEY}из окружения. Не кладите ключ в JSON: auth читает профили → env →models.providers.*.apiKey.Окружениеexport AITUNNEL_API_KEY="sk-aitunnel-xxx"Чтобы переменная жила между сессиями, добавьте её в
~/.zshrc/~/.bashrc.Файл ~/.openclaw/openclaw.json
api—openai-completions,baseUrl— с/v1. Модель в агенте —провайдер/id, id как в каталоге. Реф режется по первому/:aitunnel/claude-sonnet-4.6.openclaw.json{ "models": { "mode": "merge", "providers": { "aitunnel": { "baseUrl": "https://api.aitunnel.ru/v1", "apiKey": "${AITUNNEL_API_KEY}", "api": "openai-completions", "models": [ { "id": "claude-sonnet-4.6", "name": "Claude Sonnet 4.6", "reasoning": true, "input": ["text", "image"] }, { "id": "gemini-3.7-flash", "name": "Gemini 3.7 Flash", "input": ["text", "image"] } ] } } }, "agents": { "defaults": { "model": { "primary": "aitunnel/claude-sonnet-4.6", "fallbacks": ["aitunnel/gemini-3.7-flash"] }, "utilityModel": "aitunnel/gemini-3.7-flash" } } }models.providers.*.models[]регистрирует модель.agents.defaults.models— только алиасы и параметры. Для картинок у модели укажите["text", "image"]вinput.Онбординг и Gateway
Терминалopenclaw doctor openclaw onboard --install-daemon openclaw gateway status openclaw dashboardОнбординг сначала ищет уже настроенные модели и ключи в env, гоняет живой completion и только потом ставит workspace, Gateway и daemon. Control UI по умолчанию — http://127.0.0.1:18789/. Каналы (быстрее всего Telegram) — после этого:
openclaw channels addилиopenclaw configure.
Custom Provider в мастере
Если конфиг ещё не писали: openclaw onboard --classic → Model/Auth → Custom Provider → OpenAI-compatible → https://api.aitunnel.ru/v1 → ключ → id claude-sonnet-4.6.
openclaw onboard --classicКлюч в auth-профиле
Вместо apiKey в JSON можно сохранить ключ в store провайдера:
printf '%s\n' "$AITUNNEL_API_KEY" | openclaw models auth paste-api-key --provider aitunnelМодели и fallback
Сменить основную без правки JSON:
openclaw models set aitunnel/claude-sonnet-4.6
openclaw models fallbacks add aitunnel/gemini-3.7-flash
openclaw models status
openclaw models list --provider aitunnelВ чате — /model, /model list, /model aitunnel/claude-sonnet-4.6. Пользовательский /model строгий: если модель недоступна, сессия не уйдёт в fallback. Цепочка fallbacks работает для дефолта из конфига.
utilityModel — дешёвая модель для заголовков сессий и коротких служебных задач. Удобный кандидат — gemini-3.7-flash. Если не задать, OpenClaw возьмёт small-model провайдера или основную.
Каналы живут в channels.telegram, channels.discord и т.д. Отдельная модель на мессенджер — второй агент и bindings, не корневые ключи telegram / discord.
Команды
openclaw doctor, openclaw doctor --fix, openclaw gateway status|start|stop|restart, openclaw dashboard, openclaw models status|list|set, openclaw channels add, openclaw configure.
Устранение неполадок
- No API key found for provider 'aitunnel'. Есть
AITUNNEL_API_KEYв shell, либоapiKey/ auth-профиль.openclaw models status,openclaw models auth list --provider aitunnel. - 401 / 403. Ключ живой в панели ключей, баланс положительный,
baseUrl—https://api.aitunnel.ru/v1(с/v1, без слеша в конце). - Model not found / not allowed. Id как в каталоге:
claude-sonnet-4.6, неanthropic/claude-sonnet-4.6. Реф агента —aitunnel/claude-sonnet-4.6. Модель должна быть вmodels.providers.aitunnel.models[]. Если заданagents.defaults.modelPolicy.allow— добавьте реф илиaitunnel/*. - Онбординг уводит в OpenAI / OpenRouter. Выбран не Custom Provider. Допишите
openclaw.jsonи сноваopenclaw onboard, либо--classic. - Gateway не стартует. Конфиг строго валидируется.
openclaw doctor, при необходимостиopenclaw doctor --fix. - Запросы не в панели.
primaryуказывает не наaitunnel/….openclaw models status. openclawне в PATH. После установщика откройте новый терминал. Для npm — глобальный bin в PATH.- Приватность. AITUNNEL не логирует исходный код промптов. Не коммитьте
openclaw.jsonс ключом.