Вопрос

Ollama + OpenClaw: как подключить локальную модель

Поднимаем Ollama на том же хосте, что и Gateway, прописываем провайдера в конфиге и проверяем, что модель видна из OpenClaw 2026.9.9.

· 3 мин чтения

Коротко

  • OpenClaw ходит в Ollama по нативному API /api/chat, а не через OpenAI-совместимый /v1; baseUrl ставьте без /v1.
  • Локальный и LAN-хосты авторизуются маркером OLLAMA_API_KEY="ollama-local", реальный ключ нужен только для https://ollama.com.
  • Проверить, что модель видна: openclaw models list --provider ollama.

Сверено с документацией OpenClaw 2026.9.9, 10 октября 2026.

Ставите Ollama, поднимаете модель, добавляете провайдера в конфиг OpenClaw 2026.9.9 и выбираете модель командой. Ниже — ручная настройка или онбординг.

Что нужно на хосте

  • Установленная Ollama: пакет с ollama.com/download, демон запущен.
  • Загруженная модель, например gemma4: ollama pull gemma4.
  • Тот же хост для Ollama и Gateway; для удалённого Ollama нужен сетевой доступ к порту 11434, а адреса обратной петли и частных сетей авторизуются маркером.

Самый короткий путь через онбординг

Команда сама спросит хост и подтянет локальные модели.

openclaw onboard
openclaw models list --provider ollama
openclaw models set ollama/gemma4

При онбординге OpenClaw проверяет только модели, уже загруженные в память (/api/ps), с поддержкой инструментов и контекстом от 16K. Модель на диске, но не загруженная, сама в список не попадёт. Чтобы использовать установленную, но не загруженную модель, выберите в десктопном Model Setup пункт Choose connection, затем Local only.

Ручная настройка: провайдер и модель

Сначала задайте маркер ключа: для адреса обратной петли и частных сетей любое значение, настоящий ключ нужен только для ollama.com.

export OLLAMA_API_KEY="ollama-local"

Дальше пропишите провайдера в конфиге. baseUrl без /v1, иначе сломаются вызовы инструментов и модель начнёт выдавать сырой JSON как текст.

{
  models: {
    providers: {
      ollama: {
        baseUrl: "http://ollama-host:11434", // No /v1 - native Ollama API URL
        apiKey: "ollama-local",
        api: "ollama", // Explicit: guarantees native tool-calling behavior
        timeoutSeconds: 300, // Optional: longer connect/stream budget for cold local models
        models: [
          {
            id: "qwen3:32b",
            name: "qwen3:32b",
            params: {
              keep_alive: "15m", // Optional: keep the model loaded between turns
            },
          },
        ],
      },
    },
  },
}

api: "ollama" явно задаёт нативный протокол и надёжный вызов инструментов. keep_alive необязательный параметр, его задают в params модели. Для медленных локальных моделей есть ещё timeoutSeconds: 300.

Удалённый Ollama на LAN или VPS

Адреса обратной петли, частные сети, .local и голые имена хостов используют маркер ollama-local. В baseUrl уже не 127.0.0.1, а адрес машины с Ollama, и нужен сетевой доступ: порт 11434 открыт, фаервол не режет.

openclaw models list
openclaw models set ollama/gemma4

Если Ollama стоит на публичном хосте или вы берёте https://ollama.com, маркер уже не подойдёт, нужен реальный ключ в OLLAMA_API_KEY или в apiKey провайдера. Для облака Ollama без своего демона используйте отдельный id ollama-cloud.

Как убедиться, что Gateway видит модель

  1. openclaw models list --provider ollama: модель появилась в списке.
  2. openclaw models set ollama/gemma4: назначить основной.
  3. Проверить baseUrl: если модель выдаёт сырой JSON как текст, скорее всего, в адресе стоит /v1 и OpenClaw ушёл в OpenAI-совместимый режим.
  4. Если что-то не так, openclaw doctor --fix подтянет старые auth-profiles.json в SQLite и подскажет ошибки провайдера.

Частые ошибки

  • В baseUrl дописан /v1. OpenClaw уйдёт в OpenAI-совместимый режим, вызовы инструментов ломаются, модель пишет JSON как обычный текст. Нативный URL: http://host:11434 без /v1.
  • Модель только на диске и не загружена. /api/ps её не отдаёт, автодискавери её пропускает. Поднимите модель заранее или выберите путь Local only в Model Setup.
  • Маркер ollama-local отправлен в https://ollama.com. Для облака нужен настоящий OLLAMA_API_KEY или отдельный провайдер ollama-cloud.
  • WSL2 и NVIDIA, плюс автозапуск Ollama. Юнит systemd с Restart=always перезагружает последнюю модель при старте и закрепляет память хоста, виртуальная машина уходит в петлю рестартов. См. раздел troubleshooting про петлю рестартов WSL2.