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", name: "Claude Sonnet 5" }],
},
},
},
agents: { defaults: { model: { primary: "guard/claude-sonnet-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.6-medium", name: "Grok 4.6", maxTokens: 8192 }],
},
},
},
agents: { defaults: { model: { primary: "guard/cursor-grok-4.6-medium" } } },
}// ~/.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 в адресе тогда обязателен.