OpenClaw это локальный шлюз-ассистент: ставится на свою машину и сам решает, к какому поставщику моделей ходить. Сторонний адрес и ключ описываются его собственной настройкой.
npm install -g openclaw@latest --allow-scripts=openclawНастройки живут в ~/.openclaw/openclaw.json, формат JSON5 с комментариями, шлюз перечитывает файл сам. Свой адрес описывается разделом models.providers: поля baseUrl, apiKey, api и список моделей. Поле api выбирает протокол, без него берётся openai-completions.
// ~/.openclaw/openclaw.json
{
models: {
mode: "merge",
providers: {
guard: {
baseUrl: "https://api.guardrelay.ai/v1",
apiKey: "${GUARD_API_KEY}",
api: "openai-completions",
models: [{ id: "claude-sonnet-5-5", name: "Claude Sonnet 5.5" }],
},
},
},
agents: { defaults: { model: { primary: "guard/claude-sonnet-5-5" } } },
}// ~/.openclaw/openclaw.json
{
models: {
mode: "merge",
providers: {
guard: {
baseUrl: "https://api.guardrelay.ai/v1",
apiKey: "${GUARD_API_KEY}",
api: "openai-completions",
models: [{ id: "k3", name: "Kimi K3", maxTokens: 8192 }],
},
},
},
agents: { defaults: { model: { primary: "guard/k3" } } },
}// ~/.openclaw/openclaw.json
{
models: {
mode: "merge",
providers: {
guard: {
baseUrl: "https://api.guardrelay.ai/v1",
apiKey: "${GUARD_API_KEY}",
api: "openai-completions",
models: [{ id: "cursor-grok-4.7-high", name: "Grok 4.7", contextWindow: 256000, maxTokens: 8192 }],
},
},
},
agents: { defaults: { model: { primary: "guard/cursor-grok-4.7-high" } } },
}// ~/.openclaw/openclaw.json
{
models: {
mode: "merge",
providers: {
guard: {
baseUrl: "https://api.guardrelay.ai/v1",
apiKey: "${GUARD_API_KEY}",
api: "openai-completions",
models: [{ id: "composer-2.5", name: "Composer 2.5", maxTokens: 8192 }],
},
},
},
agents: { defaults: { model: { primary: "guard/composer-2.5" } } },
}Модель называется парой поставщик и модель, поэтому в primary идёт guard/ и точный id. Сменить основную можно и командой openclaw models set guard/<точный id>, а посмотреть, что подхватилось, командой openclaw models list.
Поля contextWindow, cost, input и reasoning у модели необязательные. Без contextWindow окно остаётся неизвестным и клиент считает бюджет по своему запасному значению, поэтому лучше указать его явно. Ключ можно оставить подстановкой ${GUARD_API_KEY}: значение тогда берётся из окружения либо из ~/.openclaw/.env.
Тот же ключ работает и по протоколу Anthropic Messages: в api пишется anthropic-messages, и адрес тогда указывается без /v1, потому что версию дописывает сам клиент. Для Guard достаточно варианта выше.
Для Kimi оставьте openai-completions, и /v1 в адресе тогда обязателен.
Используйте официальную инструкцию. Вариант ниже пропускает мастер каналов: для локальной беседы он не нужен.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
openclaw --version& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
openclaw --versionПолучите универсальный ключ gd-… по прямой ссылке на API в @guardapi и выберите API-пакет. Не вставляйте ключ в проект, репозиторий, текст задания или скриншот. Баланс и расход видны в личном кабинете.
- Создайте
~/.openclaw/.envсGUARD_GLM_API_KEY=gd-ваш-ключ. - Откройте
~/.openclaw/openclaw.json. Добавьте providerguard-glmвнутрь существующегоmodels.providers, сохранив каналы и другие настройки. - Используйте env SecretRef и exact
api: "openai-responses". Не включайтеopenai-completionsилиanthropic-messagesдля этого профиля.
# ~/.openclaw/.env
GUARD_GLM_API_KEY=gd-ваш-ключ{
models: {
mode: "merge",
providers: {
"guard-glm": {
baseUrl: "https://api.guardrelay.ai/glm/v1",
apiKey: { source: "env", provider: "default", id: "GUARD_GLM_API_KEY" },
auth: "api-key",
api: "openai-responses",
models: [
{ id: "glm-5.3", name: "GLM 5.3" },
{ id: "glm-5.3-flash", name: "GLM 5.3 Flash" }
]
}
}
},
agents: { defaults: { model: { primary: "guard-glm/glm-5.3", fallbacks: [] } } }
}openclaw config validate
openclaw models list
openclaw agent --local --session-id guard-glm-demo --model guard-glm/glm-5.3 --thinking off --message "Reply with exactly GLM_OK and remember PINE"
openclaw agent --local --session-id guard-glm-demo --model guard-glm/glm-5.3 --thinking off --message "What word were you asked to remember?"| Model ID | Что использовать |
|---|---|
glm-5.3 | Основная модель; текст и задачи с кодом. |
glm-5.3-flash | Быстрая модель; на уровне API принимает PNG и PDF во всех трёх протоколах, MP4 — только в Chat Completions. |
- Работают Responses, локальные инструменты чтения, записи, правки и команд, а также продолжение по session id.
- Инструменты чтения, правки и терминала исполняет сам клиент. Этот профиль не подключает инструменты или MCP Z.AI автоматически.
- Проверка этой версии была текстовой и не подтверждает её кнопку вложений. Возможности Flash на уровне API не означают, что конкретный интерфейс умеет передать файл.
- Профиль использует OpenAI Responses (
openai-responses). Серверный промпт GLM для обычного API выключен по умолчанию; настройка клиента сама его не включает. - Native TXT, DOCX и XLSX не входят в подтверждённый GLM-контракт. Для документов используйте PDF; для изображений — PNG и модель
glm-5.3-flash.
| Признак | Что проверить |
|---|---|
401 invalid_api_key | Клиент получил полный действующий ключ gd-…; переменная задана в том же процессе, где запущен клиент. |
404 model_not_found | Model ID равен ровно glm-5.3 или glm-5.3-flash; старые GLM ID, aliases, Turbo и FlashX не поддерживаются. |
404 или неверный путь | Base URL равен https://api.guardrelay.ai/glm/v1. Клиент сам добавляет /responses; не дописывайте его второй раз. |
400 invalid_request | Выбран указанный в инструкции API format; из старого профиля не перенесены reasoning, temperature, MCP или другие непроверенные поля. |
402 insufficient_balance | Проверьте доступный баланс и незавершённые резервы в личном кабинете. |
config validate не проходит | Объедините поля с существующими объектами, проверьте JSON5-запятые и имя provider guard-glm. |
| Модель не находится | openclaw models list должен показывать полное имя guard-glm/; выбирайте именно его. |
Используйте официальную инструкцию. Вариант ниже пропускает мастер каналов: для локальной беседы он не нужен.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
openclaw --version& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
openclaw --versionПолучите универсальный ключ gd-… по прямой ссылке на API в @guardapi и выберите API-пакет. Не вставляйте ключ в проект, репозиторий, текст задания или скриншот. Баланс и расход видны в личном кабинете.
- Создайте
~/.openclaw/.envсGUARD_GEMINI_API_KEY=gd-ваш-ключ. - Откройте
~/.openclaw/openclaw.json. Добавьте providerguard-geminiвнутрь существующегоmodels.providers, сохранив каналы и другие настройки. - Используйте env SecretRef и exact
api: "openai-responses". Не включайтеopenai-completionsилиanthropic-messagesдля этого профиля.
# ~/.openclaw/.env
GUARD_GEMINI_API_KEY=gd-ваш-ключ{
models: {
mode: "merge",
providers: {
"guard-gemini": {
baseUrl: "https://api.guardrelay.ai/v1",
apiKey: { source: "env", provider: "default", id: "GUARD_GEMINI_API_KEY" },
auth: "api-key",
api: "openai-responses",
models: [
{ id: "gemini-4-argon", name: "Gemini 4 Argon" },
{ id: "gemini-3.8-flash", name: "Gemini 3.8 Flash" }
]
}
}
},
agents: { defaults: { model: { primary: "guard-gemini/gemini-4-argon", fallbacks: [] } } }
}openclaw config validate
openclaw models list
openclaw agent --local --session-id guard-gemini-demo --model guard-gemini/gemini-4-argon --message "Reply with exactly GUARD_GEMINI_OK and remember PINE"
openclaw agent --local --session-id guard-gemini-demo --model guard-gemini/gemini-4-argon --message "What word were you asked to remember?"| Model ID | Вход и окно |
|---|---|
gemini-4-argon | Текст, изображения, PDF; окно 1 048 576 токенов, общее на вход и ответ. |
gemini-3.8-flash | Текст, изображения, PDF; окно 1 048 576 токенов на вход. |
- Локальные инструменты чтения, записи, правки и команд исполняет сам OpenClaw; беседа продолжается по session id.
- Вход в каталоге Guard: текст, изображения и PDF; ответ приходит текстом. Как передать файл или картинку, зависит от интерфейса клиента; эта инструкция вложения не описывает.
- Профиль использует OpenAI Responses (
openai-responses). Серверный промпт — отдельная настройка семейства Gemini: он применяется, только если у ключа есть право и включена опция; настройка клиента сама его не включает.
| Признак | Что проверить |
|---|---|
401 invalid_api_key | Клиент получил полный действующий ключ gd-…; переменная задана в том же процессе, где запущен клиент. |
404 model_not_found | Model ID — точный ID из таблицы выше или короткое имя gemini; другие написания не поддерживаются. |
404 или неверный путь | Base URL равен https://api.guardrelay.ai/v1. Клиент сам добавляет /responses; не дописывайте его второй раз. |
400 invalid_request | Выбран указанный в инструкции формат API; из старого профиля не перенесены лишние настройки: размышления, temperature, MCP и другие. |
402 insufficient_credit | Проверьте доступный баланс и незавершённые резервы в личном кабинете. |
config validate не проходит | Объедините поля с существующими объектами, проверьте JSON5-запятые и имя provider guard-gemini. |
| Модель не находится | openclaw models list должен показывать полное имя guard-gemini/; выбирайте именно его. |
Используйте официальную инструкцию. Вариант ниже пропускает мастер каналов: для локальной беседы он не нужен.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
openclaw --version& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
openclaw --versionПолучите универсальный ключ gd-… по прямой ссылке на API в @guardapi и выберите API-пакет. Не вставляйте ключ в проект, репозиторий, текст задания или скриншот. Баланс и расход видны в личном кабинете.
- Создайте
~/.openclaw/.envсGUARD_MUSE_API_KEY=gd-ваш-ключ. - Откройте
~/.openclaw/openclaw.json. Добавьте providerguard-museвнутрь существующегоmodels.providers, сохранив каналы и другие настройки. - Используйте env SecretRef и exact
api: "openai-responses". Не включайтеopenai-completionsилиanthropic-messagesдля этого профиля.
# ~/.openclaw/.env
GUARD_MUSE_API_KEY=gd-ваш-ключ{
models: {
mode: "merge",
providers: {
"guard-muse": {
baseUrl: "https://api.guardrelay.ai/v1",
apiKey: { source: "env", provider: "default", id: "GUARD_MUSE_API_KEY" },
auth: "api-key",
api: "openai-responses",
models: [
{ id: "muse-wonder-1.0", name: "Muse Wonder 1.0" },
{ id: "muse-spark-1.3", name: "Muse Spark 1.3" },
{ id: "muse-spark-1.2", name: "Muse Spark 1.2" }
]
}
}
},
agents: { defaults: { model: { primary: "guard-muse/muse-wonder-1.0", fallbacks: [] } } }
}openclaw config validate
openclaw models list
openclaw agent --local --session-id guard-muse-demo --model guard-muse/muse-wonder-1.0 --message "Reply with exactly GUARD_MUSE_OK and remember PINE"
openclaw agent --local --session-id guard-muse-demo --model guard-muse/muse-wonder-1.0 --message "What word were you asked to remember?"| Model ID | Вход и окно |
|---|---|
muse-wonder-1.0 | Текст, изображения, PDF; окно 1 048 576 токенов. |
muse-spark-1.3 | Текст, изображения, PDF; окно 1 048 576 токенов. |
muse-spark-1.2 | Текст, изображения, PDF; окно 1 048 576 токенов. |
- Локальные инструменты чтения, записи, правки и команд исполняет сам OpenClaw; беседа продолжается по session id.
- Вход в каталоге Guard: текст, изображения и PDF; ответ приходит текстом. Как передать файл или картинку, зависит от интерфейса клиента; эта инструкция вложения не описывает.
- Профиль использует OpenAI Responses (
openai-responses). Серверный промпт — отдельная настройка семейства Muse: он применяется, только если у ключа есть право и включена опция; настройка клиента сама его не включает.
| Признак | Что проверить |
|---|---|
401 invalid_api_key | Клиент получил полный действующий ключ gd-…; переменная задана в том же процессе, где запущен клиент. |
404 model_not_found | Model ID — точный ID из таблицы выше или короткое имя muse; другие написания не поддерживаются. |
404 или неверный путь | Base URL равен https://api.guardrelay.ai/v1. Клиент сам добавляет /responses; не дописывайте его второй раз. |
400 invalid_request | Выбран указанный в инструкции формат API; из старого профиля не перенесены лишние настройки: размышления, temperature, MCP и другие. |
402 insufficient_credit | Проверьте доступный баланс и незавершённые резервы в личном кабинете. |
config validate не проходит | Объедините поля с существующими объектами, проверьте JSON5-запятые и имя provider guard-muse. |
| Модель не находится | openclaw models list должен показывать полное имя guard-muse/; выбирайте именно его. |
Установите OpenClaw по официальной инструкции. Вариант ниже пропускает мастер подключения каналов: для первой локальной беседы он не нужен. На macOS/Linux/WSL2 — первая команда; на Windows PowerShell — вторая. Проверьте openclaw --version.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
openclaw --version& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
openclaw --versionВ @guardapi откройте Категории → API, выберите пакет и сохраните ключ gd-…. Для OpenClaw потребуется отдельная запись models.providers.guard, но не другой вид ключа.
- Откройте
~/.openclaw/openclaw.json(на Windows — файлopenclaw.jsonв домашней папке.openclaw). Если его нет, создайте папку и файл. - Добавьте
GUARD_API_KEY=gd-ваш-ключв~/.openclaw/.env; если строка уже есть, обновите её. Подстановка${GUARD_API_KEY}в JSON5 читает эту переменную при запуске OpenClaw. - В объекте
modelsустановитеmode: "merge"и добавьтеproviders.guard. Объедините только новые поля, сохранив каналы, агентов, инструменты и другие модели. - Укажите
api: "openai-responses"и базовый адресhttps://api.guardrelay.ai/codex/v1. Этот профиль проверен на нативном Responses.
# ~/.openclaw/.env
GUARD_API_KEY=gd-ваш-ключ{
models: {
mode: "merge",
providers: {
guard: {
baseUrl: "https://api.guardrelay.ai/codex/v1",
apiKey: {source: "env", provider: "default", id: "GUARD_API_KEY"},
api: "openai-responses",
models: [{
id: "gpt-6-astra", name: "GPT-6 Astra", reasoning: true,
input: ["text", "image"],
cost: {input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5},
contextWindow: 872000, contextTokens: 272000,
}],
},
},
},
agents: {defaults: {model: {primary: "guard/gpt-6-astra"}}},
}contextWindow: 872000 — опубликованная метка максимального окна в каталоге Guard для бюджета беседы; она не обещает прохождение любого запроса до этого размера. Проверенный профиль использует Responses: maxTokens можно оставить пустым, а переданный max_output_tokens Guard принимает и сохраняет без гарантии жёсткого усечения managed Codex.
Последний сохранённый нативный каталог Guard объявляет следующие значения максимального окна для настройки клиентского бюджета. Это не проверенный жёсткий предел входа; клиент может сжать историю раньше. В подключении Guard все семь моделей принимают и сохраняют max_output_tokens (Responses), max_completion_tokens (Chat) и max_tokens (Messages) как advisory, без гарантии жёсткого лимита вывода managed Codex; списание идёт по фактическим токенам и денежным правилам ключа.
| ID модели | Контекст для настройки клиента |
|---|---|
gpt-6-astra | 872000 |
gpt-6.1-sol | 872000 |
gpt-6-sol | 872000 |
gpt-6-luna | 872000 |
gpt-5.6-sol | 872000 |
gpt-5.6-terra | 872000 |
gpt-5.6-luna | 872000 |
- Выполните
openclaw config validate. При ошибке проверьте скобки, запятые и то, что нет двух отдельных объектовmodels. - Выполните
openclaw models listи найдитеguard/.gpt-6-astra - Для изолированного запуска выполните
openclaw agent --local --session-id guard-codex-demo --model guard/gpt-6-astra --thinking medium --message "Ответь ровно OK"; каналы и Gateway daemon не запускаются. - Для продолжения повторите
agent --localс тем же--session-idи новым--message; другой id создаёт отдельный сеанс.
openclaw config validate
openclaw models list
openclaw agent --local --session-id guard-codex-demo --model guard/gpt-6-astra --thinking medium --message "Reply with exactly OK"| Признак | Что проверить |
|---|---|
| Конфигурация не проходит проверку | Добавьте поля в существующие объекты models/providers; файл — JSON5, вложенность и запятые важны. |
401 | Процесс OpenClaw видит GUARD_API_KEY; в .env нет второго значения того же имени. |
| Модель не находится | Провайдер guard указан в models.providers, его models содержит gpt-6-astra, а primary равен guard/. |
404 или ошибка формата | Base URL оканчивается ровно на /codex/v1, api равно openai-responses, не anthropic-messages. |
402 | Проверьте баланс и лимиты ключа в кабинете. |