Ollama OpenClaw — это связка, в которой агент OpenClaw работает на локальной модели с сервера Ollama: в конфигурации записывают адрес сервера, а модель называют ссылкой вида ollama/имя. Связка подходит, когда документы остаются внутри контура, но принимать её нужно после проверки четырёх свойств: совместимости режима API, качества вызовов инструментов, задержки на холодном старте и границ данных, ведь облачные модели Ollama живут в том же списке.

Что связывает

TL;DR

OpenClaw обращается к Ollama по родному API (/api/chat), модель задаётся ссылкой ollama/имя, а адрес сервера записан в поле baseUrl без суффикса /v1.

Условный сценарий: агент читает протоколы совещаний отдела продаж, выделяет поручения с исполнителем и сроком и готовит черновик задач для руководителя. Протоколы содержат условия клиентов, поэтому отправлять их во внешнее облако нежелательно, и модель работает на сервере компании. Руководитель сверяет черновик с протоколом и сам заводит задачи в трекере. Критерий приёмки записывают заранее: доля поручений, найденных с верным исполнителем и сроком на наборе размеченных протоколов.

Роли распределены так: конфигурация OpenClaw решает, какие файлы агент видит, модель формулирует поручения, руководитель принимает решение. Установка самого OpenClaw и каналы связи остаются за рамками. Общий взгляд на локальный контур даёт разбор локального ИИ-агента на своём сервере, а работу самого сервера моделей описывает статья про запуск Ollama для компании.

Граница с соседним материалом такая: выбор провайдера и запасной модели разобран в статье про OpenClaw models, а здесь речь идёт только о локальном Ollama как источнике модели и о том, чем эту связку проверяют.

Совместимость

По документации OpenClaw, провайдер использует родной API Ollama /api/chat. Адрес вида http://host:11434/v1 документация прямо запрещает: на нём ломается вызов инструментов, и модель выводит JSON вызова обычным текстом.

  1. Загрузите модель на сервере Ollama командой ollama pull с нужным именем.
  2. Для локального или локально-сетевого сервера задайте метку OLLAMA_API_KEY="ollama-local"; удалённым адресам требуются настоящие учётные данные.
  3. Выберите модель командой openclaw models set ollama/имя либо запишите её в поле agents.defaults.model.primary.
  4. Укажите в models.providers.ollama.baseUrl адрес сервера без суффикса /v1.
  5. Проверьте связку без агентного слоя командой openclaw infer model run --local --model ollama/имя.

Когда Gateway и Ollama стоят на разных машинах, адрес проверяют с той машины, где работает Gateway. Документация советует для этого команду openclaw gateway status --deep и обычный запрос curl оттуда же. Типичные причины сбоя: localhost в конфигурации вместо реального адреса, суффикс /v1, закрытый межсетевым экраном порт и модель, загруженная на другом сервере Ollama.

Перечень моделей OpenClaw строит сам, запрашивая у Ollama список и параметры каждой. Ручной список в models.providers.ollama.models это обнаружение отключает. Запишите, каким способом вы пользуетесь, иначе после смены модели конфигурация и реальность разойдутся.

Если сервер Ollama общий с другими командами, учтите очередь: параллельные запросы к одной модели ждут друг друга, и агент, обрабатывающий большую папку, замедляет чужие задачи. Договоритесь об окнах для пакетной работы либо выделите отдельный экземпляр сервера.

Качество вызовов

Способность вызывать инструменты определяет, станет ли модель агентом. По документации, OpenClaw определяет возможности модели по сведениям, которые сообщает сам Ollama, но сведения могут быть неполными, и узкую пробу без инструментов агента даёт команда openclaw infer model run. Если проба проходит, а ответы агента ломаются, причина лежит в способности модели работать с инструментами. Поэтому решающим остаётся собственный набор заданий на реальных протоколах.

ПробаОжидаемое поведениеПризнак брака
Поручение с названным исполнителем и срокомВызов чтения протокола с верным именем файла и точный пункт в черновикеВ ответе виден текст вида JSON вместо вызова
Протокол без порученийСообщение, что поручений нетВыдуманный исполнитель или срок
Два исполнителя в одной фразеДва отдельных пунктаОдин пункт с потерянным исполнителем
Нужного файла нет в папкеСообщение об отсутствии файлаВызов другого файла и пересказ чужого содержимого
Просьба удалить протоколОтказ по правамПопытка вызвать запрещённую функцию

Текст JSON на месте вызова — прямой признак того, что провайдер работает в OpenAI-совместимом режиме. Раздел документации об устранении неполадок называет это первой причиной и советует родной режим api: "ollama". Проверьте адрес и режим, прежде чем винить модель.

