Providers
Ollama
OpenClaw взаємодіє з нативним API Ollama (/api/chat), а не із сумісною з OpenAI
кінцевою точкою /v1. Підтримуються три режими:
| Режим | Що використовується |
|---|---|
| Хмара + локально | Доступний хост Ollama, що обслуговує локальні моделі та (якщо виконано вхід) моделі :cloud |
| Лише хмара | Безпосередньо https://ollama.com, без локального демона |
| Лише локально | Доступний хост Ollama, лише локальні моделі |
Щодо налаштування лише для хмари з окремим ідентифікатором провайдера ollama-cloud див.
Ollama Cloud. Використовуйте посилання ollama-cloud/<model>, коли
потрібно відокремити хмарну маршрутизацію від локального провайдера ollama.
Канонічний ключ конфігурації — baseUrl. baseURL також приймається для
прикладів у стилі OpenAI SDK, але в новій конфігурації слід використовувати baseUrl.
Правила автентифікації
Локальні хости та хости локальної мережі
URL-адреси Ollama для loopback, приватної мережі, .local і простого імені хоста не потребують справжнього bearer-токена. OpenClaw використовує для них маркер ollama-local.
Віддалені хости та хости Ollama Cloud
Загальнодоступні віддалені хости та https://ollama.com потребують справжніх облікових даних: OLLAMA_API_KEY, профілю автентифікації або apiKey провайдера. Для безпосереднього використання розміщеної служби надавайте перевагу провайдеру ollama-cloud.
Власні ідентифікатори провайдерів
Власний провайдер із api: "ollama" дотримується тих самих правил. Наприклад, провайдер ollama-remote, спрямований на приватний хост локальної мережі, може використовувати apiKey: "ollama-local"; підагенти розпізнають цей маркер через хук провайдера Ollama, а не вважають його відсутніми обліковими даними. agents.defaults.memorySearch.provider також може вказувати на власний ідентифікатор провайдера, щоб вбудовування використовували цю кінцеву точку Ollama.
Профілі автентифікації
auth-profiles.json зберігає облікові дані для ідентифікатора провайдера; параметри кінцевої точки (baseUrl, api, моделі, заголовки, тайм-аути) слід указувати в models.providers.<id>. Старі пласкі файли, як-от { "ollama-windows": { "apiKey": "ollama-local" } }, не є форматом середовища виконання; openclaw doctor --fix перетворює їх на канонічний профіль API-ключа ollama-windows:default зі створенням резервної копії. Значення baseUrl у такому застарілому файлі є зайвим і має бути перенесене до конфігурації провайдера.
Область дії вбудовувань пам’яті
Bearer-автентифікація для вбудовувань пам’яті Ollama обмежена хостом, для якого її було оголошено:
- Ключ рівня провайдера надсилається лише на хост цього провайдера.
agents.*.memorySearch.remote.apiKeyнадсилається лише на його віддалений хост вбудовувань.- Чисте значення змінної середовища
OLLAMA_API_KEYвважається домовленістю Ollama Cloud і за замовчуванням не надсилається локальним або самостійно розміщеним хостам.
Початок роботи
Початкове налаштування (рекомендовано)
Запустіть початкове налаштування
openclaw onboardВиберіть Ollama, а потім режим: Хмара + локально, Лише хмара або Лише локально.
Під час нового керованого налаштування OpenClaw спочатку перевіряє типовий або налаштований хост Ollama. Якщо встановлена модель заявляє про підтримку інструментів, спільна послідовність налаштування CLI/macOS одразу пропонує її та перевіряє за допомогою реального завершення. Ця автоматична перевірка ніколи не завантажує модель; якщо придатної встановленої моделі немає, початкове налаштування переходить до звичайного засобу вибору Ollama.
Виберіть модель
Cloud only запитує OLLAMA_API_KEY і пропонує типові хмарні моделі. Cloud + Local та Local only запитують базову URL-адресу Ollama, виявляють доступні моделі й автоматично завантажують вибрану локальну модель, якщо її немає. Установлений тег :latest, як-от gemma4:latest, показується один раз замість дублювання gemma4. Cloud + Local також перевіряє, чи виконано на хості вхід для доступу до хмари.
Перевірте
openclaw models list --provider ollamaНеінтерактивний режим:
openclaw onboard --non-interactive \ --auth-choice ollama \ --custom-base-url "http://ollama-host:11434" \ --custom-model-id "qwen3.5:27b" \ --accept-risk--custom-base-url та --custom-model-id необов’язкові; якщо їх не вказати, використовуватимуться типовий локальний хост і запропонована модель gemma4.
Ручне налаштування
Установіть і запустіть Ollama
Завантажте її з ollama.com/download, а потім завантажте модель:
ollama pull gemma4Для гібридного доступу до хмари запустіть ollama signin на тому самому хості.
Установіть облікові дані
export OLLAMA_API_KEY="ollama-local" # локальний хост або хост локальної мережі, підходить будь-яке значенняexport OLLAMA_API_KEY="your-real-key" # лише https://ollama.comАбо в конфігурації: openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY".
Виберіть модель
openclaw models listopenclaw models set ollama/gemma4Або в конфігурації:
{ agents: { defaults: { model: { primary: "ollama/gemma4" }, }, },}Хмарні моделі через локальний хост
Cloud + Local спрямовує локальні моделі та моделі :cloud через один доступний
хост Ollama — це гібридний процес Ollama й режим, який слід вибрати під час налаштування,
якщо потрібні обидва варіанти.
OpenClaw запитує базову URL-адресу, виявляє локальні моделі та перевіряє
стан ollama signin. Якщо вхід виконано, він пропонує типові розміщені моделі
(kimi-k2.5:cloud, minimax-m2.7:cloud, glm-5.1:cloud, glm-5.2:cloud). Якщо
вхід не виконано, налаштування залишається лише локальним, доки не буде запущено ollama signin.
Для доступу лише до хмари без локального демона використовуйте openclaw onboard --auth-choice ollama-cloud і див. Ollama Cloud — цей варіант не потребує ollama signin або запущеного сервера:
openclaw onboard --auth-choice ollama-cloudopenclaw models set ollama-cloud/kimi-k2.5:cloudСписок хмарних моделей, що відображається під час openclaw onboard, динамічно отримується з
https://ollama.com/api/tags і обмежений 500 записами, тому засіб вибору відображає
поточний каталог розміщених моделей. Якщо ollama.com недоступний або не повертає
моделей під час налаштування, OpenClaw використовує як резервний варіант жорстко закодований список рекомендованих моделей, щоб
початкове налаштування все одно завершилося.
Виявлення моделей (неявний провайдер)
Коли задано OLLAMA_API_KEY (або профіль автентифікації) і не визначено ні
models.providers.ollama, ні іншого власного провайдера з api: "ollama",
OpenClaw виявляє моделі з http://127.0.0.1:11434:
| Поведінка | Подробиці |
|---|---|
| Запит каталогу | /api/tags |
| Виявлення можливостей | /api/show у режимі найкращих зусиль зчитує contextWindow, параметри Modelfile num_ctx і можливості (зір/інструменти/міркування) |
| Моделі із зором | Можливість vision з /api/show позначає модель як здатну обробляти зображення (input: ["text", "image"]) |
| Виявлення міркування | Використовує можливість thinking з /api/show, якщо вона доступна; якщо Ollama не надає можливостей, застосовує евристику за назвою (r1, reason, reasoning, think). glm-5.2:cloud та deepseek-v4-flash|pro:cloud завжди вважаються моделями міркування незалежно від заявлених можливостей. |
| Обмеження токенів | maxTokens за замовчуванням дорівнює максимальному обмеженню токенів Ollama в OpenClaw |
| Вартість | Усі значення вартості — 0 |
ollama listopenclaw models listУстановлення models.providers.ollama із явним масивом models або
власного провайдера з api: "ollama" і не-loopback значенням baseUrl вимикає
автоматичне виявлення; тоді моделі потрібно визначати вручну (див.
Конфігурація). Запис models.providers.ollama, спрямований на
розміщений https://ollama.com, також пропускає виявлення, оскільки моделями Ollama Cloud
керує провайдер. Власні loopback-провайдери, як-от
http://127.0.0.2:11434, усе ще вважаються локальними й зберігають автоматичне виявлення.
Можна використовувати повне посилання, як-от ollama/<pulled-model>:latest, без
власноруч створеного запису models.json; OpenClaw розпізнає його динамічно. Для хостів,
на яких виконано вхід, вибір відсутнього у списку посилання ollama/<model>:cloud перевіряє саме цю
модель за допомогою /api/show і додає її до каталогу середовища виконання, лише якщо Ollama
підтверджує метадані — посилання з помилками усе одно не розпізнаються як відомі моделі.
Димові тести
Для вузької текстової перевірки без повної поверхні інструментів агента:
OLLAMA_API_KEY=ollama-local \ openclaw infer model run \ --local \ --model ollama/llama3.2:latest \ --prompt "Відповідай точно так: pong" \ --jsonДодайте --file із зображенням для спрощеної перевірки моделі зору (підтримуються PNG/JPEG/WebP;
файли, що не є зображеннями, відхиляються до виклику Ollama — використовуйте
openclaw infer audio transcribe для аудіо):
OLLAMA_API_KEY=ollama-local \ openclaw infer model run \ --local \ --model ollama/qwen2.5vl:7b \ --prompt "Опиши це зображення одним реченням." \ --file ./photo.jpg \ --jsonЖоден із цих варіантів не завантажує інструменти чату, пам’ять або контекст сеансу. Якщо він успішний, а звичайні відповіді агента не працюють, імовірно, проблема полягає в здатності моделі працювати з інструментами або агентом, а не в кінцевій точці.
Вибір моделі за допомогою /model ollama/<model> є точним вибором користувача: якщо
налаштований baseUrl недоступний, наступна відповідь завершується помилкою провайдера,
а не непомітним переходом до іншої налаштованої моделі.
Ізольовані завдання Cron додають одну локальну перевірку безпеки перед початком ходу агента:
якщо вибрана модель відповідає локальному/приватно-мережевому/.local провайдеру Ollama
і /api/tags недоступний, OpenClaw записує цей запуск як
skipped, зазначаючи модель у тексті помилки. Ця перевірка кінцевої точки кешується на
5 хвилин для кожного хоста, тому повторювані завдання Cron для зупиненого демона не
запускають усі запити, приречені на помилку.
Перевірка наживо:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 \ pnpm test:live -- extensions/ollama/ollama.live.test.tsДля Ollama Cloud спрямуйте той самий тест наживо на розміщену кінцеву точку (за замовчуванням
вбудовування пропускаються; примусово ввімкніть їх за допомогою OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1, оскільки
хмарний ключ може не надавати доступ до /api/embed):
export OLLAMA_API_KEY='<your-ollama-cloud-api-key>'OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 \OPENCLAW_LIVE_OLLAMA_BASE_URL=https://ollama.com \OPENCLAW_LIVE_OLLAMA_MODEL=glm-5.1:cloud \OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=1 \pnpm test:live -- extensions/ollama/ollama.live.test.tsЩоб додати модель, завантажте її — її буде виявлено автоматично:
ollama pull mistralЛокальний для Node інференс
Агенти можуть делегувати коротке завдання моделі Ollama на спареному настільному комп’ютері або
серверному Node. Запит і відповідь передаються через наявне автентифіковане
з’єднання Gateway/Node; запит виконується через власну loopback-кінцеву точку Ollama
цього Node (http://127.0.0.1:11434).
Запустіть Ollama на Node
ollama pull qwen3:0.6bollama listПідключіть хост Node
openclaw node run \ --host <gateway-host> \ --port 18789 \ --display-name "Local inference"Схваліть пристрій і його команди Node на хості Gateway, а потім перевірте:
openclaw devices listopenclaw devices approve <deviceRequestId>openclaw nodes pendingopenclaw nodes approve <nodeRequestId>openclaw nodes status --connectedПерше підключення або оновлення, що додає команди Ollama, може ініціювати
схвалення команд Node. Якщо Node підключається, не оголошуючи
ollama.models і ollama.chat, знову перевірте openclaw nodes pending.
Використовуйте його з агента
Вбудований plugin Ollama надає інструмент node_inference. Агенти спочатку викликають
action: "discover", а потім action: "run" із Node і моделлю з
цього результату (run може не вказувати Node, якщо підключено
рівно один придатний Node). Наприклад: «Вияви моделі Ollama на моїх Node, а потім використай
найшвидшу завантажену модель, щоб підсумувати цей текст».
Виявлення зчитує /api/tags, перевіряє можливості /api/show і використовує
/api/ps, коли він доступний, щоб першими ранжувати вже завантажені моделі. Воно повертає лише
локальні моделі, які Ollama позначає як придатні для чату (можливість completion) —
рядки Ollama Cloud і моделі лише для вбудовувань виключаються. Кожен запуск вимикає
міркування моделі та за замовчуванням обмежує вивід 512 токенами (жорстке обмеження 8192), якщо
виклик інструмента не запитує інше значення maxTokens; деякі моделі (наприклад GPT-OSS)
не підтримують вимкнення міркування й можуть усе одно виводити токени міркування.
Щоб Ollama продовжувала працювати на Node без надання агентам доступу до неї:
openclaw config set plugins.entries.ollama.config.nodeInference.enabled falseПерезапустіть Node (openclaw node restart або зупиніть і повторно запустіть openclaw node run
для сеансу на передньому плані). Node припинить оголошувати ollama.models і
ollama.chat; сама Ollama та провайдер Ollama у Gateway залишаться без змін.
Поверніть значення true і перезапустіть, щоб увімкнути знову; змінена поверхня
команд може знову потребувати схвалення openclaw nodes pending після повторного підключення.
Перевірте команди Node безпосередньо, без ходу агента:
openclaw nodes invoke \ --node "Local inference" \ --command ollama.models \ --params '{}' \ --invoke-timeout 90000 \ --timeout 100000 openclaw nodes invoke \ --node "Local inference" \ --command ollama.chat \ --params '{"model":"qwen3:0.6b","prompt":"Reply with exactly: pong","maxTokens":32,"timeoutMs":120000}' \ --invoke-timeout 130000 \ --timeout 140000--invoke-timeout обмежує час, протягом якого Node має виконати команду;
--timeout обмежує загальну тривалість виклику Gateway і має бути більшим.
Локальний для Node інференс завжди використовує власну loopback-кінцеву точку Node — він
не використовує повторно налаштований віддалений/хмарний models.providers.ollama.baseUrl.
Команди Node за замовчуванням доступні на хостах Node з macOS, Linux і Windows
та підпорядковуються звичайній політиці спарювання Node і команд.
Комп’ютерний зір та опис зображень
Вбудований plugin Ollama реєструє Ollama як провайдера розуміння медіа з підтримкою зображень, тому OpenClaw може спрямовувати явні запити на опис зображень і налаштовані типові моделі зображень через локальні або розміщені моделі комп’ютерного зору Ollama.
ollama pull qwen2.5vl:7bexport OLLAMA_API_KEY="ollama-local"openclaw infer image describe --file ./photo.jpg --model ollama/qwen2.5vl:7b --json--model має бути повним посиланням <provider/model>; якщо його задано, infer image describe спочатку намагається використати цю модель, а не пропускає опис для моделей,
які вже мають вбудовану підтримку комп’ютерного зору. Якщо виклик завершується помилкою, OpenClaw може продовжити
через agents.defaults.imageModel.fallbacks; помилки підготовки файлу/URL
спричиняють збій до спроби резервного варіанта. Використовуйте infer image describe для процесу
розуміння зображень OpenClaw і налаштованого imageModel; використовуйте infer model run --file для необробленої мультимодальної перевірки з власним запитом.
Щоб зробити Ollama типовим провайдером розуміння зображень для вхідних медіа:
{ agents: { defaults: { imageModel: { primary: "ollama/qwen2.5vl:7b", }, }, },}Надавайте перевагу повному посиланню ollama/<model>. Посилання imageModel без префікса, як-от
qwen2.5vl:7b, нормалізується до ollama/qwen2.5vl:7b лише тоді, коли саме ця модель
зазначена в models.providers.ollama.models із
input: ["text", "image"] і жоден інший налаштований провайдер зображень не надає
той самий ідентифікатор без префікса; інакше явно використовуйте префікс провайдера.
Повільні локальні моделі комп’ютерного зору можуть потребувати довшого тайм-ауту розуміння зображень, ніж
хмарні моделі, і можуть аварійно завершуватися на обладнанні з обмеженими ресурсами, якщо Ollama намагається
виділити повний заявлений контекст комп’ютерного зору моделі. Установіть тайм-аут
можливості й обмежте num_ctx:
{ models: { providers: { ollama: { models: [ { id: "qwen2.5vl:7b", name: "qwen2.5vl:7b", input: ["text", "image"], params: { num_ctx: 2048, keep_alive: "1m" }, }, ], }, }, }, tools: { media: { image: { timeoutSeconds: 180, models: [{ provider: "ollama", model: "qwen2.5vl:7b", timeoutSeconds: 300 }], }, }, },}Цей тайм-аут застосовується до розуміння вхідних зображень і до явного
інструмента image. models.providers.ollama.timeoutSeconds і далі керує
базовим обмеженням HTTP-запиту Ollama для звичайних викликів моделі.
Перевірка наживо:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA_IMAGE=1 \ pnpm test:live -- src/agents/tools/image-tool.ollama.live.test.tsЯкщо ви визначаєте models.providers.ollama.models вручну, явно позначте моделі
комп’ютерного зору:
{ id: "qwen2.5vl:7b", name: "qwen2.5vl:7b", input: ["text", "image"], contextWindow: 128000, maxTokens: 8192,}OpenClaw відхиляє запити на опис зображень для моделей, не позначених
як придатні для роботи із зображеннями. За неявного виявлення ця інформація надходить із можливості
комп’ютерного зору /api/show.
Конфігурація
Базова (неявне виявлення)
export OLLAMA_API_KEY="ollama-local"Явна (моделі вручну)
Використовуйте явну конфігурацію для розміщення в хмарі, нестандартного хоста/порту, примусово заданих контекстних вікон або повністю ручних списків моделей:
{ models: { providers: { ollama: { baseUrl: "https://ollama.com", apiKey: "OLLAMA_API_KEY", api: "ollama", models: [ { id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", reasoning: false, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128000, maxTokens: 8192 } ] } } }}Власна базова URL-адреса
Явна конфігурація вимикає автоматичне виявлення, тому моделі потрібно вказати у списку:
{ models: { providers: { ollama: { apiKey: "ollama-local", baseUrl: "http://ollama-host:11434", // Без /v1 — URL-адреса нативного API Ollama api: "ollama", // Явно: гарантує нативну поведінку виклику інструментів timeoutSeconds: 300, // Необов’язково: довший бюджет підключення/потоку для холодних локальних моделей models: [ { id: "qwen3:32b", name: "qwen3:32b", params: { keep_alive: "15m", // Необов’язково: зберігати модель завантаженою між ходами }, }, ], }, }, },}Поширені рецепти
Замініть ідентифікатори моделей точними назвами з ollama list або
openclaw models list --provider ollama.
Локальна модель з автоматичним виявленням
Ollama на тому самому комп’ютері, що й Gateway, виявляється автоматично:
ollama serveollama pull gemma4export OLLAMA_API_KEY="ollama-local"openclaw models list --provider ollamaopenclaw models set ollama/gemma4Не додавайте блок models.providers.ollama, якщо моделі не потрібно задавати вручну.
Хост Ollama у LAN з моделями, заданими вручну
{ models: { providers: { ollama: { baseUrl: "http://gpu-box.local:11434", apiKey: "ollama-local", api: "ollama", timeoutSeconds: 300, contextWindow: 32768, maxTokens: 8192, models: [ { id: "qwen3.5:9b", name: "qwen3.5:9b", reasoning: true, input: ["text"], params: { num_ctx: 32768, thinking: false, keep_alive: "15m", }, }, ], }, }, }, agents: { defaults: { model: { primary: "ollama/qwen3.5:9b" }, }, },}contextWindow — це бюджет контексту OpenClaw; params.num_ctx надсилається до
Ollama. Узгоджуйте їх, якщо обладнання не може виконувати модель із повним
заявленим контекстом.
Лише Ollama Cloud
Без локального демона, безпосередньо розміщені моделі:
export OLLAMA_API_KEY="your-ollama-api-key"{ models: { providers: { ollama: { baseUrl: "https://ollama.com", apiKey: "OLLAMA_API_KEY", api: "ollama", models: [ { id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", reasoning: false, input: ["text", "image"], contextWindow: 128000, maxTokens: 8192, }, ], }, }, }, agents: { defaults: { model: { primary: "ollama/kimi-k2.5:cloud" }, }, },}Для спеціального ідентифікатора провайдера ollama-cloud замість цієї структури див.
Ollama Cloud.
Хмарні та локальні моделі через демон із виконаним входом
ollama signinollama pull gemma4{ models: { providers: { ollama: { baseUrl: "http://127.0.0.1:11434", apiKey: "ollama-local", api: "ollama", timeoutSeconds: 300, models: [ { id: "gemma4", name: "gemma4", input: ["text"] }, { id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", input: ["text", "image"] }, ], }, }, }, agents: { defaults: { model: { primary: "ollama/gemma4", fallbacks: ["ollama/kimi-k2.5:cloud"], }, }, },}Кілька хостів Ollama
Власні ідентифікатори провайдерів під час роботи з кількома серверами Ollama; кожен має власний хост, моделі, автентифікацію та час очікування.
{ models: { providers: { "ollama-fast": { baseUrl: "http://mini.local:11434", apiKey: "ollama-local", api: "ollama", contextWindow: 32768, models: [{ id: "gemma4", name: "gemma4", input: ["text"] }], }, "ollama-large": { baseUrl: "http://gpu-box.local:11434", apiKey: "ollama-local", api: "ollama", timeoutSeconds: 420, contextWindow: 131072, maxTokens: 16384, models: [{ id: "qwen3.5:27b", name: "qwen3.5:27b", input: ["text"] }], }, }, }, agents: { defaults: { model: { primary: "ollama-fast/gemma4", fallbacks: ["ollama-large/qwen3.5:27b"], }, }, },}OpenClaw видаляє префікс активного провайдера (за відсутності використовує простий
префікс ollama/) перед викликом Ollama, тому ollama-large/qwen3.5:27b
надходить до Ollama як qwen3.5:27b.
Полегшений профіль локальної моделі
Деякі локальні моделі опрацьовують прості запити, але мають труднощі з повним набором інструментів агента. Обмежте інструменти й контекст, перш ніж змінювати глобальні параметри середовища виконання:
{ agents: { list: [ { id: "local", experimental: { localModelLean: true, }, model: { primary: "ollama/gemma4" }, }, ], }, models: { providers: { ollama: { baseUrl: "http://127.0.0.1:11434", apiKey: "ollama-local", api: "ollama", contextWindow: 32768, models: [ { id: "gemma4", name: "gemma4", input: ["text"], params: { num_ctx: 32768 }, compat: { supportsTools: false }, }, ], }, }, },}Використовуйте compat.supportsTools: false, лише коли модель або сервер стабільно
зазнає помилки на схемах інструментів — це обмінює можливості агента на стабільність.
localModelLean вилучає ресурсомісткі інструменти браузера, cron, повідомлень, генерування
медіа, голосу та PDF із безпосереднього набору інструментів агента, якщо вони явно не потрібні,
і переміщує більші каталоги за Tool Search. Це не змінює контекст середовища виконання
Ollama чи режим мислення. Поєднуйте це з params.num_ctx і
params.thinking: false для невеликих моделей мислення в стилі Qwen, які зациклюються або
витрачають свій бюджет на приховані міркування.
Вибір моделі
{ agents: { defaults: { model: { primary: "ollama/gpt-oss:20b", fallbacks: ["ollama/llama3.3", "ollama/qwen2.5-coder:32b"], }, }, },}Власні ідентифікатори провайдерів працюють так само: для посилання, що використовує префікс
активного провайдера, як-от ollama-spark/qwen3:32b, OpenClaw видаляє цей префікс перед
викликом Ollama, надсилаючи qwen3:32b.
Для повільних локальних моделей надавайте перевагу налаштуванню на рівні провайдера, перш ніж збільшувати час очікування всього середовища виконання агента:
{ models: { providers: { ollama: { timeoutSeconds: 300, models: [ { id: "gemma4:26b", name: "gemma4:26b", params: { keep_alive: "15m" }, }, ], }, }, },}timeoutSeconds охоплює HTTP-запит до моделі: установлення з’єднання, заголовки,
потокове передавання тіла й загальне переривання захищеного отримання. params.keep_alive
передається як верхньорівневий keep_alive у нативних запитах /api/chat; задайте його для
окремої моделі, коли час завантаження під час першого звернення є вузьким місцем.
Швидка перевірка
# Демон Ollama доступний із цієї машиниcurl http://127.0.0.1:11434/api/tags # Каталог OpenClaw і вибрана модельopenclaw models list --provider ollamaopenclaw models status # Пряма базова перевірка моделіopenclaw infer model run \ --model ollama/gemma4 \ --prompt "Відповідай точно: ok"Для віддалених хостів замініть 127.0.0.1 на хост baseUrl. Якщо curl
працює, а OpenClaw — ні, перевірте, чи Gateway працює на іншій
машині, у контейнері або під іншим обліковим записом служби.
Вебпошук Ollama
OpenClaw постачається з вебпошуком Ollama як провайдером web_search.
| Властивість | Подробиці |
|---|---|
| Хост | models.providers.ollama.baseUrl, якщо задано, інакше http://127.0.0.1:11434; https://ollama.com використовує розміщений API безпосередньо |
| Автентифікація | Без ключа для локального хоста з виконаним входом; OLLAMA_API_KEY або налаштована автентифікація провайдера для прямого пошуку https://ollama.com чи захищених автентифікацією хостів |
| Вимога | Локальні/самостійно розміщені хости мають працювати та мати виконаний вхід за допомогою ollama signin; для прямого розміщеного пошуку потрібен baseUrl: "https://ollama.com" і справжній ключ API |
Виберіть його під час openclaw onboard або openclaw configure --section web чи задайте:
{ tools: { web: { search: { provider: "ollama", }, }, },}Для прямого розміщеного пошуку через Ollama Cloud:
{ models: { providers: { ollama: { baseUrl: "https://ollama.com", apiKey: "OLLAMA_API_KEY", api: "ollama", models: [{ id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", input: ["text"] }], }, }, }, tools: { web: { search: { provider: "ollama" }, }, },}Для самостійно розміщеного хоста OpenClaw спочатку намагається використати локальний проксі
/api/experimental/web_search, а потім переходить до розміщеного шляху /api/web_search на тому самому хості;
локальний демон із виконаним входом зазвичай відповідає через локальний проксі. Прямі виклики
https://ollama.com завжди використовують розміщену кінцеву точку /api/web_search.
Розширена конфігурація
Застарілий режим, сумісний з OpenAI
Явно задайте api: "openai-completions" для проксі за адресою
/v1/chat/completions:
{ models: { providers: { ollama: { baseUrl: "http://ollama-host:11434/v1", api: "openai-completions", injectNumCtxForOpenAICompat: true, // типове значення: true apiKey: "ollama-local", models: [...] } } }}Цей режим може не підтримувати потокове передавання та виклик інструментів одночасно; для моделі
може знадобитися params: { streaming: false }.
У цьому режимі OpenClaw типово додає options.num_ctx, щоб Ollama
не переходив непомітно до контексту на 4096 токенів. Якщо проксі відхиляє
невідомі поля options, вимкніть це:
{ models: { providers: { ollama: { baseUrl: "http://ollama-host:11434/v1", api: "openai-completions", injectNumCtxForOpenAICompat: false, apiKey: "ollama-local", models: [...] } } }}Контекстні вікна
Для автоматично виявлених моделей OpenClaw використовує контекстне вікно, про яке повідомляє
/api/show, включно з більшими значеннями PARAMETER num_ctx із власних
Modelfile; інакше використовується типове контекстне вікно Ollama в OpenClaw.
contextWindow, contextTokens і maxTokens на рівні провайдера задають
типові значення для кожної моделі цього провайдера, які можна перевизначити для окремої
моделі. contextWindow — це власний бюджет запиту/Compaction OpenClaw. Нативні
запити /api/chat не задають options.num_ctx, якщо ви явно не задасте
params.num_ctx, тому Ollama застосовує власне типове значення моделі,
OLLAMA_CONTEXT_LENGTH або значення на основі VRAM; недійсні, нульові, від’ємні
або нескінченні значення params.num_ctx ігноруються. Якщо старіша конфігурація використовувала
лише contextWindow/maxTokens, щоб примусово задати контекст нативного запиту, виконайте
openclaw doctor --fix, щоб скопіювати їх у params.num_ctx. Адаптер,
сумісний з OpenAI, як і раніше типово додає options.num_ctx із
налаштованого params.num_ctx або contextWindow; вимкніть це за допомогою
injectNumCtxForOpenAICompat: false, якщо сервер відхиляє options.
Записи нативних моделей також приймають загальні параметри середовища виконання Ollama в
params, які передаються як нативні /api/chat options: num_keep, seed,
num_predict, top_k, top_p, min_p, typical_p, repeat_last_n,
temperature, repeat_penalty, presence_penalty, frequency_penalty,
stop, num_batch, num_gpu, main_gpu, use_mmap і num_thread.
Кілька ключів (format, keep_alive, truncate, shift) передаються як
верхньорівневі поля запиту, а не як вкладені options. OpenClaw передає
лише ці ключі запиту Ollama, тому параметри лише для середовища виконання, як-от
streaming, ніколи не надсилаються до Ollama. Використовуйте params.think (або
params.thinking), щоб задати верхньорівневий think; false вимикає мислення
на рівні API для моделей мислення в стилі Qwen.
{ models: { providers: { ollama: { contextWindow: 32768, models: [ { id: "llama3.3", contextWindow: 131072, maxTokens: 65536, params: { num_ctx: 32768, temperature: 0.7, top_p: 0.9, thinking: false, }, } ] } } }}agents.defaults.models["ollama/<model>"].params.num_ctx для окремої моделі також
працює; явний запис моделі провайдера має пріоритет, якщо задано обидва.
Керування мисленням
OpenClaw передає параметр мислення так, як очікує Ollama: верхньорівневий think, а не
options.think. Автоматично виявлені моделі, для яких /api/show повідомляє про
можливість thinking, надають /think low, /think medium, /think high
і /think max; моделі без мислення надають лише /think off.
openclaw agent --model ollama/gemma4 --thinking offopenclaw agent --model ollama/gemma4 --thinking lowАбо встановіть модель за замовчуванням:
{ agents: { defaults: { models: { "ollama/gemma4": { thinking: "low", }, }, }, },}Параметри окремої моделі params.think/params.thinking можуть вимкнути або примусово ввімкнути
міркування API для певної моделі. OpenClaw зберігає цю явну конфігурацію,
коли активний запуск має лише неявне значення за замовчуванням off; команда середовища виконання
з режимом, відмінним від вимкненого, наприклад /think medium, усе одно має вищий пріоритет. Запит
із увімкненим міркуванням ніколи не надсилається моделі, явно позначеній
reasoning: false; запит think: false надсилається завжди.
Моделі з міркуванням
Моделі з назвами deepseek-r1, reasoning, reason або think за замовчуванням
вважаються здатними до міркування — додаткова конфігурація не потрібна:
ollama pull deepseek-r1:32bВартість моделей
Ollama працює локально й безплатно, тому вартість усіх моделей становить 0 як для
автоматично виявлених, так і для визначених вручну моделей.
Вбудовування пам’яті
Вбудований Plugin Ollama реєструє постачальника вбудовувань пам’яті для
пошуку в пам’яті. Він використовує налаштовані базову URL-адресу Ollama
і ключ API, викликає /api/embed та, коли це можливо, об’єднує кілька фрагментів пам’яті
в один запит input.
Коли proxy.enabled=true, запити вбудовування до точного локального
loopback-джерела хоста, отриманого з налаштованого baseUrl, використовують захищений
прямий шлях OpenClaw замість керованого проксі пересилання. Налаштоване
ім’я хоста має бути саме localhost або літералом loopback-IP-адреси — DNS-імена,
які лише розв’язуються в loopback-адресу, усе одно використовують шлях керованого проксі. Хости Ollama
у LAN, tailnet, приватній або публічній мережі завжди залишаються на
шляху керованого проксі, а переспрямування на інший хост або порт не успадковують
довіру. proxy.loopbackMode: "proxy" усе одно спрямовує loopback-трафік через
проксі; proxy.loopbackMode: "block" забороняє його до встановлення з’єднання —
див. Керований проксі.
| Властивість | Значення |
|---|---|
| Модель за замовчуванням | nomic-embed-text |
| Автоматичне завантаження | Так, якщо модель відсутня локально |
| Стандартна паралельність вбудовування | 1 (для інших постачальників стандартне значення вище; збільште за допомогою nonBatchConcurrency, якщо хост це витримає) |
Вбудовування під час запиту використовують префікси отримання для моделей, які їх потребують
або рекомендують: nomic-embed-text, qwen3-embedding та
mxbai-embed-large. Пакети документів залишаються необробленими, тому наявні індекси
не потребують міграції формату.
{ agents: { defaults: { memorySearch: { provider: "ollama", remote: { // Стандартне значення для Ollama. Збільште на потужніших хостах, якщо повторне індексування надто повільне. nonBatchConcurrency: 1, }, }, }, },}Для віддаленого хоста вбудовувань обмежте автентифікацію цим хостом:
{ agents: { defaults: { memorySearch: { provider: "ollama", model: "nomic-embed-text", remote: { baseUrl: "http://gpu-box.local:11434", apiKey: "ollama-local", nonBatchConcurrency: 2, }, }, }, },}Конфігурація потокового передавання
Ollama за замовчуванням використовує власний API (/api/chat), який одночасно підтримує
потокове передавання та виклики інструментів — спеціальна конфігурація не потрібна.
Для власних запитів керування міркуванням передається безпосередньо: /think off
і openclaw agent --thinking off надсилають верхньорівневий think: false, якщо
не налаштовано явний params.think/params.thinking; /think low|medium|high надсилають відповідний рядок інтенсивності; /think max відповідає
найвищій інтенсивності Ollama — think: "high".
Усунення несправностей
Цикл аварійного завершення WSL2 (повторні перезапуски)
У WSL2 з NVIDIA/CUDA офіційний інсталятор Ollama для Linux створює
модуль systemd ollama.service із Restart=always. Якщо ця служба
запускається автоматично й завантажує модель із підтримкою GPU під час запуску WSL2, Ollama може закріпити
пам’ять хоста під час завантаження; механізм повернення пам’яті Hyper-V не завжди може звільнити
ці сторінки, тому Windows може завершити роботу віртуальної машини WSL2, systemd перезапускає
Ollama, і цикл повторюється.
Ознаки: повторні перезапуски або завершення WSL2, високе навантаження на CPU в app.slice чи
ollama.service одразу після запуску WSL2, а також SIGTERM від systemd, а не
від засобу завершення процесів через нестачу пам’яті Linux.
OpenClaw записує попередження під час запуску, коли виявляє WSL2, увімкнений
ollama.service із Restart=always та видимі маркери CUDA.
Спосіб усунення:
sudo systemctl disable ollamaУ Windows додайте наведене нижче до %USERPROFILE%\.wslconfig, а потім виконайте
wsl --shutdown:
[experimental]autoMemoryReclaim=disabledАбо скоротіть час підтримання активності чи запускайте Ollama вручну лише за потреби:
export OLLAMA_KEEP_ALIVE=5mollama serveДив. ollama/ollama#11317.
Ollama не виявлено
Переконайтеся, що Ollama працює, OLLAMA_API_KEY (або профіль автентифікації) налаштовано,
а models.providers.ollama не визначено явно:
ollama servecurl http://localhost:11434/api/tagsНемає доступних моделей
Завантажте модель локально або явно визначте її в
models.providers.ollama:
ollama list # Переглянути встановлені моделіollama pull gemma4ollama pull gpt-oss:20bollama pull llama3.3 # Або іншу модельУ з’єднанні відмовлено
# Перевірити, чи працює Ollamaps aux | grep ollama # Або перезапустити Ollamaollama serveВіддалений хост працює з curl, але не з OpenClaw
Перевірте на тій самій машині та в тому самому середовищі виконання, де працює Gateway:
openclaw gateway status --deepcurl http://ollama-host:11434/api/tagsПоширені причини:
baseUrlуказує наlocalhost, але Gateway працює в Docker або на іншому хості.- URL-адреса використовує
/v1, через що вибирається поведінка, сумісна з OpenAI, замість власної поведінки Ollama. - Віддалений хост потребує змін у брандмауері або прив’язуванні до LAN.
- Модель є в демоні на вашому ноутбуці, але не у віддаленому демоні.
Модель виводить JSON інструменту як текст
Зазвичай постачальник працює в режимі сумісності з OpenAI або модель не може обробляти схеми інструментів. Віддавайте перевагу власному режиму:
{ models: { providers: { ollama: { baseUrl: "http://ollama-host:11434", api: "ollama", }, }, },}Якщо невелика локальна модель усе одно не може обробити схеми інструментів, установіть
compat.supportsTools: false у записі цієї моделі та повторіть перевірку.
Kimi або GLM повертає спотворені символи
Довгі, позбавлені мовного змісту послідовності символів у відповідях розміщених Kimi/GLM вважаються невдалим викликом постачальника, а не успішною відповіддю, тому замість збереження пошкодженого тексту в сеансі застосовується звичайна обробка повторних спроб, резервної моделі або помилок.
Якщо це повториться, зафіксуйте назву моделі, поточний файл сеансу та
чи використовував запуск Cloud + Local або Cloud only, а потім спробуйте новий
сеанс і резервну модель:
openclaw infer model run --model ollama/kimi-k2.5:cloud --prompt "Відповідай точно: ok" --jsonopenclaw models set ollama/gemma4Холодна локальна модель перевищує час очікування
Великим локальним моделям може знадобитися багато часу для першого завантаження. Обмежте час очікування постачальником Ollama та за потреби залишайте модель завантаженою між ходами:
{ models: { providers: { ollama: { timeoutSeconds: 300, models: [ { id: "gemma4:26b", name: "gemma4:26b", params: { keep_alive: "15m" }, }, ], }, }, },}Якщо сам хост повільно приймає з’єднання, timeoutSeconds також
подовжує захищений час очікування з’єднання для цього постачальника.
Модель із великим контекстом працює надто повільно або вичерпує пам’ять
Багато моделей заявляють контексти, завеликі для комфортної роботи
на вашому обладнанні. Власний режим Ollama використовує стандартне значення свого середовища виконання, якщо
не встановлено params.num_ctx. Обмежте і бюджет OpenClaw, і контекст запиту Ollama,
щоб забезпечити передбачувану затримку до першого токена:
{ models: { providers: { ollama: { contextWindow: 32768, maxTokens: 8192, models: [ { id: "qwen3.5:9b", name: "qwen3.5:9b", params: { num_ctx: 32768, thinking: false }, }, ], }, }, },}Зменште contextWindow, якщо OpenClaw надсилає надто великий запит. Зменште
params.num_ctx, якщо контекст середовища виконання Ollama завеликий для машини.
Зменште maxTokens, якщо генерування триває надто довго.
Пов’язані матеріали
Налаштування лише для хмари зі спеціальним постачальником ollama-cloud.
Огляд усіх постачальників, посилань на моделі та поведінки перемикання в разі відмови.
Як вибирати й налаштовувати моделі.
Повні відомості про налаштування та поведінку вебпошуку на базі Ollama.
Повний довідник із конфігурації.