# OpenClaw с локальной Ollama: как подключить модель и проверить вызов инструмента

Источник: https://modelium.tech/zhurnal/openclaw-s-ollama/

OpenClaw может использовать модель, запущенную в Ollama на той же машине: выберите Local only, затем проверьте точный тег модели и адрес локального сервера. Для проверки инструмента недостаточно получить ответ модели: в отдельной пустой папке разрешите только чтение и убедитесь, что агент действительно вызвал файловый инструмент. Локальный адрес модели не доказывает отсутствия других сетевых обращений, а доступность tool calling зависит от конкретной модели и конфигурации.

**Проверено по официальной документации 25 сентября 2026 года.** Инструкции OpenClaw закреплены на конкретной ревизии. Modelium не устанавливал OpenClaw или Ollama, не скачивал веса и не запускал модель. Показанный ниже успешный исход — критерий для проверки на **вашем** устройстве, не результат нашего теста. Частотность запроса не измерена.

## Что здесь означает «локально»?

В этом сценарии OpenClaw — приложение агента, а Ollama — сервер выбранной модели на той же машине. Документация OpenClaw описывает режим **Local only** отдельно от Cloud only и Cloud + Local. Даже когда Ollama работает на `127.0.0.1`, другие включённые у агента инструменты, каналы, плагины или поиск могут обращаться в сеть: локальный адрес **одного** API не является доказательством офлайн-работы **всего** стека [s1](#src-s1)[s2](#src-s2)[s5](#src-s5). Если задача — закрытый контур, после настройки проведите [отдельный сетевой тест](/zhurnal/proverka-offline-kontura-ii/), а не полагайтесь на название провайдера.

OpenClaw использует **нативный** маршрут Ollama `/api/chat`. В `baseUrl` нужен адрес хоста без `/v1`, например `http://127.0.0.1:11434`; в документации прямо предупреждают, что OpenAI-compatible `/v1` может сломать tool calling и выдать JSON вызова обычным текстом [s1](#src-s1). Сервер модели, клиент агента и инструмент чтения файла — три разных звена. По описанию Ollama модель **предлагает** вызов; приложение решает, исполнять ли его и как вернуть результат модели [s7](#src-s7).

## Что подготовить до настройки OpenClaw?

На машине должны быть установлены Ollama и OpenClaw, совместимые с **вашей** ОС и версиями их документации. Для начала возьмите пустую рабочую папку без ключей, чужих документов и доступа к production. Руководство по [установке Ollama](/zapusk/ollama/) отдельно разбирает локальный API. Не устанавливайте скрипт из интернета только потому, что он попал в пример; проверьте источник и политику собственной машины. Ни установка, ни скачивание весов в этой статье Modelium не выполнялись.

В официальном локальном рецепте OpenClaw примером служит тег `gemma4`. Сначала оцените свободное место, память и нужный контекст **по характеристикам вашей машины**, а затем только при согласии на скачивание выполните `ollama pull gemma4`. Это загрузка весов по сети; она не является бесплатным тестом по времени или диску. Здесь **нет** утверждения, что тег влезет на любой компьютер либо что он точно справится с агентной задачей: пригодность проверяется отдельно [s3](#src-s3)[s8](#src-s8). Для иной модели заменяйте тег **одновременно** в Ollama и OpenClaw, не переводя размер файла в минимальную RAM/VRAM.

Если Ollama уже запущена системой или приложением, второй `ollama serve` не нужен. Проверьте локальный адрес и список тегов до работы агента [s3](#src-s3)[s6](#src-s6):

curl -fsS http://127.0.0.1:11434/api/tagsollama list# Только после проверки ресурсов и выбора модели:ollama pull gemma4

Первый запрос должен вернуть доступный ответ сервера; `ollama list` после загрузки — содержать точный тег. Если список есть, но модель не отвечает на реальный запрос, проверка ещё не пройдена. Наличие весов на диске не является доказательством достаточной рабочей памяти или поддержки инструментов [s3](#src-s3)[s6](#src-s6)[s8](#src-s8).

## Как связать локальную модель с OpenClaw без облачного fallback?

По официальному мастеру выполните `openclaw onboard`, выберите **Ollama → Local only**, укажите адрес локального сервера и установленную модель. Не выбирайте Cloud + Local и не оставляйте облачный fallback, если хотите тестировать исключительно локальный маршрут. Мастер может предложить скачать модель, если не найдёт подходящей: сначала проверьте размер, права и доступность ресурсов на своём хосте [s2](#src-s2). Если уже настроен другой профиль, не переписывайте его молча — используйте отдельный тестовый профиль или сверяйте реальную конфигурацию до переключения.

После настройки подтвердите, что активная модель совпадает с локальным тегом, а не только красиво отображается в интерфейсе [s2](#src-s2)[s3](#src-s3):

openclaw models list --provider ollamaopenclaw models set ollama/gemma4openclaw models status

Команда `models set` меняет выбранную модель в конфигурации пользователя; запускайте её **только** если согласны переключить текущий профиль. При ручном подключении используйте `baseUrl: "http://127.0.0.1:11434"` и `api: "ollama"`, без `/v1`. Локальный хост не требует настоящего облачного API-ключа; маркер `ollama-local` в документации нужен для обнаружения/настройки, не делает сервер защищённым от других процессов на том же хосте [s1](#src-s1)[s2](#src-s2)[s6](#src-s6).

Для отдельного узкого smoke-теста **модели**, без полного агентного набора инструментов, OpenClaw приводит `openclaw infer model run --model ollama/gemma4 --prompt "Reply with exactly: ok"` [s3](#src-s3). Если здесь нет ответа, не переходите к тесту инструмента. Если ответ есть, это подтверждает лишь маршрут модели, а **не** право агента и не способность модели действительно вызвать файловый инструмент.

## Как проверить настоящий tool call на безопасном файле?

Для первого теста ограничьте агента одним действием: чтением **только** файла-маркера в новой пустой папке. Отключите облачные fallbacks, каналы, плагины и доступ к секретам в используемой тестовой конфигурации. Документация OpenClaw рекомендует сочетать allowlist инструментов и ограничения файловой области; одно текстовое «ничего не удаляй» в промпте не является политикой безопасности [s4](#src-s4)[s5](#src-s5). Проверяйте файл конфигурации перед запуском, не наследуйте рабочий профиль с разрешёнными `exec`, `browser`, `write` и внешними сообщениями.

Создайте `marker.txt` со случайной строкой, неизвестной модели, **в отдельной** папке. `--cwd` у `agent exec` задаёт рабочую область, а `--config` загружает отдельный проверенный JSON5; параметры описаны в CLI-справке. Пример ниже сужает список доступных инструментов до `read`; для более строгой изоляции используйте отдельную песочницу или одноразовую машину. Даже ограничение инструментов не является доказательством сетевой изоляции или отсутствия загрузки установленных плагинов [s4](#src-s4)[s5](#src-s5):

mkdir openclaw-smokecd openclaw-smokenode -e 'require("node:fs").writeFileSync("marker.txt", require("node:crypto").randomBytes(12).toString("hex") + "\n")'cat > local.json5 <<'JSON5'{  models: { providers: { ollama: {    baseUrl: "http://127.0.0.1:11434", api: "ollama", models: []  } } },  agents: { defaults: { model: { primary: "ollama/gemma4" } } },  tools: { allow: ["read"], deny: ["write", "edit", "apply_patch", "exec", "process", "browser", "gateway", "cron", "sessions_spawn", "sessions_send"] }}JSON5# Просмотрите local.json5; не копируйте сюда ключи или секреты.OLLAMA_API_KEY=ollama-local openclaw agent exec \  --config "$PWD/local.json5" \  --cwd "$PWD" \  --model ollama/gemma4 \  --code-mode direct \  --json \  'Прочитай marker.txt инструментом read; верни строку дословно.'# Сравните результат с локальным файлом только после просмотра трассы вызовов.node -e 'console.log(require("node:fs").readFileSync("marker.txt","utf8").trim())'

**Критерий успеха:** в журнале или трассе выполнения виден **именно вызов** `read` с `marker.txt`, содержимое совпало с файлом и финальный ответ содержит его случайную строку. Если трасса не показывает tool call, проверка **не пройдена**, даже при правильном ответе. Успешный API-ответ Ollama без записи о вызове инструмента также недостаточен [s4](#src-s4)[s7](#src-s7).

Это **инструкция для читателя**, а не демонстрация нашего работающего стенда. Модель может не поддерживать tools, ошибиться в имени инструмента или остановиться на текстовом ответе; не объявляйте её пригодной для автоматизации, пока не проверите трассу и безопасное выполнение. У `agent exec` заданная конфигурация имеет приоритет над его умолчаниями, поэтому перед стартом проверьте фактический allowlist; отсутствие рабочего `--config` — повод **не запускать** тест, а не обходить ограничения [s4](#src-s4)[s5](#src-s5).

## Что делать, если каталог видит модель, но вызова нет?

Если `curl` к `/api/tags` отвечает, а OpenClaw пишет connection refused, проверьте, откуда работает агент: внутри контейнера `127.0.0.1` означает **этот контейнер**, не Ollama на хосте. Сверьте `baseUrl` и доступность API из той же среды, где запущен Gateway или изолированный агент; не открывайте порт наружу без отдельной проверки доступа [s6](#src-s6).

Если вместо инструментального события появляется «JSON вызова» в обычном тексте, первым делом уберите `/v1` и убедитесь в `api: "ollama"`. Если нативный маршрут исправен, следующий кандидат — модель, которая не справляется со схемой инструмента. Флаг `compat.supportsTools: false` в официальной инструкции **отключает** tools и годится для текстового режима, а не исправляет агентную проверку [s1](#src-s1)[s3](#src-s3)[s6](#src-s6). Сверяйте точное имя тега в `ollama list` и `openclaw models status` [s3](#src-s3).

Если агент отвечает медленно или завершается по памяти, не назначайте контекст «на глаз»: Ollama предупреждает, что больший контекст увеличивает память. После загрузки модели `ollama ps` показывает столбцы `CONTEXT` и `PROCESSOR`, но не универсальное минимальное требование VRAM. Подробный разбор — в [гайде по контексту](/zhurnal/ollama-kontekst-dlya-agenta/) [s8](#src-s8). Для модели и инструментов в одном процессе требуется реальный тест на **своём** железе, не вывод из размера файла.

## Как остановить тест и что делать дальше?

После проверки остановите тестовый процесс и при необходимости локальный сервер способом вашей установки; удаляйте **только** специально созданную `openclaw-smoke` после проверки текущего пути и содержимого. Не запускайте агент на рабочих документах до отдельной оценки прав, сетевых выходов и журналирования. Для полного цикла «предложение вызова → действие приложения → результат в истории» откройте [разбор tool calling локальных моделей](/zhurnal/tool-calling-lokalnyh-modeley/) [s7](#src-s7). Если закрытый контур обязателен, выполните [сетевую проверку](/zhurnal/proverka-offline-kontura-ii/); локальная модель сама по себе её не заменяет.

## Источники

1. [OpenClaw — Ollama provider: native API and modes (pinned)](https://raw.githubusercontent.com/openclaw/openclaw/ab68eb892c9699239ccd5e4d9aabeeab2e49716d/docs/providers/ollama.md) — получено 2026-09-25
2. [OpenClaw — Ollama setup and local-only onboarding (pinned)](https://raw.githubusercontent.com/openclaw/openclaw/ab68eb892c9699239ccd5e4d9aabeeab2e49716d/docs/providers/ollama/setup.md) — получено 2026-09-25
3. [OpenClaw — Ollama recipes and model verification (pinned)](https://raw.githubusercontent.com/openclaw/openclaw/ab68eb892c9699239ccd5e4d9aabeeab2e49716d/docs/providers/ollama/recipes.md) — получено 2026-09-25
4. [OpenClaw — CLI agent exec reference (pinned)](https://raw.githubusercontent.com/openclaw/openclaw/ab68eb892c9699239ccd5e4d9aabeeab2e49716d/docs/cli/agent.md) — получено 2026-09-25
5. [OpenClaw — tool and agent permissions (pinned)](https://raw.githubusercontent.com/openclaw/openclaw/ab68eb892c9699239ccd5e4d9aabeeab2e49716d/docs/gateway/security/tool-permissions.md) — получено 2026-09-25
6. [OpenClaw — Ollama troubleshooting (pinned)](https://raw.githubusercontent.com/openclaw/openclaw/ab68eb892c9699239ccd5e4d9aabeeab2e49716d/docs/providers/ollama/troubleshooting.md) — получено 2026-09-25
7. [Ollama — Tool calling](https://docs.ollama.com/capabilities/tool-calling) — получено 2026-09-25
8. [Ollama — Context length and allocated memory](https://docs.ollama.com/context-length) — получено 2026-09-25