Прогоните набор для двух-трёх моделей подходящего размера на одинаковых протоколах и сохраните журнал вызовов рядом с версией набора. Скрипт собирает вызовы и итоги, спорные ответы оценивает человек. Повторяйте прогон после смены модели, версии Ollama и версии OpenClaw.

Аргументы вызова проверяйте так же строго, как в любом сервисе. Агент обращается к файлам через инструменты, и путь за пределами выделенной папки сервер обязан отклонять независимо от того, насколько убедительно звучит просьба модели.

Задержка и память

Холодный старт локальной модели растягивает первый ответ. В разделе устранения неполадок документация показывает настройку timeoutSeconds (в примере 300) и keep_alive, чтобы модель оставалась в памяти между запросами. Для больших окон там же рекомендуют ограничить и maxTokens в OpenClaw, и params.num_ctx под возможности железа.

  • Время первого ответа после паузы и время повторного ответа в тёплом режиме, измеренные отдельно.
  • Фактическое окно: значение params.num_ctx уходит в /api/chat как options.num_ctx, действующий размер сверяйте командой ollama ps.
  • Верхнюю границу при обнаружении: по документации, contextTokens при обнаружении обычно ограничено значением 32 768 (или меньшим родным окном модели), и длинные протоколы могут упереться в него.
  • Влияние размышления: у моделей с этой возможностью уровни переключаются командой /think (low, medium, high, max), а params.thinking: false отключает размышление на уровне API.

Допустимый порог ожидания задаёт сам процесс. Протоколы собирают заранее, и ответ может подождать, а живой чат с сотрудником требует другого порога. Запишите допустимую задержку до измерений, и результат обретёт смысл. Сравнивать полезно и скорость, и стабильность: разброс между повторами одного запроса показывает, можно ли обещать сотрудникам предсказуемое время.

● Discovery · 1 час · бесплатно

Какую задержку ответа допускает ваш процесс?

Прийти на Discovery →

Границы данных

Локальная модель удерживает данные внутри контура, пока вся цепочка локальна. В режиме Cloud + Local один демон Ollama обслуживает локальные модели и, после входа командой ollama signin, модели с суффиксом :cloud. Облачные ссылки в OpenClaw выглядят как ollama-cloud/имя:cloud. Запрос к такой модели уходит на серверы Ollama, и протоколы с условиями клиентов покидают контур.

Поэтому в конфигурации агента для протоколов оставляют только ссылки ollama/… и проверяют это скриптом: любое имя с :cloud или провайдер ollama-cloud останавливают запуск. Эту проверку запускайте при старте агента и по расписанию: коллега способен изменить конфигурацию случайно, и облачная ссылка появится в списке без чьего-либо решения. Смежная тема разобрана в статье про облачный и локальный режимы Ollama.

Протоколы и журналы агента лежат на диске сервера, и каталог открывают отдельной учётной записи с чтением нужной папки. Редакция секретов в журнале OpenClaw включена всегда, но обезличивание содержимого протоколов остаётся задачей вашего скрипта. Нулевая стоимость в отчётах OpenClaw для обнаруженных моделей служит лишь значением по умолчанию, реальную нагрузку считайте на стороне сервера. Если агенту предстоит действовать за пределами чтения, начните со страницы про ИИ-агентов для бизнеса.

// паспорт связки

Ведите паспорт связки: версии OpenClaw и Ollama, имя модели, значение num_ctx, режим API, список запрещённых провайдеров и дату последнего прогона проверок. Менять любую из этих строк без записи в паспорте нельзя.

Частые вопросы

Как подключить Ollama к OpenClaw?
Загрузите модель на сервере Ollama, задайте метку OLLAMA_API_KEY для локального адреса, укажите baseUrl сервера без суффикса /v1 и выберите модель командой openclaw models set ollama/имя. Затем проверьте связку командой openclaw infer model run с флагом --local.
Почему OpenClaw выводит JSON вместо вызова инструмента?
Обычно провайдер работает в OpenAI-совместимом режиме либо адрес заканчивается на /v1. Используйте родной режим API Ollama и адрес без суффикса, затем повторите проверочные задания.
Какую модель выбрать для OpenClaw через Ollama?
Ту, что проходит ваш набор заданий на вызов инструментов и укладывается в допустимую задержку на вашем железе. Заявленные возможности служат отправной точкой, решает собственная проверка.
Уходят ли данные в облако при работе Ollama с OpenClaw?
С локальными моделями ollama/… запросы остаются на вашем сервере. Модели с суффиксом :cloud обслуживаются на серверах Ollama, поэтому для чувствительных документов их исключают из конфигурации.
Что делать, если первый ответ модели приходит слишком долго?
Одна из причин — холодный старт. Документация советует поднять timeoutSeconds и задать keep_alive, чтобы модель оставалась в памяти между запросами.