Коротко
- Раньше список моделей жил в манифесте плагина, а плагины привязаны к релизу. Теперь OpenClaw собирает его из трёх источников.
- Каталог на catalog.openclaw.ai пересобирается каждые четыре часа, Gateway подхватывает его на лету.
- При входе через ChatGPT всё решает версия Codex: обновление глобального Codex даёт новые модели без обновления OpenClaw.
- Проверка — команда openclaw models list –refresh.
Сверено с документацией OpenClaw 2026.11.1, 6 ноября 2026.
В меню выбора модели нет модели, хотя провайдер её уже отдаёт. Причина в том, откуда OpenClaw берёт список.
Что было сделано: список моделей в манифесте плагина
Раньше каждый провайдерский плагин нёс свой список моделей в манифесте, а манифест ехал внутри пакета OpenClaw. Плагины привязаны к релизу, поэтому GPT-6.1 Sol не появлялся в списке: в сборке был Codex 0.158.0, а ChatGPT отдаёт Sol клиентам Codex 0.159.2 и новее. Поменять этот номер можно было только выпуском новой версии.
Автор блога OpenClaw пишет, что переделку делали около пяти недель и примерно 80 запросов на слияние (pull requests). Сбой вышел неприятный: 21 сентября models.dev разделил запись kimi-for-coding, и один провайдер в каталоге считался фатальной ошибкой. Теперь это предупреждение, а остальные провайдеры обновляются.
Три источника списка
- Каталог на catalog.openclaw.ai. Его пересобирает задача каждые четыре часа: данные models.dev, наши манифесты и цены. Сейчас там около 1000 моделей. Gateway в фоне проверяет обновление и переключается на новый каталог на лету: уже начатый запрос доигрывает на старом, поэтому список и цены в нём совпадают.
- Список вашего аккаунта. При входе в провайдера OpenClaw спрашивает у него ваш список моделей и показывает все чат-модели, включая те, что новее вашей установки. Так работают OpenAI API key, Anthropic API key, Claude Code, GitHub Copilot, Grok по подписке, Ollama и OpenCode Go. Уровни размышления и адрес API, который принимает модель, теперь берутся из списка моделей провайдера, а не угадываются по имени.
- Манифест плагина. Для провайдеров, у которых свой плагин, в манифесте может быть фиксированный каталог:
modelCatalogсо спискомmodels,aliases,suppressionsи полемdiscovery. Значениеdiscoveryпоказывает, откуда читаются строки: из манифеста, из обновляемого кэша или из работающего провайдера.
{
"modelCatalog": {
"providers": {
"openai": {
"baseUrl": "https://api.openai.com/v1",
"api": "openai-responses",
"models": [
{
"id": "gpt-5.4",
"name": "GPT-5.4",
"input": ["text", "image"],
"reasoning": true,
"contextWindow": 256000,
"maxTokens": 128000,
"cost": {
"input": 1.25,
"output": 10,
"cacheRead": 0.125
},
"status": "available",
"tags": ["default"]
}
]
}
},
"discovery": {
"openai": "static"
}
}
}
Для плагинов с OpenAI-совместимым /models есть опция liveModelDiscovery: true. Успешный ответ кэшируется на 60 секунд, а при ошибке возвращается статический набор из манифеста. Если форма запроса зависит от версии модели, задайте acceptUnknownModel, чтобы обнаружение не публиковало ID, для которого нельзя собрать корректный запрос.
Версия Codex: кто перечисляет, тот и запускает
ChatGPT решает, какие модели отдавать, по версии клиента, которую сообщает Codex. Первая попытка была простой: взять последнюю версию Codex из npm и сообщить её при запросе списка. Так список моделей починили, но затем откатили: список запрашивался у 0.161.0, а ходы выполнял встроенный 0.160.0, и модель падала с HTTP 400 на первом сообщении.
Сейчас OpenClaw ищет Codex в PATH. Если это стабильный релиз новее встроенного и той же мажорной версии, OpenClaw выполняет рукопожатие с ним, и тогда этот же бинарник перечисляет модели и ведёт ходы. Если что-то не так, работает встроенный Codex. OpenClaw ничего не устанавливает сам.
[agent/embedded] Codex app-server: using installed ~/.local/bin/codex 0.162.1 (newer than bundled 0.161.0)
Как проверить, откуда взялась модель
openclaw models list --refresh
openclaw models status
Первая команда показывает список с принудительным обновлением каталога. Вторая объясняет, какая модель выбрана и откуда берутся учётные данные. О неизвестных провайдерах сообщит openclaw doctor --json, а флаг --severity-min info покажет активные модели, которых нет в локальном каталоге. На живом Gateway каталог Codex для своего аккаунта смотрите командой /codex models, а строку о выбранном бинарнике ищите в логах Gateway. Если модель есть в списке аккаунта, но её нет в меню выбора, откройте задачу (issue) и приложите вывод openclaw models list --refresh.
Где ломается и что учесть
- Нет нового Codex в PATH: версия из пакета решает, какие модели видны при входе через ChatGPT. Достаточно обновить глобальный Codex, релиз OpenClaw для этого не нужен.
- Модель новее каталога: цена показывается как неизвестная, а работа идёт с осторожными лимитами по умолчанию.
- Ошибка 401 или 403 при поиске моделей даёт пустой каталог, а не запасной список.