Рецепт · OpenClaw

Три источника моделей в OpenClaw: откуда взялась GPT-6.1 Sol

Проверьте, откуда ваш OpenClaw берёт список моделей, и получите новую модель в меню выбора без обновления пакета.

· 4 мин чтения

Коротко

  • Раньше список моделей жил в манифесте плагина, а плагины привязаны к релизу. Теперь 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, и один провайдер в каталоге считался фатальной ошибкой. Теперь это предупреждение, а остальные провайдеры обновляются.

Три источника списка

  1. Каталог на catalog.openclaw.ai. Его пересобирает задача каждые четыре часа: данные models.dev, наши манифесты и цены. Сейчас там около 1000 моделей. Gateway в фоне проверяет обновление и переключается на новый каталог на лету: уже начатый запрос доигрывает на старом, поэтому список и цены в нём совпадают.
  2. Список вашего аккаунта. При входе в провайдера OpenClaw спрашивает у него ваш список моделей и показывает все чат-модели, включая те, что новее вашей установки. Так работают OpenAI API key, Anthropic API key, Claude Code, GitHub Copilot, Grok по подписке, Ollama и OpenCode Go. Уровни размышления и адрес API, который принимает модель, теперь берутся из списка моделей провайдера, а не угадываются по имени.
  3. Манифест плагина. Для провайдеров, у которых свой плагин, в манифесте может быть фиксированный каталог: 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 при поиске моделей даёт пустой каталог, а не запасной список.