chore(i18n): refresh uk translations
This commit is contained in:
parent
c27d754e0e
commit
0bc0f10103
@ -5,36 +5,36 @@ read_when:
|
||||
summary: Необов’язкове налаштування та онбординг OpenClaw на основі Docker
|
||||
title: Docker
|
||||
x-i18n:
|
||||
generated_at: "2026-04-26T21:44:10Z"
|
||||
generated_at: "2026-04-26T21:53:32Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: fd8a20ac45744bb02a324de86f9b374ca1a96d7c6be2b6216967813bf0139fd5
|
||||
source_hash: 66e79a53377c394ed581b856ee65946bc2a08a6fe66a85ed4f46fd4c7635e5e0
|
||||
source_path: install/docker.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Docker є **необов’язковим**. Використовуйте його лише тоді, коли вам потрібен контейнеризований Gateway або якщо ви хочете перевірити Docker-потік.
|
||||
Docker **необов’язковий**. Використовуйте його лише якщо вам потрібен контейнеризований Gateway або якщо ви хочете перевірити потік Docker.
|
||||
|
||||
## Чи підходить мені Docker?
|
||||
|
||||
- **Так**: вам потрібне ізольоване, тимчасове середовище Gateway або ви хочете запускати OpenClaw на хості без локальних встановлень.
|
||||
- **Ні**: ви працюєте на власній машині й просто хочете найшвидший цикл розробки. Натомість скористайтеся звичайним потоком встановлення.
|
||||
- **Примітка щодо ізоляції**: типовий бекенд sandbox використовує Docker, коли ізоляцію ввімкнено, але за замовчуванням ізоляція вимкнена і **не** вимагає запуску всього Gateway у Docker. Також доступні бекенди sandbox SSH і OpenShell. Див. [Ізоляція](/uk/gateway/sandboxing).
|
||||
- **Так**: вам потрібне ізольоване, тимчасове середовище Gateway або ви хочете запустити OpenClaw на хості без локальних встановлень.
|
||||
- **Ні**: ви запускаєте все на власній машині й просто хочете найшвидший цикл розробки. Натомість використовуйте звичайний потік встановлення.
|
||||
- **Примітка щодо пісочниці**: типовий бекенд пісочниці використовує Docker, коли пісочницю ввімкнено, але пісочниця за замовчуванням вимкнена і **не** вимагає запуску всього Gateway у Docker. Також доступні бекенди пісочниці SSH і OpenShell. Див. [Пісочниця](/uk/gateway/sandboxing).
|
||||
|
||||
## Передумови
|
||||
|
||||
- Docker Desktop (або Docker Engine) + Docker Compose v2
|
||||
- Щонайменше 2 ГБ RAM для збирання образу (`pnpm install` може бути примусово завершено через OOM на хостах із 1 ГБ із кодом виходу 137)
|
||||
- Щонайменше 2 ГБ RAM для збирання образу (`pnpm install` може бути примусово завершено через OOM на хостах із 1 ГБ з кодом виходу 137)
|
||||
- Достатньо місця на диску для образів і журналів
|
||||
- Якщо запуск відбувається на VPS/публічному хості, перегляньте
|
||||
[Посилення безпеки для мережевої експозиції](/uk/gateway/security),
|
||||
- Якщо запускаєте на VPS/публічному хості, перегляньте
|
||||
[Посилення безпеки для мережевої доступності](/uk/gateway/security),
|
||||
особливо політику брандмауера Docker `DOCKER-USER`.
|
||||
|
||||
## Контейнеризований Gateway
|
||||
|
||||
<Steps>
|
||||
<Step title="Зберіть образ">
|
||||
Із кореня репозиторію запустіть скрипт налаштування:
|
||||
У корені репозиторію виконайте скрипт налаштування:
|
||||
|
||||
```bash
|
||||
./scripts/docker/setup.sh
|
||||
@ -54,14 +54,14 @@ Docker є **необов’язковим**. Використовуйте йог
|
||||
</Step>
|
||||
|
||||
<Step title="Завершіть онбординг">
|
||||
Скрипт налаштування автоматично запускає онбординг. Він:
|
||||
Скрипт налаштування запускає онбординг автоматично. Він:
|
||||
|
||||
- запропонує ввести ключі API провайдерів
|
||||
- запитає API-ключі провайдера
|
||||
- згенерує токен Gateway і запише його в `.env`
|
||||
- запустить Gateway через Docker Compose
|
||||
|
||||
Під час налаштування онбординг перед стартом і записи конфігурації виконуються безпосередньо через
|
||||
`openclaw-gateway`. `openclaw-cli` призначений для команд, які ви запускаєте після того,
|
||||
Під час налаштування онбординг до старту та запис конфігурації виконуються
|
||||
безпосередньо через `openclaw-gateway`. `openclaw-cli` призначений для команд, які ви виконуєте після того,
|
||||
як контейнер Gateway уже існує.
|
||||
|
||||
</Step>
|
||||
@ -80,7 +80,7 @@ Docker є **необов’язковим**. Використовуйте йог
|
||||
</Step>
|
||||
|
||||
<Step title="Налаштуйте канали (необов’язково)">
|
||||
Використовуйте контейнер CLI, щоб додати канали обміну повідомленнями:
|
||||
Використайте контейнер CLI, щоб додати канали обміну повідомленнями:
|
||||
|
||||
```bash
|
||||
# WhatsApp (QR)
|
||||
@ -100,7 +100,7 @@ Docker є **необов’язковим**. Використовуйте йог
|
||||
|
||||
### Ручний потік
|
||||
|
||||
Якщо ви віддаєте перевагу запуску кожного кроку самостійно замість використання скрипта налаштування:
|
||||
Якщо ви віддаєте перевагу виконанню кожного кроку вручну замість використання скрипта налаштування:
|
||||
|
||||
```bash
|
||||
docker build -t openclaw:local -f Dockerfile .
|
||||
@ -118,9 +118,9 @@ docker compose up -d openclaw-gateway
|
||||
</Note>
|
||||
|
||||
<Note>
|
||||
Оскільки `openclaw-cli` використовує той самий простір імен мережі, що й `openclaw-gateway`, це
|
||||
інструмент після запуску. До `docker compose up -d openclaw-gateway` виконуйте онбординг
|
||||
і записи конфігурації на етапі налаштування через `openclaw-gateway` з
|
||||
Оскільки `openclaw-cli` використовує той самий простір мережевих імен, що й `openclaw-gateway`, це
|
||||
інструмент для використання після старту. До `docker compose up -d openclaw-gateway` виконуйте онбординг
|
||||
і запис конфігурації на етапі налаштування через `openclaw-gateway` з
|
||||
`--no-deps --entrypoint node`.
|
||||
</Note>
|
||||
|
||||
@ -128,35 +128,36 @@ docker compose up -d openclaw-gateway
|
||||
|
||||
Скрипт налаштування приймає такі необов’язкові змінні середовища:
|
||||
|
||||
| Variable | Purpose |
|
||||
| ------------------------------------------ | --------------------------------------------------------------- |
|
||||
| `OPENCLAW_IMAGE` | Використати віддалений образ замість локального збирання |
|
||||
| `OPENCLAW_DOCKER_APT_PACKAGES` | Установити додаткові apt-пакунки під час збирання (назви через пробіл) |
|
||||
| `OPENCLAW_EXTENSIONS` | Попередньо встановити залежності Plugin під час збирання (назви через пробіл) |
|
||||
| `OPENCLAW_EXTRA_MOUNTS` | Додаткові bind-монтування хоста (через кому у форматі `source:target[:opts]`) |
|
||||
| `OPENCLAW_HOME_VOLUME` | Зберігати `/home/node` в іменованому Docker-томі |
|
||||
| `OPENCLAW_SANDBOX` | Увімкнути початкове налаштування sandbox (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_DOCKER_SOCKET` | Перевизначити шлях до Docker socket |
|
||||
| `OPENCLAW_DISABLE_BONJOUR` | Вимкнути рекламу Bonjour/mDNS (для Docker за замовчуванням `1`) |
|
||||
| `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS` | Вимкнути bind-mount overlay для вихідного коду вбудованих Plugin |
|
||||
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Спільна кінцева точка колектора OTLP/HTTP для експорту OpenTelemetry |
|
||||
| `OTEL_EXPORTER_OTLP_*_ENDPOINT` | Кінцеві точки OTLP для конкретних сигналів трасування, метрик або журналів |
|
||||
| Variable | Purpose |
|
||||
| ------------------------------------------ | ---------------------------------------------------------------- |
|
||||
| `OPENCLAW_IMAGE` | Використати віддалений образ замість локального збирання |
|
||||
| `OPENCLAW_DOCKER_APT_PACKAGES` | Встановити додаткові apt-пакети під час збирання (через пробіл) |
|
||||
| `OPENCLAW_EXTENSIONS` | Попередньо встановити залежності плагінів під час збирання (назви через пробіл) |
|
||||
| `OPENCLAW_EXTRA_MOUNTS` | Додаткові bind mount-и хоста (через кому `source:target[:opts]`) |
|
||||
| `OPENCLAW_HOME_VOLUME` | Зберігати `/home/node` в іменованому Docker volume |
|
||||
| `OPENCLAW_SANDBOX` | Увімкнути початкове налаштування пісочниці (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_DOCKER_SOCKET` | Перевизначити шлях до сокета Docker |
|
||||
| `OPENCLAW_DISABLE_BONJOUR` | Вимкнути рекламу Bonjour/mDNS (для Docker за замовчуванням `1`) |
|
||||
| `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS` | Вимкнути bind-mount overlay для вбудованих вихідних кодів плагінів |
|
||||
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Спільна адреса OTLP/HTTP collector для експорту OpenTelemetry |
|
||||
| `OTEL_EXPORTER_OTLP_*_ENDPOINT` | Окремі адреси OTLP для трас, метрик або журналів |
|
||||
| `OTEL_EXPORTER_OTLP_PROTOCOL` | Перевизначення протоколу OTLP. Наразі підтримується лише `http/protobuf` |
|
||||
| `OTEL_SERVICE_NAME` | Назва сервісу, що використовується для ресурсів OpenTelemetry |
|
||||
| `OTEL_SEMCONV_STABILITY_OPT_IN` | Увімкнути найновіші експериментальні семантичні атрибути GenAI |
|
||||
| `OPENCLAW_OTEL_PRELOADED` | Не запускати другий SDK OpenTelemetry, якщо один уже попередньо завантажено |
|
||||
| `OTEL_SERVICE_NAME` | Назва сервісу для ресурсів OpenTelemetry |
|
||||
| `OTEL_SEMCONV_STABILITY_OPT_IN` | Увімкнути найновіші експериментальні семантичні атрибути GenAI |
|
||||
| `OPENCLAW_OTEL_PRELOADED` | Не запускати другий OpenTelemetry SDK, якщо один уже попередньо завантажено |
|
||||
|
||||
Супровідники можуть тестувати вихідний код вбудованого Plugin на основі пакетованого образу, змонтувавши
|
||||
один каталог вихідного коду Plugin поверх його пакетованого шляху вихідного коду, наприклад
|
||||
Супроводжувачі можуть тестувати вихідний код вбудованого плагіна з упакованим образом, змонтувавши
|
||||
один каталог вихідного коду плагіна поверх його упакованого шляху до вихідного коду, наприклад
|
||||
`OPENCLAW_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro`.
|
||||
Цей змонтований каталог вихідного коду перевизначає відповідний скомпільований
|
||||
пакет `/app/dist/extensions/synology-chat` для того самого ідентифікатора Plugin.
|
||||
Цей змонтований каталог вихідного коду перевизначає відповідний зібраний
|
||||
бандл `/app/dist/extensions/synology-chat` для того самого ідентифікатора плагіна.
|
||||
|
||||
### Спостережуваність
|
||||
|
||||
Експорт OpenTelemetry є вихідним із контейнера Gateway до вашого OTLP
|
||||
колектора. Для цього не потрібен опублікований порт Docker. Якщо ви локально збираєте образ і хочете, щоб вбудований експортер OpenTelemetry був доступний усередині образу,
|
||||
додайте його залежності виконання:
|
||||
collector. Для цього не потрібен опублікований порт Docker. Якщо ви локально збираєте образ
|
||||
і хочете, щоб у ньому був доступний вбудований експортер OpenTelemetry,
|
||||
додайте його залежності часу виконання:
|
||||
|
||||
```bash
|
||||
export OPENCLAW_EXTENSIONS="diagnostics-otel"
|
||||
@ -165,40 +166,41 @@ export OTEL_SERVICE_NAME="openclaw-gateway"
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Офіційний Docker-образ релізу OpenClaw містить вихідний код вбудованого
|
||||
Plugin `diagnostics-otel`. Залежно від образу та стану кешу,
|
||||
Gateway може все одно підготувати локальні залежності виконання OpenTelemetry Plugin
|
||||
під час першого ввімкнення Plugin, тому дозвольте під час першого запуску доступ до
|
||||
реєстру пакунків або попередньо прогрійте образ у вашому релізному потоці. Щоб увімкнути експорт, дозвольте та
|
||||
увімкніть Plugin `diagnostics-otel` у конфігурації, а потім задайте
|
||||
Офіційний релізний Docker-образ OpenClaw містить вбудований вихідний код плагіна
|
||||
`diagnostics-otel`. Залежно від образу та стану кешу,
|
||||
Gateway може все ще підготувати локальні залежності часу виконання OpenTelemetry для плагіна
|
||||
під час першого ввімкнення плагіна, тому дозвольте цьому першому завантаженню мати доступ до
|
||||
реєстру пакетів або попередньо прогрійте образ у вашому релізному конвеєрі. Щоб увімкнути експорт, дозвольте і
|
||||
увімкніть плагін `diagnostics-otel` у конфігурації, а потім встановіть
|
||||
`diagnostics.otel.enabled=true` або використайте приклад конфігурації в
|
||||
[Експорт OpenTelemetry](/uk/gateway/opentelemetry). Заголовки автентифікації колектора налаштовуються через `diagnostics.otel.headers`, а не через змінні середовища Docker.
|
||||
[Експорт OpenTelemetry](/uk/gateway/opentelemetry). Заголовки автентифікації collector налаштовуються через
|
||||
`diagnostics.otel.headers`, а не через змінні середовища Docker.
|
||||
|
||||
Метрики Prometheus використовують уже опублікований порт Gateway. Увімкніть
|
||||
Plugin `diagnostics-prometheus`, а потім виконуйте збирання:
|
||||
плагін `diagnostics-prometheus`, а потім збирайте:
|
||||
|
||||
```text
|
||||
http://<gateway-host>:18789/api/diagnostics/prometheus
|
||||
```
|
||||
|
||||
Маршрут захищений автентифікацією Gateway. Не відкривайте окремий
|
||||
публічний порт `/metrics` або неавтентифікований шлях зворотного проксі. Див.
|
||||
публічний порт `/metrics` або неавтентифікований шлях reverse proxy. Див.
|
||||
[Метрики Prometheus](/uk/gateway/prometheus).
|
||||
|
||||
### Перевірки працездатності
|
||||
### Перевірки стану
|
||||
|
||||
Кінцеві точки probe контейнера (автентифікація не потрібна):
|
||||
Кінцеві точки probes контейнера (автентифікація не потрібна):
|
||||
|
||||
```bash
|
||||
curl -fsS http://127.0.0.1:18789/healthz # live-перевірка
|
||||
curl -fsS http://127.0.0.1:18789/readyz # перевірка готовності
|
||||
curl -fsS http://127.0.0.1:18789/healthz # liveness
|
||||
curl -fsS http://127.0.0.1:18789/readyz # readiness
|
||||
```
|
||||
|
||||
Docker-образ містить вбудований `HEALTHCHECK`, який опитує `/healthz`.
|
||||
Якщо перевірки продовжують завершуватися помилкою, Docker позначає контейнер як `unhealthy`, і
|
||||
Docker-образ містить вбудований `HEALTHCHECK`, який звертається до `/healthz`.
|
||||
Якщо перевірки постійно не проходять, Docker позначає контейнер як `unhealthy`, і
|
||||
системи оркестрації можуть перезапустити або замінити його.
|
||||
|
||||
Автентифікований глибокий знімок працездатності:
|
||||
Автентифікований розгорнутий знімок стану:
|
||||
|
||||
```bash
|
||||
docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLAW_GATEWAY_TOKEN"
|
||||
@ -206,72 +208,72 @@ docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLA
|
||||
|
||||
### LAN проти loopback
|
||||
|
||||
`scripts/docker/setup.sh` за замовчуванням використовує `OPENCLAW_GATEWAY_BIND=lan`, тож доступ хоста до
|
||||
`http://127.0.0.1:18789` працює з опублікованим портом Docker.
|
||||
`scripts/docker/setup.sh` за замовчуванням встановлює `OPENCLAW_GATEWAY_BIND=lan`, тож доступ хоста до
|
||||
`http://127.0.0.1:18789` працює з публікацією портів Docker.
|
||||
|
||||
- `lan` (за замовчуванням): браузер хоста та CLI хоста можуть досягти опублікованого порту Gateway.
|
||||
- `loopback`: лише процеси всередині простору імен мережі контейнера можуть
|
||||
напряму досягти Gateway.
|
||||
- `lan` (за замовчуванням): браузер хоста і CLI хоста можуть звертатися до опублікованого порту Gateway.
|
||||
- `loopback`: лише процеси всередині простору мережевих імен контейнера можуть безпосередньо звертатися
|
||||
до Gateway.
|
||||
|
||||
<Note>
|
||||
Використовуйте значення режиму bind у `gateway.bind` (`lan` / `loopback` / `custom` /
|
||||
Використовуйте значення режиму прив’язки в `gateway.bind` (`lan` / `loopback` / `custom` /
|
||||
`tailnet` / `auto`), а не псевдоніми хоста на кшталт `0.0.0.0` або `127.0.0.1`.
|
||||
</Note>
|
||||
|
||||
### Bonjour / mDNS
|
||||
|
||||
Мережа моста Docker зазвичай ненадійно пересилає multicast-трафік Bonjour/mDNS
|
||||
(`224.0.0.251:5353`). Тому вбудоване налаштування Compose за замовчуванням використовує
|
||||
`OPENCLAW_DISABLE_BONJOUR=1`, щоб Gateway не потрапляв у цикл збоїв або не
|
||||
перезапускав рекламу повторно, коли міст відкидає multicast-трафік.
|
||||
Мережа мосту Docker зазвичай ненадійно пересилає мультикаст Bonjour/mDNS
|
||||
(`224.0.0.251:5353`). Тому вбудоване налаштування Compose за замовчуванням встановлює
|
||||
`OPENCLAW_DISABLE_BONJOUR=1`, щоб Gateway не потрапляв у цикл аварійних перезапусків і не
|
||||
перезапускав рекламу знову і знову, коли міст втрачає мультикаст-трафік.
|
||||
|
||||
Для хостів Docker використовуйте опубліковану URL-адресу Gateway, Tailscale або wide-area DNS-SD.
|
||||
Установлюйте `OPENCLAW_DISABLE_BONJOUR=0` лише під час запуску з host networking, macvlan
|
||||
або іншою мережею, де достеменно відомо, що multicast mDNS працює.
|
||||
Для Docker-хостів використовуйте опубліковану URL-адресу Gateway, Tailscale або DNS-SD широкої зони.
|
||||
Встановлюйте `OPENCLAW_DISABLE_BONJOUR=0` лише під час роботи з host networking, macvlan
|
||||
або іншою мережею, де точно відомо, що мультикаст mDNS працює.
|
||||
|
||||
Щоб дізнатися про типові проблеми та способи усунення несправностей, див. [Виявлення Bonjour](/uk/gateway/bonjour).
|
||||
Щоб дізнатися про типові проблеми й усунення неполадок, див. [Виявлення Bonjour](/uk/gateway/bonjour).
|
||||
|
||||
### Сховище та збереження даних
|
||||
|
||||
Docker Compose bind-монтує `OPENCLAW_CONFIG_DIR` у `/home/node/.openclaw` і
|
||||
`OPENCLAW_WORKSPACE_DIR` у `/home/node/.openclaw/workspace`, тож ці шляхи
|
||||
Docker Compose монтує `OPENCLAW_CONFIG_DIR` у `/home/node/.openclaw` і
|
||||
`OPENCLAW_WORKSPACE_DIR` у `/home/node/.openclaw/workspace`, тому ці шляхи
|
||||
зберігаються після заміни контейнера.
|
||||
|
||||
У цьому змонтованому каталозі конфігурації OpenClaw зберігає:
|
||||
|
||||
- `openclaw.json` для конфігурації поведінки
|
||||
- `agents/<agentId>/agent/auth-profiles.json` для збереженої OAuth/API-key автентифікації провайдерів
|
||||
- `agents/<agentId>/agent/auth-profiles.json` для збереженої OAuth/API-key автентифікації провайдера
|
||||
- `.env` для секретів часу виконання на основі env, таких як `OPENCLAW_GATEWAY_TOKEN`
|
||||
|
||||
Докладніше про повне збереження даних у розгортаннях на VM див.
|
||||
[Docker VM Runtime - Що зберігається і де](/uk/install/docker-vm-runtime#what-persists-where).
|
||||
Повні відомості про збереження даних у розгортаннях на VM див. у
|
||||
[Docker VM Runtime - Що і де зберігається](/uk/install/docker-vm-runtime#what-persists-where).
|
||||
|
||||
**Основні джерела зростання дискового простору:** стежте за `media/`, JSONL-файлами сеансів, `cron/runs/*.jsonl`
|
||||
**Точки зростання дискового простору:** стежте за `media/`, файлами JSONL сеансів, `cron/runs/*.jsonl`,
|
||||
і циклічними файловими журналами в `/tmp/openclaw/`.
|
||||
|
||||
### Shell helper-и (необов’язково)
|
||||
### Допоміжні команди оболонки (необов’язково)
|
||||
|
||||
Для простішого щоденного керування Docker установіть `ClawDock`:
|
||||
Для зручнішого повсякденного керування Docker установіть `ClawDock`:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/clawdock/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
|
||||
echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
```
|
||||
|
||||
Якщо ви встановлювали ClawDock зі старого raw-шляху `scripts/shell-helpers/clawdock-helpers.sh`, повторно виконайте наведену вище команду встановлення, щоб ваш локальний helper-файл відстежував нове розташування.
|
||||
Якщо ви встановили ClawDock зі старого raw-шляху `scripts/shell-helpers/clawdock-helpers.sh`, повторно виконайте наведену вище команду встановлення, щоб ваш локальний файл помічника відстежував нове розташування.
|
||||
|
||||
Після цього використовуйте `clawdock-start`, `clawdock-stop`, `clawdock-dashboard` тощо. Виконайте
|
||||
`clawdock-help`, щоб переглянути всі команди.
|
||||
Повний посібник з helper-ів див. у [ClawDock](/uk/install/clawdock).
|
||||
`clawdock-help`, щоб побачити всі команди.
|
||||
Повний посібник із допоміжних команд див. у [ClawDock](/uk/install/clawdock).
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Увімкнути sandbox агента для Docker Gateway">
|
||||
<Accordion title="Увімкнення пісочниці агента для Docker Gateway">
|
||||
```bash
|
||||
export OPENCLAW_SANDBOX=1
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Власний шлях до socket (наприклад, rootless Docker):
|
||||
Власний шлях до сокета (наприклад, rootless Docker):
|
||||
|
||||
```bash
|
||||
export OPENCLAW_SANDBOX=1
|
||||
@ -279,14 +281,14 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Скрипт монтує `docker.sock` лише після успішного проходження передумов sandbox. Якщо
|
||||
налаштування sandbox неможливо завершити, скрипт скидає `agents.defaults.sandbox.mode`
|
||||
до `off`.
|
||||
Скрипт монтує `docker.sock` лише після проходження перевірки передумов пісочниці. Якщо
|
||||
налаштування пісочниці не вдасться завершити, скрипт скине `agents.defaults.sandbox.mode`
|
||||
на `off`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Автоматизація / CI (неінтерактивно)">
|
||||
Вимкніть виділення псевдо-TTY для Compose за допомогою `-T`:
|
||||
Вимкніть виділення псевдо-TTY Compose за допомогою `-T`:
|
||||
|
||||
```bash
|
||||
docker compose run -T --rm openclaw-cli gateway probe
|
||||
@ -297,14 +299,14 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
|
||||
<Accordion title="Примітка щодо безпеки спільної мережі">
|
||||
`openclaw-cli` використовує `network_mode: "service:openclaw-gateway"`, тож команди CLI
|
||||
можуть звертатися до gateway через `127.0.0.1`. Розглядайте це як спільну
|
||||
можуть звертатися до Gateway через `127.0.0.1`. Розглядайте це як спільну
|
||||
межу довіри. Конфігурація compose скидає `NET_RAW`/`NET_ADMIN` і вмикає
|
||||
`no-new-privileges` для `openclaw-cli`.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Дозволи та EACCES">
|
||||
Образ працює від імені `node` (uid 1000). Якщо ви бачите помилки дозволів для
|
||||
`/home/node/.openclaw`, переконайтеся, що bind-монтування хоста належать uid 1000:
|
||||
`/home/node/.openclaw`, переконайтеся, що ваші bind mount-и хоста належать uid 1000:
|
||||
|
||||
```bash
|
||||
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
|
||||
@ -313,7 +315,7 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Швидші перебудови">
|
||||
Упорядкуйте ваш Dockerfile так, щоб шари залежностей кешувалися. Це дає змогу уникнути повторного запуску
|
||||
Упорядкуйте Dockerfile так, щоб шари залежностей кешувалися. Це дозволяє уникнути повторного запуску
|
||||
`pnpm install`, якщо lockfile-и не змінювалися:
|
||||
|
||||
```dockerfile
|
||||
@ -337,35 +339,35 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Параметри контейнера для досвідчених користувачів">
|
||||
Типовий образ орієнтований насамперед на безпеку й працює від непривілейованого `node`. Для більш
|
||||
Типовий образ орієнтований насамперед на безпеку й працює від імені непривілейованого `node`. Для більш
|
||||
функціонального контейнера:
|
||||
|
||||
1. **Зберігайте `/home/node`**: `export OPENCLAW_HOME_VOLUME="openclaw_home"`
|
||||
2. **Додайте системні залежності в образ**: `export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq"`
|
||||
2. **Вбудуйте системні залежності**: `export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq"`
|
||||
3. **Установіть браузери Playwright**:
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli \
|
||||
node /app/node_modules/playwright-core/cli.js install chromium
|
||||
```
|
||||
4. **Зберігайте завантаження браузерів**: задайте
|
||||
4. **Зберігайте завантаження браузерів**: установіть
|
||||
`PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright` і використовуйте
|
||||
`OPENCLAW_HOME_VOLUME` або `OPENCLAW_EXTRA_MOUNTS`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="OpenAI Codex OAuth (headless Docker)">
|
||||
Якщо у майстрі ви виберете OpenAI Codex OAuth, він відкриє URL-адресу в браузері. У
|
||||
<Accordion title="OAuth OpenAI Codex (Docker без графічного інтерфейсу)">
|
||||
Якщо у майстрі ви виберете OAuth OpenAI Codex, він відкриє URL-адресу в браузері. У
|
||||
Docker або headless-середовищах скопіюйте повну URL-адресу перенаправлення, на яку ви потрапите, і вставте
|
||||
її назад у майстер, щоб завершити автентифікацію.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Метадані базового образу">
|
||||
Основний Docker-образ використовує `node:24-bookworm` і публікує OCI-анотації
|
||||
базового образу, зокрема `org.opencontainers.image.base.name`,
|
||||
Основний runtime-образ Docker використовує `node:24-bookworm-slim` і публікує OCI
|
||||
анотації базового образу, зокрема `org.opencontainers.image.base.name`,
|
||||
`org.opencontainers.image.source` та інші. Digest базового образу Node
|
||||
оновлюється через PR Dependabot для базових Docker-образів; збірки релізів не виконують
|
||||
оновлюється через PR Dependabot для базових Docker-образів; релізні збірки не запускають
|
||||
шар оновлення дистрибутива. Див.
|
||||
[OCI image annotations](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
|
||||
[Анотації образів OCI](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -373,26 +375,26 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
|
||||
Див. [Hetzner (Docker VPS)](/uk/install/hetzner) і
|
||||
[Docker VM Runtime](/uk/install/docker-vm-runtime) для кроків розгортання на спільних VM,
|
||||
зокрема підготовки бінарних файлів в образі, збереження даних і оновлень.
|
||||
включно з вбудовуванням бінарних файлів, збереженням даних і оновленнями.
|
||||
|
||||
## Sandbox агента
|
||||
## Пісочниця агента
|
||||
|
||||
Коли `agents.defaults.sandbox` увімкнено з Docker-бекендом, gateway
|
||||
Коли `agents.defaults.sandbox` увімкнено з бекендом Docker, Gateway
|
||||
виконує інструменти агента (shell, читання/запис файлів тощо) в ізольованих Docker-
|
||||
контейнерах, тоді як сам gateway залишається на хості. Це дає вам жорстку межу
|
||||
контейнерах, тоді як сам Gateway залишається на хості. Це створює жорстку межу
|
||||
навколо недовірених або багатокористувацьких сеансів агента без контейнеризації всього
|
||||
gateway.
|
||||
Gateway.
|
||||
|
||||
Область sandbox може бути для кожного агента окремо (за замовчуванням), для кожного сеансу або спільною. Кожна область
|
||||
отримує власний робочий простір, змонтований у `/workspace`. Ви також можете налаштувати
|
||||
політики дозволу/заборони інструментів, ізоляцію мережі, обмеження ресурсів і браузерні
|
||||
контейнери.
|
||||
Область дії пісочниці може бути на рівні агента (за замовчуванням), сеансу або спільною. Кожна область
|
||||
отримує власний workspace, змонтований у `/workspace`. Ви також можете налаштувати
|
||||
політики дозволу/заборони інструментів, ізоляцію мережі, обмеження ресурсів і
|
||||
контейнери браузера.
|
||||
|
||||
Повну інформацію про конфігурацію, образи, примітки щодо безпеки та профілі з кількома агентами див. тут:
|
||||
|
||||
- [Ізоляція](/uk/gateway/sandboxing) -- повний довідник з sandbox
|
||||
- [OpenShell](/uk/gateway/openshell) -- інтерактивний доступ до shell контейнерів sandbox
|
||||
- [Multi-Agent Sandbox and Tools](/uk/tools/multi-agent-sandbox-tools) -- перевизначення для окремих агентів
|
||||
- [Пісочниця](/uk/gateway/sandboxing) -- повний довідник із пісочниці
|
||||
- [OpenShell](/uk/gateway/openshell) -- інтерактивний доступ shell до контейнерів пісочниці
|
||||
- [Пісочниця та інструменти для кількох агентів](/uk/tools/multi-agent-sandbox-tools) -- перевизначення для окремих агентів
|
||||
|
||||
### Швидке ввімкнення
|
||||
|
||||
@ -409,38 +411,38 @@ gateway.
|
||||
}
|
||||
```
|
||||
|
||||
Зберіть типовий образ sandbox:
|
||||
Зберіть типовий образ пісочниці:
|
||||
|
||||
```bash
|
||||
scripts/sandbox-setup.sh
|
||||
```
|
||||
|
||||
## Усунення несправностей
|
||||
## Усунення неполадок
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Образ відсутній або контейнер sandbox не запускається">
|
||||
Зберіть образ sandbox за допомогою
|
||||
<Accordion title="Образ відсутній або контейнер пісочниці не запускається">
|
||||
Зберіть образ пісочниці за допомогою
|
||||
[`scripts/sandbox-setup.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/sandbox-setup.sh)
|
||||
або задайте `agents.defaults.sandbox.docker.image` для вашого власного образу.
|
||||
Контейнери автоматично створюються за потреби для кожного сеансу.
|
||||
або встановіть `agents.defaults.sandbox.docker.image` на ваш власний образ.
|
||||
Контейнери автоматично створюються для кожного сеансу за потреби.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Помилки дозволів у sandbox">
|
||||
Задайте `docker.user` як UID:GID, що відповідає правам власності змонтованого робочого простору,
|
||||
або змініть власника теки робочого простору через chown.
|
||||
<Accordion title="Помилки дозволів у пісочниці">
|
||||
Встановіть `docker.user` на UID:GID, що відповідає правам власності змонтованого workspace,
|
||||
або змініть власника папки workspace через chown.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="У sandbox не знайдено власні інструменти">
|
||||
OpenClaw запускає команди через `sh -lc` (login shell), який зчитує
|
||||
`/etc/profile` і може скидати PATH. Задайте `docker.env.PATH`, щоб додати
|
||||
ваші власні шляхи до інструментів на початок, або додайте скрипт у `/etc/profile.d/` у вашому Dockerfile.
|
||||
<Accordion title="Власні інструменти не знайдено в пісочниці">
|
||||
OpenClaw запускає команди через `sh -lc` (login shell), який завантажує
|
||||
`/etc/profile` і може скидати PATH. Встановіть `docker.env.PATH`, щоб додати
|
||||
ваші власні шляхи до інструментів, або додайте скрипт у `/etc/profile.d/` у вашому Dockerfile.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Процес завершено через OOM під час збирання образу (exit 137)">
|
||||
VM потребує щонайменше 2 ГБ RAM. Використайте більший клас машини та повторіть спробу.
|
||||
<Accordion title="Примусове завершення через OOM під час збирання образу (exit 137)">
|
||||
VM потребує щонайменше 2 ГБ RAM. Використайте більший клас машини й повторіть спробу.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Unauthorized або потрібне pairинг у Control UI">
|
||||
<Accordion title="Unauthorized або потрібне сполучення в Control UI">
|
||||
Отримайте нове посилання на dashboard і схваліть пристрій браузера:
|
||||
|
||||
```bash
|
||||
@ -449,12 +451,12 @@ scripts/sandbox-setup.sh
|
||||
docker compose run --rm openclaw-cli devices approve <requestId>
|
||||
```
|
||||
|
||||
Докладніше: [Dashboard](/uk/web/dashboard), [Devices](/uk/cli/devices).
|
||||
Докладніше: [Dashboard](/uk/web/dashboard), [Пристрої](/uk/cli/devices).
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Ціль gateway показує ws://172.x.x.x або помилки pairингy з Docker CLI">
|
||||
Скиньте режим і bind gateway:
|
||||
<Accordion title="Ціль Gateway показує ws://172.x.x.x або помилки сполучення з Docker CLI">
|
||||
Скиньте режим і прив’язку Gateway:
|
||||
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"}]'
|
||||
@ -469,5 +471,5 @@ scripts/sandbox-setup.sh
|
||||
- [Огляд встановлення](/uk/install) — усі способи встановлення
|
||||
- [Podman](/uk/install/podman) — альтернатива Docker на базі Podman
|
||||
- [ClawDock](/uk/install/clawdock) — спільнотне налаштування Docker Compose
|
||||
- [Оновлення](/uk/install/updating) — підтримання OpenClaw в актуальному стані
|
||||
- [Конфігурація](/uk/gateway/configuration) — конфігурація gateway після встановлення
|
||||
- [Оновлення](/uk/install/updating) — підтримка OpenClaw в актуальному стані
|
||||
- [Конфігурація](/uk/gateway/configuration) — конфігурація Gateway після встановлення
|
||||
|
||||
@ -1,23 +1,23 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете запускати OpenClaw з хмарними або локальними моделями через Ollama
|
||||
- Вам потрібні вказівки щодо налаштування та конфігурації Ollama
|
||||
- Ви хочете моделі Ollama з підтримкою vision для розуміння зображень
|
||||
summary: Запустити OpenClaw з Ollama (хмарні та локальні моделі)
|
||||
- Вам потрібні інструкції з налаштування та конфігурації Ollama
|
||||
- Ви хочете використовувати моделі Ollama з підтримкою зору для розуміння зображень
|
||||
summary: Запускайте OpenClaw з Ollama (хмарні та локальні моделі)
|
||||
title: Ollama
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T21:07:09Z"
|
||||
generated_at: "2026-04-26T21:53:32Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 9595459cc32ff81332b09a81388f84059f48e86039170078fd7f30ccd9b4e1f5
|
||||
source_hash: 6fdec2ee2b642bbc57badbc434d41a210b421ac745cd0fceb7be595cbb0cb082
|
||||
source_path: providers/ollama.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
OpenClaw інтегрується з нативним API Ollama (`/api/chat`) для хмарних моделей і локальних/self-hosted серверів Ollama. Ви можете використовувати Ollama у трьох режимах: `Cloud + Local` через досяжний хост Ollama, `Cloud only` проти `https://ollama.com`, або `Local only` проти досяжного хоста Ollama.
|
||||
OpenClaw інтегрується з нативним API Ollama (`/api/chat`) для розміщених хмарних моделей і локальних/самостійно розміщених серверів Ollama. Ви можете використовувати Ollama у трьох режимах: `Cloud + Local` через доступний хост Ollama, `Cloud only` через `https://ollama.com` або `Local only` через доступний хост Ollama.
|
||||
|
||||
<Warning>
|
||||
**Користувачі віддаленого Ollama**: не використовуйте з OpenClaw URL `/v1`, сумісний з OpenAI (`http://host:11434/v1`). Це ламає виклики інструментів, і моделі можуть виводити сирий JSON інструментів як звичайний текст. Використовуйте натомість нативний URL API Ollama: `baseUrl: "http://host:11434"` (без `/v1`).
|
||||
**Користувачі віддаленого Ollama**: Не використовуйте URL OpenAI-сумісного `/v1` (`http://host:11434/v1`) з OpenClaw. Це ламає виклик інструментів, і моделі можуть виводити сирий JSON інструментів як звичайний текст. Натомість використовуйте URL нативного API Ollama: `baseUrl: "http://host:11434"` (без `/v1`).
|
||||
</Warning>
|
||||
|
||||
## Початок роботи
|
||||
@ -25,26 +25,26 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
|
||||
Виберіть бажаний спосіб налаштування та режим.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Onboarding (рекомендовано)">
|
||||
**Найкраще для:** найшвидшого шляху до робочого хмарного або локального налаштування Ollama.
|
||||
<Tab title="Початкове налаштування (рекомендовано)">
|
||||
**Найкраще для:** найшвидшого способу отримати робоче хмарне або локальне налаштування Ollama.
|
||||
|
||||
<Steps>
|
||||
<Step title="Запустіть onboarding">
|
||||
<Step title="Запустіть початкове налаштування">
|
||||
```bash
|
||||
openclaw onboard
|
||||
```
|
||||
|
||||
Виберіть **Ollama** зі списку провайдерів.
|
||||
</Step>
|
||||
<Step title="Виберіть режим">
|
||||
- **Cloud + Local** — локальний хост Ollama плюс хмарні моделі, маршрутизовані через цей хост
|
||||
- **Cloud only** — хмарні моделі Ollama через `https://ollama.com`
|
||||
<Step title="Виберіть свій режим">
|
||||
- **Cloud + Local** — локальний хост Ollama плюс хмарні моделі, спрямовані через цей хост
|
||||
- **Cloud only** — розміщені моделі Ollama через `https://ollama.com`
|
||||
- **Local only** — лише локальні моделі
|
||||
</Step>
|
||||
<Step title="Виберіть модель">
|
||||
`Cloud only` запитує `OLLAMA_API_KEY` і пропонує типові хмарні значення. `Cloud + Local` і `Local only` запитують base URL Ollama, виявляють доступні моделі та автоматично виконують pull вибраної локальної моделі, якщо її ще немає. `Cloud + Local` також перевіряє, чи виконано вхід на цьому хості Ollama для хмарного доступу.
|
||||
`Cloud only` запитує `OLLAMA_API_KEY` і пропонує стандартні хмарні налаштування за замовчуванням. `Cloud + Local` і `Local only` запитують базовий URL Ollama, виявляють доступні моделі та автоматично завантажують вибрану локальну модель, якщо вона ще недоступна. `Cloud + Local` також перевіряє, чи виконано вхід на цьому хості Ollama для хмарного доступу.
|
||||
</Step>
|
||||
<Step title="Переконайтеся, що модель доступна">
|
||||
<Step title="Перевірте, що модель доступна">
|
||||
```bash
|
||||
openclaw models list --provider ollama
|
||||
```
|
||||
@ -59,7 +59,7 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
За бажанням можна вказати користувацький base URL або модель:
|
||||
За потреби вкажіть власний базовий URL або модель:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
@ -76,40 +76,40 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
|
||||
|
||||
<Steps>
|
||||
<Step title="Виберіть хмарний або локальний режим">
|
||||
- **Cloud + Local**: установіть Ollama, увійдіть через `ollama signin` і маршрутизуйте хмарні запити через цей хост
|
||||
- **Cloud + Local**: встановіть Ollama, виконайте вхід через `ollama signin` і спрямовуйте хмарні запити через цей хост
|
||||
- **Cloud only**: використовуйте `https://ollama.com` з `OLLAMA_API_KEY`
|
||||
- **Local only**: установіть Ollama з [ollama.com/download](https://ollama.com/download)
|
||||
- **Local only**: встановіть Ollama з [ollama.com/download](https://ollama.com/download)
|
||||
</Step>
|
||||
<Step title="Виконайте pull локальної моделі (лише local)">
|
||||
<Step title="Завантажте локальну модель (лише локальний режим)">
|
||||
```bash
|
||||
ollama pull gemma4
|
||||
# or
|
||||
# або
|
||||
ollama pull gpt-oss:20b
|
||||
# or
|
||||
# або
|
||||
ollama pull llama3.3
|
||||
```
|
||||
</Step>
|
||||
<Step title="Увімкніть Ollama для OpenClaw">
|
||||
Для `Cloud only` використовуйте справжній `OLLAMA_API_KEY`. Для варіантів, що працюють через хост, підійде будь-яке placeholder-значення:
|
||||
Для `Cloud only` використовуйте свій справжній `OLLAMA_API_KEY`. Для конфігурацій на основі хоста підійде будь-яке значення-заповнювач:
|
||||
|
||||
```bash
|
||||
# Cloud
|
||||
# Хмара
|
||||
export OLLAMA_API_KEY="your-ollama-api-key"
|
||||
|
||||
# Local-only
|
||||
# Лише локально
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
|
||||
# Or configure in your config file
|
||||
# Або налаштуйте у своєму файлі конфігурації
|
||||
openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
|
||||
```
|
||||
</Step>
|
||||
<Step title="Перегляньте й задайте модель">
|
||||
<Step title="Перегляньте та встановіть свою модель">
|
||||
```bash
|
||||
openclaw models list
|
||||
openclaw models set ollama/gemma4
|
||||
```
|
||||
|
||||
Або задайте типову модель у config:
|
||||
Або встановіть модель за замовчуванням у конфігурації:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -130,53 +130,53 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`)
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Cloud + Local">
|
||||
`Cloud + Local` використовує досяжний хост Ollama як контрольну точку і для локальних, і для хмарних моделей. Це рекомендований Ollama гібридний потік.
|
||||
`Cloud + Local` використовує доступний хост Ollama як контрольну точку і для локальних, і для хмарних моделей. Це рекомендований гібридний підхід Ollama.
|
||||
|
||||
Під час налаштування виберіть **Cloud + Local**. OpenClaw запитує base URL Ollama, виявляє локальні моделі з цього хоста та перевіряє, чи виконано вхід на хості для хмарного доступу через `ollama signin`. Коли вхід на хості виконано, OpenClaw також пропонує типові хмарні моделі, такі як `kimi-k2.5:cloud`, `minimax-m2.7:cloud` і `glm-5.1:cloud`.
|
||||
Використовуйте **Cloud + Local** під час налаштування. OpenClaw запитує базовий URL Ollama, виявляє локальні моделі з цього хоста та перевіряє, чи виконано вхід на хості для хмарного доступу через `ollama signin`. Якщо вхід на хості виконано, OpenClaw також пропонує стандартні розміщені хмарні моделі, такі як `kimi-k2.5:cloud`, `minimax-m2.7:cloud` і `glm-5.1:cloud`.
|
||||
|
||||
Якщо на хості ще не виконано вхід, OpenClaw залишає налаштування лише локальним, доки ви не виконаєте `ollama signin`.
|
||||
Якщо вхід на хості ще не виконано, OpenClaw зберігає налаштування лише локальним, доки ви не запустите `ollama signin`.
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Cloud only">
|
||||
`Cloud only` працює з хмарним API Ollama за адресою `https://ollama.com`.
|
||||
`Cloud only` працює через розміщений API Ollama за адресою `https://ollama.com`.
|
||||
|
||||
Під час налаштування виберіть **Cloud only**. OpenClaw запитує `OLLAMA_API_KEY`, задає `baseUrl: "https://ollama.com"` і ініціалізує список хмарних моделей. Цей шлях **не** потребує локального сервера Ollama або `ollama signin`.
|
||||
Використовуйте **Cloud only** під час налаштування. OpenClaw запитує `OLLAMA_API_KEY`, установлює `baseUrl: "https://ollama.com"` і заповнює список розміщених хмарних моделей. Цей шлях **не** потребує локального сервера Ollama або `ollama signin`.
|
||||
|
||||
Список хмарних моделей, який показується під час `openclaw onboard`, заповнюється в реальному часі з `https://ollama.com/api/tags`, з обмеженням у 500 записів, тому picker відображає актуальний хмарний каталог, а не статичний початковий список. Якщо `ollama.com` недоступний або не повертає моделей під час налаштування, OpenClaw повертається до попередніх жорстко заданих пропозицій, щоб onboarding усе одно завершився.
|
||||
Список хмарних моделей, показаний під час `openclaw onboard`, заповнюється в реальному часі з `https://ollama.com/api/tags` з обмеженням до 500 записів, тому засіб вибору відображає поточний розміщений каталог, а не статичний початковий список. Якщо `ollama.com` недоступний або не повертає моделей під час налаштування, OpenClaw повертається до попередніх жорстко закодованих рекомендацій, щоб початкове налаштування все одно завершилось.
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Local only">
|
||||
У режимі лише local OpenClaw виявляє моделі з налаштованого екземпляра Ollama. Цей шлях призначено для локальних або self-hosted серверів Ollama.
|
||||
У режимі лише локального використання OpenClaw виявляє моделі з налаштованого екземпляра Ollama. Цей шлях призначений для локальних або самостійно розміщених серверів Ollama.
|
||||
|
||||
Наразі OpenClaw пропонує `gemma4` як типову локальну модель.
|
||||
OpenClaw наразі пропонує `gemma4` як локальну модель за замовчуванням.
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Виявлення моделей (неявний провайдер)
|
||||
|
||||
Коли ви задаєте `OLLAMA_API_KEY` (або auth profile) і **не** визначаєте `models.providers.ollama`, OpenClaw виявляє моделі з локального екземпляра Ollama за адресою `http://127.0.0.1:11434`.
|
||||
Коли ви встановлюєте `OLLAMA_API_KEY` (або профіль автентифікації) і **не** визначаєте `models.providers.ollama`, OpenClaw виявляє моделі з локального екземпляра Ollama за адресою `http://127.0.0.1:11434`.
|
||||
|
||||
| Поведінка | Деталі |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Запит каталогу | Опитує `/api/tags` |
|
||||
| Виявлення можливостей | Використовує best-effort запити до `/api/show`, щоб прочитати `contextWindow` і визначити можливості (включно з vision) |
|
||||
| Vision-моделі | Моделі з можливістю `vision`, яку повертає `/api/show`, позначаються як такі, що підтримують зображення (`input: ["text", "image"]`), тому OpenClaw автоматично ін’єктує зображення в prompt |
|
||||
| Виявлення reasoning | Позначає `reasoning` за евристикою назви моделі (`r1`, `reasoning`, `think`) |
|
||||
| Ліміти токенів | Установлює `maxTokens` на типове обмеження max-token Ollama, яке використовує OpenClaw |
|
||||
| Вартість | Усі значення вартості встановлюються в `0` |
|
||||
| Поведінка | Докладно |
|
||||
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Запит каталогу | Виконує запити до `/api/tags` |
|
||||
| Визначення можливостей | Використовує best-effort запити до `/api/show`, щоб зчитати `contextWindow` і визначити можливості (зокрема vision) |
|
||||
| Vision-моделі | Моделі з можливістю `vision`, про яку повідомляє `/api/show`, позначаються як такі, що підтримують зображення (`input: ["text", "image"]`), тому OpenClaw автоматично додає зображення до prompt |
|
||||
| Визначення reasoning | Позначає `reasoning` за допомогою евристики імені моделі (`r1`, `reasoning`, `think`) |
|
||||
| Ліміти токенів | Установлює `maxTokens` на стандартне максимальне обмеження токенів Ollama, яке використовує OpenClaw |
|
||||
| Вартість | Установлює всі значення вартості в `0` |
|
||||
|
||||
Це дає змогу уникнути ручного додавання записів моделей, зберігаючи узгодженість каталогу з локальним екземпляром Ollama.
|
||||
Це дає змогу уникнути ручного додавання моделей, водночас зберігаючи узгодженість каталогу з локальним екземпляром Ollama.
|
||||
|
||||
```bash
|
||||
# See what models are available
|
||||
# Подивитися, які моделі доступні
|
||||
ollama list
|
||||
openclaw models list
|
||||
```
|
||||
|
||||
Щоб додати нову модель, просто виконайте її pull через Ollama:
|
||||
Щоб додати нову модель, просто завантажте її через Ollama:
|
||||
|
||||
```bash
|
||||
ollama pull mistral
|
||||
@ -185,21 +185,21 @@ ollama pull mistral
|
||||
Нова модель буде автоматично виявлена й доступна для використання.
|
||||
|
||||
<Note>
|
||||
Якщо ви явно задаєте `models.providers.ollama`, автовиявлення пропускається, і моделі потрібно визначати вручну. Див. розділ про явну config нижче.
|
||||
Якщо ви явно задаєте `models.providers.ollama`, автовиявлення пропускається, і вам потрібно визначати моделі вручну. Дивіться розділ явної конфігурації нижче.
|
||||
</Note>
|
||||
|
||||
## Vision і опис зображень
|
||||
|
||||
Вбудований plugin Ollama реєструє Ollama як provider розуміння медіа з підтримкою зображень. Це дає OpenClaw змогу маршрутизувати явні запити на опис зображень і налаштовані типові значення image-model через локальні або хмарні vision-моделі Ollama.
|
||||
Вбудований Plugin Ollama реєструє Ollama як провайдера розуміння медіа, що підтримує зображення. Це дає змогу OpenClaw спрямовувати явні запити на опис зображень і налаштовані значення моделей зображень за замовчуванням через локальні або розміщені vision-моделі Ollama.
|
||||
|
||||
Для локального vision виконайте pull моделі, що підтримує зображення:
|
||||
Для локального vision завантажте модель, що підтримує зображення:
|
||||
|
||||
```bash
|
||||
ollama pull qwen2.5vl:7b
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
```
|
||||
|
||||
Потім перевірте через CLI infer:
|
||||
Потім перевірте за допомогою CLI infer:
|
||||
|
||||
```bash
|
||||
openclaw infer image describe \
|
||||
@ -208,9 +208,9 @@ openclaw infer image describe \
|
||||
--json
|
||||
```
|
||||
|
||||
`--model` має бути повним посиланням `<provider/model>`. Коли його задано, `openclaw infer image describe` запускає цю модель напряму замість пропуску опису через те, що модель уже нативно підтримує vision.
|
||||
`--model` має бути повним посиланням `<provider/model>`. Коли його встановлено, `openclaw infer image describe` запускає цю модель напряму замість пропуску опису, оскільки модель підтримує нативний vision.
|
||||
|
||||
Щоб зробити Ollama типовою моделлю розуміння зображень для вхідних медіа, налаштуйте `agents.defaults.imageModel`:
|
||||
Щоб зробити Ollama моделлю розуміння зображень за замовчуванням для вхідних медіа, налаштуйте `agents.defaults.imageModel`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -224,7 +224,7 @@ openclaw infer image describe \
|
||||
}
|
||||
```
|
||||
|
||||
Якщо ви визначаєте `models.providers.ollama.models` вручну, позначайте vision-моделі як такі, що підтримують зображення:
|
||||
Якщо ви визначаєте `models.providers.ollama.models` вручну, позначте vision-моделі як такі, що підтримують вхідні зображення:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -242,20 +242,20 @@ OpenClaw відхиляє запити на опис зображень для
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Базова (неявне виявлення)">
|
||||
Найпростіший шлях увімкнення режиму лише local — через змінну середовища:
|
||||
Найпростіший спосіб увімкнути режим лише локального використання — через змінну середовища:
|
||||
|
||||
```bash
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
```
|
||||
|
||||
<Tip>
|
||||
Якщо задано `OLLAMA_API_KEY`, можна не вказувати `apiKey` у записі провайдера, і OpenClaw сам підставить його для перевірок доступності.
|
||||
Якщо встановлено `OLLAMA_API_KEY`, ви можете не вказувати `apiKey` у записі провайдера, і OpenClaw підставить його для перевірок доступності.
|
||||
</Tip>
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Явна (ручні моделі)">
|
||||
Використовуйте явну config, коли вам потрібне хмарне налаштування, Ollama працює на іншому хості/порту, ви хочете примусово задати конкретні context window або списки моделей, або вам потрібні повністю ручні визначення моделей.
|
||||
Використовуйте явну конфігурацію, якщо вам потрібне розміщене хмарне налаштування, Ollama працює на іншому хості/порту, ви хочете примусово встановити конкретні вікна контексту або списки моделей, або вам потрібні повністю ручні визначення моделей.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -284,8 +284,8 @@ OpenClaw відхиляє запити на опис зображень для
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Користувацький base URL">
|
||||
Якщо Ollama працює на іншому хості або порту (явна config вимикає автовиявлення, тому моделі потрібно визначити вручну):
|
||||
<Tab title="Власний базовий URL">
|
||||
Якщо Ollama працює на іншому хості або порту (явна конфігурація вимикає автовиявлення, тому визначайте моделі вручну):
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -293,8 +293,8 @@ OpenClaw відхиляє запити на опис зображень для
|
||||
providers: {
|
||||
ollama: {
|
||||
apiKey: "ollama-local",
|
||||
baseUrl: "http://ollama-host:11434", // No /v1 - use native Ollama API URL
|
||||
api: "ollama", // Set explicitly to guarantee native tool-calling behavior
|
||||
baseUrl: "http://ollama-host:11434", // Без /v1 - використовуйте URL нативного API Ollama
|
||||
api: "ollama", // Установіть явно, щоб гарантувати нативну поведінку виклику інструментів
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -302,7 +302,7 @@ OpenClaw відхиляє запити на опис зображень для
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Не додавайте `/v1` до URL. Шлях `/v1` використовує OpenAI-compatible mode, де виклики інструментів ненадійні. Використовуйте базовий URL Ollama без суфікса шляху.
|
||||
Не додавайте `/v1` до URL. Шлях `/v1` використовує OpenAI-сумісний режим, у якому виклик інструментів працює ненадійно. Використовуйте базовий URL Ollama без суфікса шляху.
|
||||
</Warning>
|
||||
|
||||
</Tab>
|
||||
@ -310,7 +310,7 @@ OpenClaw відхиляє запити на опис зображень для
|
||||
|
||||
### Вибір моделі
|
||||
|
||||
Після налаштування всі ваші моделі Ollama стають доступними:
|
||||
Після налаштування всі ваші моделі Ollama будуть доступні:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -327,15 +327,15 @@ OpenClaw відхиляє запити на опис зображень для
|
||||
|
||||
## Ollama Web Search
|
||||
|
||||
OpenClaw підтримує **Ollama Web Search** як вбудований provider `web_search`.
|
||||
OpenClaw підтримує **Ollama Web Search** як вбудований провайдер `web_search`.
|
||||
|
||||
| Властивість | Деталі |
|
||||
| ----------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| Хост | Використовує ваш налаштований хост Ollama (`models.providers.ollama.baseUrl`, якщо задано, інакше `http://127.0.0.1:11434`) |
|
||||
| Auth | Ключ не потрібен |
|
||||
| Вимога | Ollama має працювати, і потрібно виконати вхід через `ollama signin` |
|
||||
| Властивість | Докладно |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| Хост | Використовує налаштований вами хост Ollama (`models.providers.ollama.baseUrl`, якщо задано, інакше `http://127.0.0.1:11434`) |
|
||||
| Автентифікація | Без ключа |
|
||||
| Вимога | Ollama має бути запущений, і вхід має бути виконаний через `ollama signin` |
|
||||
|
||||
Виберіть **Ollama Web Search** під час `openclaw onboard` або `openclaw configure --section web`, або задайте:
|
||||
Виберіть **Ollama Web Search** під час `openclaw onboard` або `openclaw configure --section web`, або встановіть:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -350,18 +350,18 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
```
|
||||
|
||||
<Note>
|
||||
Повні відомості про налаштування та поведінку див. у [Ollama Web Search](/uk/tools/ollama-search).
|
||||
Повні відомості про налаштування та поведінку дивіться в [Ollama Web Search](/uk/tools/ollama-search).
|
||||
</Note>
|
||||
|
||||
## Розширена конфігурація
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Застарілий OpenAI-compatible mode">
|
||||
<Accordion title="Застарілий OpenAI-сумісний режим">
|
||||
<Warning>
|
||||
**Виклики інструментів ненадійні в OpenAI-compatible mode.** Використовуйте цей режим лише тоді, коли вам потрібен формат OpenAI для proxy і ви не залежите від нативної поведінки викликів інструментів.
|
||||
**Виклик інструментів у OpenAI-сумісному режимі працює ненадійно.** Використовуйте цей режим лише тоді, коли вам потрібен формат OpenAI для проксі й ви не залежите від нативної поведінки виклику інструментів.
|
||||
</Warning>
|
||||
|
||||
Якщо вам потрібно використовувати натомість OpenAI-compatible endpoint (наприклад, за proxy, який підтримує лише формат OpenAI), явно задайте `api: "openai-completions"`:
|
||||
Якщо вам потрібно замість цього використовувати OpenAI-сумісну кінцеву точку (наприклад, за проксі, який підтримує лише формат OpenAI), явно встановіть `api: "openai-completions"`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -370,7 +370,7 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
ollama: {
|
||||
baseUrl: "http://ollama-host:11434/v1",
|
||||
api: "openai-completions",
|
||||
injectNumCtxForOpenAICompat: true, // default: true
|
||||
injectNumCtxForOpenAICompat: true, // за замовчуванням: true
|
||||
apiKey: "ollama-local",
|
||||
models: [...]
|
||||
}
|
||||
@ -379,9 +379,9 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
}
|
||||
```
|
||||
|
||||
У цьому режимі може не підтримуватися одночасно і streaming, і виклики інструментів. Може знадобитися вимкнути streaming через `params: { streaming: false }` у config моделі.
|
||||
У цьому режимі може не підтримуватися одночасно потокова передача та виклик інструментів. Вам може знадобитися вимкнути потокову передачу за допомогою `params: { streaming: false }` у конфігурації моделі.
|
||||
|
||||
Коли `api: "openai-completions"` використовується з Ollama, OpenClaw типово ін’єктує `options.num_ctx`, щоб Ollama не переходив мовчки до context window 4096. Якщо ваш proxy/upstream відхиляє невідомі поля `options`, вимкніть цю поведінку:
|
||||
Коли `api: "openai-completions"` використовується з Ollama, OpenClaw за замовчуванням додає `options.num_ctx`, щоб Ollama не переходила мовчки до вікна контексту 4096. Якщо ваш проксі/апстрім відхиляє невідомі поля `options`, вимкніть цю поведінку:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -401,10 +401,10 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Context windows">
|
||||
Для автоматично виявлених моделей OpenClaw використовує context window, повідомлений Ollama, коли він доступний; інакше повертається до типового context window Ollama, який використовує OpenClaw.
|
||||
<Accordion title="Вікна контексту">
|
||||
Для автоматично виявлених моделей OpenClaw використовує вікно контексту, про яке повідомляє Ollama, якщо воно доступне; інакше використовується стандартне вікно контексту Ollama, яке застосовує OpenClaw.
|
||||
|
||||
Ви можете перевизначити `contextWindow` і `maxTokens` в явній config провайдера:
|
||||
Ви можете перевизначити `contextWindow` і `maxTokens` у явній конфігурації провайдера:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -426,8 +426,8 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Reasoning models">
|
||||
OpenClaw типово вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` такими, що підтримують reasoning.
|
||||
<Accordion title="Моделі reasoning">
|
||||
OpenClaw за замовчуванням вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` такими, що підтримують reasoning.
|
||||
|
||||
```bash
|
||||
ollama pull deepseek-r1:32b
|
||||
@ -438,20 +438,20 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Вартість моделей">
|
||||
Ollama безкоштовний і працює локально, тому для всіх моделей вартість встановлюється в $0. Це стосується як автоматично виявлених, так і вручну визначених моделей.
|
||||
Ollama є безплатною та працює локально, тому вартість усіх моделей встановлена на рівні $0. Це стосується як автоматично виявлених, так і вручну визначених моделей.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Memory embeddings">
|
||||
Вбудований plugin Ollama реєструє provider embeddings для пам’яті для
|
||||
[пошуку пам’яті](/uk/concepts/memory). Він використовує налаштовані base URL
|
||||
та API-ключ Ollama.
|
||||
<Accordion title="Вбудовування пам’яті">
|
||||
Вбудований Plugin Ollama реєструє провайдера вбудовувань пам’яті для
|
||||
[пошуку в пам’яті](/uk/concepts/memory). Він використовує налаштований базовий URL Ollama
|
||||
та API-ключ.
|
||||
|
||||
| Властивість | Значення |
|
||||
| -------------- | ------------------- |
|
||||
| Типова модель | `nomic-embed-text` |
|
||||
| Auto-pull | Так — embedding-модель автоматично виконує pull, якщо локально її немає |
|
||||
| Властивість | Значення |
|
||||
| ------------------ | ------------------- |
|
||||
| Модель за замовчуванням | `nomic-embed-text` |
|
||||
| Автозавантаження | Так — модель вбудовувань автоматично завантажується локально, якщо її ще немає |
|
||||
|
||||
Щоб вибрати Ollama як provider embeddings для пошуку пам’яті:
|
||||
Щоб вибрати Ollama як провайдера вбудовувань для пошуку в пам’яті:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -465,13 +465,13 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Конфігурація streaming">
|
||||
Інтеграція Ollama в OpenClaw типово використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно streaming і виклики інструментів. Спеціальна конфігурація не потрібна.
|
||||
<Accordion title="Конфігурація потокової передачі">
|
||||
Інтеграція Ollama в OpenClaw за замовчуванням використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно потокову передачу та виклик інструментів. Жодної спеціальної конфігурації не потрібно.
|
||||
|
||||
Для нативних запитів `/api/chat` OpenClaw також напряму передає керування thinking до Ollama: `/think off` і `openclaw agent --thinking off` надсилають верхньорівневий `think: false`, тоді як рівні thinking, відмінні від `off`, надсилають `think: true`.
|
||||
Для нативних запитів `/api/chat` OpenClaw також напряму передає керування thinking до Ollama: `/think off` і `openclaw agent --thinking off` надсилають верхньорівневе `think: false`, тоді як `/think low|medium|high` надсилають відповідний рядок рівня effort у верхньому рівні `think`. `/think max` відповідає найвищому нативному рівню effort в Ollama, `think: "high"`.
|
||||
|
||||
<Tip>
|
||||
Якщо вам потрібно використовувати OpenAI-compatible endpoint, див. розділ "Застарілий OpenAI-compatible mode" вище. У цьому режимі streaming і виклики інструментів можуть не працювати одночасно.
|
||||
Якщо вам потрібно використовувати OpenAI-сумісну кінцеву точку, дивіться розділ "Застарілий OpenAI-сумісний режим" вище. У цьому режимі потокова передача та виклик інструментів можуть не працювати одночасно.
|
||||
</Tip>
|
||||
|
||||
</Accordion>
|
||||
@ -480,14 +480,14 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
## Усунення несправностей
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Ollama не виявляється">
|
||||
Переконайтеся, що Ollama працює, що ви задали `OLLAMA_API_KEY` (або auth profile) і що ви **не** визначили явний запис `models.providers.ollama`:
|
||||
<Accordion title="Ollama не виявлено">
|
||||
Переконайтеся, що Ollama запущена, що ви встановили `OLLAMA_API_KEY` (або профіль автентифікації) і що ви **не** визначили явний запис `models.providers.ollama`:
|
||||
|
||||
```bash
|
||||
ollama serve
|
||||
```
|
||||
|
||||
Перевірте, що API доступне:
|
||||
Переконайтеся, що API доступний:
|
||||
|
||||
```bash
|
||||
curl http://localhost:11434/api/tags
|
||||
@ -496,25 +496,25 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Немає доступних моделей">
|
||||
Якщо вашої моделі немає у списку, виконайте її локальний pull або явно визначте її в `models.providers.ollama`.
|
||||
Якщо вашої моделі немає у списку, або завантажте її локально, або визначте її явно в `models.providers.ollama`.
|
||||
|
||||
```bash
|
||||
ollama list # See what's installed
|
||||
ollama list # Подивитися, що встановлено
|
||||
ollama pull gemma4
|
||||
ollama pull gpt-oss:20b
|
||||
ollama pull llama3.3 # Or another model
|
||||
ollama pull llama3.3 # Або іншу модель
|
||||
```
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Connection refused">
|
||||
Переконайтеся, що Ollama працює на правильному порту:
|
||||
<Accordion title="У з’єднанні відмовлено">
|
||||
Перевірте, що Ollama запущена на правильному порту:
|
||||
|
||||
```bash
|
||||
# Check if Ollama is running
|
||||
# Перевірити, чи запущена Ollama
|
||||
ps aux | grep ollama
|
||||
|
||||
# Or restart Ollama
|
||||
# Або перезапустити Ollama
|
||||
ollama serve
|
||||
```
|
||||
|
||||
@ -522,22 +522,22 @@ OpenClaw підтримує **Ollama Web Search** як вбудований prov
|
||||
</AccordionGroup>
|
||||
|
||||
<Note>
|
||||
Більше допомоги: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq).
|
||||
Додаткова допомога: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq).
|
||||
</Note>
|
||||
|
||||
## Пов’язане
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
|
||||
Огляд усіх провайдерів, посилань на моделі та поведінки failover.
|
||||
Огляд усіх провайдерів, посилань на моделі та поведінки перемикання при збоях.
|
||||
</Card>
|
||||
<Card title="Вибір моделі" href="/uk/concepts/models" icon="brain">
|
||||
Як вибирати й налаштовувати моделі.
|
||||
Як вибирати та налаштовувати моделі.
|
||||
</Card>
|
||||
<Card title="Ollama Web Search" href="/uk/tools/ollama-search" icon="magnifying-glass">
|
||||
Повні відомості про налаштування та поведінку web search на базі Ollama.
|
||||
Повні відомості про налаштування та поведінку вебпошуку на основі Ollama.
|
||||
</Card>
|
||||
<Card title="Конфігурація" href="/uk/gateway/configuration" icon="gear">
|
||||
Повний довідник із конфігурації.
|
||||
Повна довідка з конфігурації.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -1,131 +1,132 @@
|
||||
---
|
||||
read_when:
|
||||
- Налаштування розбору директив мислення, швидкого режиму або докладного режиму чи значень за замовчуванням
|
||||
- Налаштування аналізу директив мислення, швидкого режиму або розширених відповідей чи значень за замовчуванням
|
||||
summary: Синтаксис директив для /think, /fast, /verbose, /trace і видимості міркувань
|
||||
title: Рівні мислення
|
||||
x-i18n:
|
||||
generated_at: "2026-04-25T01:07:35Z"
|
||||
generated_at: "2026-04-26T21:53:33Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 0537f10d3dd3251ac41590bebd2d83ba8b2562725c322040b20f32547c8af88d
|
||||
source_hash: 88138c8145afb686d3902a0cc8087c96eace4e955b87c0797ab841bdc20d28db
|
||||
source_path: tools/thinking.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
## Що це робить
|
||||
|
||||
- Вбудована директива в будь-якому вхідному тілі: `/t <level>`, `/think:<level>` або `/thinking <level>`.
|
||||
- Вбудована директива в будь-якому вхідному тілі повідомлення: `/t <level>`, `/think:<level>` або `/thinking <level>`.
|
||||
- Рівні (псевдоніми): `off | minimal | low | medium | high | xhigh | adaptive | max`
|
||||
- minimal → “think”
|
||||
- low → “think hard”
|
||||
- medium → “think harder”
|
||||
- high → “ultrathink” (максимальний бюджет)
|
||||
- xhigh → “ultrathink+” (GPT-5.2+ і моделі Codex, а також зусилля Anthropic Claude Opus 4.7)
|
||||
- adaptive → адаптивне мислення під керуванням провайдера (підтримується для Claude 4.6 на Anthropic/Bedrock, Anthropic Claude Opus 4.7 і Google Gemini dynamic thinking)
|
||||
- max → максимальне міркування провайдера (наразі Anthropic Claude Opus 4.7)
|
||||
- minimal → «think»
|
||||
- low → «think hard»
|
||||
- medium → «think harder»
|
||||
- high → «ultrathink» (максимальний бюджет)
|
||||
- xhigh → «ultrathink+» (GPT-5.2+ і моделі Codex, а також effort для Anthropic Claude Opus 4.7)
|
||||
- adaptive → кероване провайдером адаптивне мислення (підтримується для Claude 4.6 на Anthropic/Bedrock, Anthropic Claude Opus 4.7 і динамічного мислення Google Gemini)
|
||||
- max → максимальне міркування провайдера (Anthropic Claude Opus 4.7; Ollama зіставляє це зі своїм найвищим нативним effort `think`)
|
||||
- `x-high`, `x_high`, `extra-high`, `extra high` і `extra_high` зіставляються з `xhigh`.
|
||||
- `highest` зіставляється з `high`.
|
||||
- Примітки щодо провайдерів:
|
||||
- Меню та перемикачі мислення керуються профілем провайдера. Плагіни провайдерів оголошують точний набір рівнів для вибраної моделі, включно з мітками на кшталт бінарного `on`.
|
||||
- `adaptive`, `xhigh` і `max` рекламуються лише для профілів провайдера/моделі, які їх підтримують. Введені директиви для непідтримуваних рівнів відхиляються з показом дійсних варіантів для цієї моделі.
|
||||
- Наявні збережені непідтримувані рівні переназначаються за рангом профілю провайдера. `adaptive` повертається до `medium` на неадаптивних моделях, а `xhigh` і `max` — до найбільшого підтримуваного небінарного рівня, відмінного від `off`, для вибраної моделі.
|
||||
- Для моделей Anthropic Claude 4.6 за замовчуванням використовується `adaptive`, якщо явний рівень мислення не задано.
|
||||
- Anthropic Claude Opus 4.7 не використовує adaptive thinking за замовчуванням. Типовий рівень effort для його API залишається під керуванням провайдера, якщо ви явно не задасте рівень мислення.
|
||||
- Anthropic Claude Opus 4.7 зіставляє `/think xhigh` з adaptive thinking плюс `output_config.effort: "xhigh"`, оскільки `/think` — це директива мислення, а `xhigh` — налаштування effort для Opus 4.7.
|
||||
- Anthropic Claude Opus 4.7 також підтримує `/think max`; це зіставляється з тим самим шляхом максимального effort під керуванням провайдера.
|
||||
- Моделі OpenAI GPT зіставляють `/think` через підтримку effort у Responses API, специфічну для моделі. `/think off` надсилає `reasoning.effort: "none"` лише тоді, коли цільова модель це підтримує; інакше OpenClaw пропускає payload вимкненого reasoning замість надсилання непідтримуваного значення.
|
||||
- Google Gemini зіставляє `/think adaptive` з dynamic thinking Gemini під керуванням провайдера. Запити Gemini 3 пропускають фіксований `thinkingLevel`, тоді як запити Gemini 2.5 надсилають `thinkingBudget: -1`; фіксовані рівні, як і раніше, зіставляються з найближчим `thinkingLevel` або бюджетом Gemini для цього сімейства моделей.
|
||||
- MiniMax (`minimax/*`) на Anthropic-сумісному потоковому шляху за замовчуванням використовує `thinking: { type: "disabled" }`, якщо ви явно не задасте thinking у параметрах моделі або параметрах запиту. Це запобігає витоку дельт `reasoning_content` із ненативного формату Anthropic stream у MiniMax.
|
||||
- Z.AI (`zai/*`) підтримує лише бінарне thinking (`on`/`off`). Будь-який рівень, відмінний від `off`, трактується як `on` (зіставляється з `low`).
|
||||
- Moonshot (`moonshot/*`) зіставляє `/think off` з `thinking: { type: "disabled" }`, а будь-який рівень, відмінний від `off`, — з `thinking: { type: "enabled" }`. Коли thinking увімкнено, Moonshot приймає лише `tool_choice` `auto|none`; OpenClaw нормалізує несумісні значення до `auto`.
|
||||
- `adaptive`, `xhigh` і `max` оголошуються лише для профілів провайдерів/моделей, які їх підтримують. Введені директиви з непідтримуваними рівнями відхиляються зі списком допустимих варіантів для цієї моделі.
|
||||
- Наявні збережені непідтримувані рівні перепризначаються за рангом профілю провайдера. `adaptive` повертається до `medium` на неадаптивних моделях, а `xhigh` і `max` повертаються до найбільшого підтримуваного рівня, відмінного від `off`, для вибраної моделі.
|
||||
- Моделі Anthropic Claude 4.6 за замовчуванням використовують `adaptive`, якщо явний рівень мислення не встановлено.
|
||||
- Anthropic Claude Opus 4.7 не використовує адаптивне мислення за замовчуванням. Типовий effort в його API залишається під керуванням провайдера, якщо ви явно не встановите рівень мислення.
|
||||
- Anthropic Claude Opus 4.7 зіставляє `/think xhigh` з адаптивним мисленням плюс `output_config.effort: "xhigh"`, оскільки `/think` — це директива мислення, а `xhigh` — параметр effort для Opus 4.7.
|
||||
- Anthropic Claude Opus 4.7 також підтримує `/think max`; це зіставляється з тим самим шляхом максимального effort, керованого провайдером.
|
||||
- Моделі Ollama з підтримкою мислення підтримують `/think low|medium|high|max`; `max` зіставляється з нативним `think: "high"`, оскільки нативний API Ollama приймає рядки effort `low`, `medium` і `high`.
|
||||
- Моделі OpenAI GPT зіставляють `/think` через підтримку effort в API Responses для конкретної моделі. `/think off` надсилає `reasoning.effort: "none"` лише тоді, коли цільова модель це підтримує; інакше OpenClaw пропускає payload вимкненого reasoning замість надсилання непідтримуваного значення.
|
||||
- Google Gemini зіставляє `/think adaptive` з динамічним мисленням Gemini, керованим провайдером. Запити Gemini 3 пропускають фіксований `thinkingLevel`, тоді як запити Gemini 2.5 надсилають `thinkingBudget: -1`; фіксовані рівні, як і раніше, зіставляються з найближчим `thinkingLevel` або бюджетом Gemini для цього сімейства моделей.
|
||||
- MiniMax (`minimax/*`) на Anthropic-сумісному streaming-шляху за замовчуванням використовує `thinking: { type: "disabled" }`, якщо ви явно не встановите мислення в параметрах моделі або параметрах запиту. Це запобігає витоку дельт `reasoning_content` з ненативного формату потоку Anthropic у MiniMax.
|
||||
- Z.AI (`zai/*`) підтримує лише бінарне мислення (`on`/`off`). Будь-який рівень, відмінний від `off`, розглядається як `on` (зіставляється з `low`).
|
||||
- Moonshot (`moonshot/*`) зіставляє `/think off` з `thinking: { type: "disabled" }`, а будь-який рівень, відмінний від `off`, — з `thinking: { type: "enabled" }`. Коли мислення ввімкнене, Moonshot приймає лише `tool_choice` `auto|none`; OpenClaw нормалізує несумісні значення до `auto`.
|
||||
|
||||
## Порядок визначення
|
||||
|
||||
1. Вбудована директива в повідомленні (застосовується лише до цього повідомлення).
|
||||
2. Перевизначення сесії (встановлюється надсиланням повідомлення, що містить лише директиву).
|
||||
2. Перевизначення сесії (встановлюється надсиланням повідомлення, яке містить лише директиву).
|
||||
3. Значення за замовчуванням для агента (`agents.list[].thinkingDefault` у конфігурації).
|
||||
4. Глобальне значення за замовчуванням (`agents.defaults.thinkingDefault` у конфігурації).
|
||||
5. Резервний варіант: оголошене провайдером значення за замовчуванням, якщо доступне; інакше моделі зі здатністю до міркування визначаються як `medium` або найближчий підтримуваний рівень, відмінний від `off`, для цієї моделі, а моделі без міркування залишаються `off`.
|
||||
5. Резервний варіант: оголошене провайдером значення за замовчуванням, якщо доступне; інакше моделі з підтримкою міркування визначаються як `medium` або найближчий підтримуваний рівень, відмінний від `off`, для цієї моделі, а моделі без міркування залишаються на `off`.
|
||||
|
||||
## Встановлення значення за замовчуванням для сесії
|
||||
## Встановлення значення сесії за замовчуванням
|
||||
|
||||
- Надішліть повідомлення, яке **містить лише** директиву (допускаються пробіли), наприклад `/think:medium` або `/t high`.
|
||||
- Це зберігається для поточної сесії (типово окремо для кожного відправника); скидається через `/think:off` або під час idle reset сесії.
|
||||
- Надсилається відповідь-підтвердження (`Thinking level set to high.` / `Thinking disabled.`). Якщо рівень недійсний (наприклад, `/thinking big`), команду буде відхилено з підказкою, а стан сесії залишиться без змін.
|
||||
- Надішліть повідомлення, яке **містить лише** директиву (пробіли дозволені), наприклад `/think:medium` або `/t high`.
|
||||
- Це закріплюється для поточної сесії (за замовчуванням для кожного відправника окремо); скидається через `/think:off` або скидання сесії через простій.
|
||||
- Надсилається відповідь-підтвердження (`Рівень мислення встановлено на high.` / `Мислення вимкнено.`). Якщо рівень недійсний (наприклад, `/thinking big`), команда відхиляється з підказкою, а стан сесії залишається без змін.
|
||||
- Надішліть `/think` (або `/think:`) без аргументу, щоб побачити поточний рівень мислення.
|
||||
|
||||
## Застосування за агентом
|
||||
|
||||
- **Вбудований Pi**: визначений рівень передається в runtime агента Pi у межах процесу.
|
||||
- **Вбудований Pi**: визначений рівень передається у внутрішній runtime агента Pi.
|
||||
|
||||
## Швидкий режим (/fast)
|
||||
|
||||
- Рівні: `on|off`.
|
||||
- Повідомлення лише з директивою перемикає перевизначення швидкого режиму для сесії та відповідає `Fast mode enabled.` / `Fast mode disabled.`.
|
||||
- Повідомлення лише з директивою перемикає перевизначення швидкого режиму для сесії та повертає `Швидкий режим увімкнено.` / `Швидкий режим вимкнено.`.
|
||||
- Надішліть `/fast` (або `/fast status`) без режиму, щоб побачити поточний ефективний стан швидкого режиму.
|
||||
- OpenClaw визначає швидкий режим у такому порядку:
|
||||
1. Вбудоване/директивне `/fast on|off`
|
||||
1. Вбудована/директива-єдина `/fast on|off`
|
||||
2. Перевизначення сесії
|
||||
3. Значення за замовчуванням для агента (`agents.list[].fastModeDefault`)
|
||||
4. Конфігурація для моделі: `agents.defaults.models["<provider>/<model>"].params.fastMode`
|
||||
5. Резервний варіант: `off`
|
||||
- Для `openai/*` швидкий режим зіставляється з обробкою пріоритету OpenAI через надсилання `service_tier=priority` у підтримуваних запитах Responses.
|
||||
- Для `openai/*` швидкий режим зіставляється з пріоритетною обробкою OpenAI через надсилання `service_tier=priority` у підтримуваних запитах Responses.
|
||||
- Для `openai-codex/*` швидкий режим надсилає той самий прапорець `service_tier=priority` у Codex Responses. OpenClaw зберігає один спільний перемикач `/fast` для обох шляхів автентифікації.
|
||||
- Для прямих публічних запитів `anthropic/*`, включно з трафіком, автентифікованим через OAuth і надісланим до `api.anthropic.com`, швидкий режим зіставляється з рівнями сервісу Anthropic: `/fast on` встановлює `service_tier=auto`, `/fast off` встановлює `service_tier=standard_only`.
|
||||
- Для прямих публічних запитів `anthropic/*`, включно з трафіком з OAuth-автентифікацією, надісланим до `api.anthropic.com`, швидкий режим зіставляється з рівнями сервісу Anthropic: `/fast on` встановлює `service_tier=auto`, `/fast off` встановлює `service_tier=standard_only`.
|
||||
- Для `minimax/*` на Anthropic-сумісному шляху `/fast on` (або `params.fastMode: true`) переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
|
||||
- Явні параметри моделі Anthropic `serviceTier` / `service_tier` перевизначають значення швидкого режиму за замовчуванням, якщо встановлено обидва. OpenClaw, як і раніше, пропускає впровадження service tier Anthropic для не-Anthropic proxy base URL.
|
||||
- `/status` показує `Fast` лише тоді, коли швидкий режим увімкнено.
|
||||
- Явні параметри моделі Anthropic `serviceTier` / `service_tier` перевизначають значення швидкого режиму за замовчуванням, коли встановлено обидва. OpenClaw, як і раніше, пропускає інʼєкцію рівня сервісу Anthropic для базових URL проксі, що не належать Anthropic.
|
||||
- `/status` показує `Fast` лише коли швидкий режим увімкнено.
|
||||
|
||||
## Докладні директиви (/verbose або /v)
|
||||
## Директиви розширених відповідей (/verbose або /v)
|
||||
|
||||
- Рівні: `on` (мінімальний) | `full` | `off` (за замовчуванням).
|
||||
- Повідомлення лише з директивою перемикає докладність для сесії та відповідає `Verbose logging enabled.` / `Verbose logging disabled.`; недійсні рівні повертають підказку без зміни стану.
|
||||
- `/verbose off` зберігає явне перевизначення сесії; очистіть його через інтерфейс Sessions, вибравши `inherit`.
|
||||
- Вбудована директива впливає лише на це повідомлення; інакше застосовуються значення за замовчуванням для сесії/глобальні.
|
||||
- Надішліть `/verbose` (або `/verbose:`) без аргументу, щоб побачити поточний рівень докладності.
|
||||
- Коли verbose увімкнено, агенти, які видають структуровані результати інструментів (Pi, інші JSON-агенти), надсилають кожен виклик інструмента назад як окреме повідомлення лише з метаданими, з префіксом `<emoji> <tool-name>: <arg>`, коли доступно (path/command). Ці підсумки інструментів надсилаються щойно кожен інструмент запускається (окремими бульбашками), а не як потокові дельти.
|
||||
- Підсумки збоїв інструментів залишаються видимими у звичайному режимі, але суфікси з необробленими деталями помилок приховуються, якщо verbose не дорівнює `on` або `full`.
|
||||
- Коли verbose має значення `full`, після завершення також пересилаються виводи інструментів (окремою бульбашкою, скорочені до безпечної довжини). Якщо ви перемкнете `/verbose on|full|off`, поки виконання триває, наступні бульбашки інструментів врахують нове налаштування.
|
||||
- Повідомлення лише з директивою перемикає розширені відповіді для сесії та повертає `Розширене логування ввімкнено.` / `Розширене логування вимкнено.`; недійсні рівні повертають підказку без зміни стану.
|
||||
- `/verbose off` зберігає явне перевизначення сесії; очистьте його через інтерфейс Sessions, вибравши `inherit`.
|
||||
- Вбудована директива впливає лише на це повідомлення; інакше застосовуються значення сесії/глобальні за замовчуванням.
|
||||
- Надішліть `/verbose` (або `/verbose:`) без аргументу, щоб побачити поточний рівень розширеного режиму.
|
||||
- Коли розширений режим увімкнено, агенти, які видають структуровані результати інструментів (Pi, інші JSON-агенти), надсилають кожен виклик інструмента назад як окреме повідомлення лише з метаданими, з префіксом `<emoji> <tool-name>: <arg>`, коли доступно (path/command). Ці зведення інструментів надсилаються щойно кожен інструмент запускається (окремими бульбашками), а не як streaming-дельти.
|
||||
- Зведення про помилки інструментів залишаються видимими у звичайному режимі, але суфікси з сирими деталями помилок приховуються, якщо тільки `verbose` не має значення `on` або `full`.
|
||||
- Коли `verbose` має значення `full`, вихідні дані інструментів також пересилаються після завершення (окрема бульбашка, обрізана до безпечної довжини). Якщо ви перемкнете `/verbose on|full|off`, поки виконання ще триває, наступні бульбашки інструментів врахують нове налаштування.
|
||||
|
||||
## Директиви трасування Plugin (/trace)
|
||||
|
||||
- Рівні: `on` | `off` (за замовчуванням).
|
||||
- Повідомлення лише з директивою перемикає вивід трасування Plugin для сесії та відповідає `Plugin trace enabled.` / `Plugin trace disabled.`.
|
||||
- Вбудована директива впливає лише на це повідомлення; інакше застосовуються значення за замовчуванням для сесії/глобальні.
|
||||
- Повідомлення лише з директивою перемикає вивід трасування Plugin для сесії та повертає `Трасування Plugin увімкнено.` / `Трасування Plugin вимкнено.`.
|
||||
- Вбудована директива впливає лише на це повідомлення; інакше застосовуються значення сесії/глобальні за замовчуванням.
|
||||
- Надішліть `/trace` (або `/trace:`) без аргументу, щоб побачити поточний рівень трасування.
|
||||
- `/trace` вужчий за `/verbose`: він показує лише рядки трасування/налагодження, що належать плагіну, як-от підсумки налагодження Active Memory.
|
||||
- Рядки трасування можуть з’являтися в `/status` і як подальше діагностичне повідомлення після звичайної відповіді помічника.
|
||||
- `/trace` вужчий за `/verbose`: він показує лише рядки трасування/налагодження, що належать плагінам, наприклад підсумки налагодження Active Memory.
|
||||
- Рядки трасування можуть зʼявлятися в `/status` і як наступне діагностичне повідомлення після звичайної відповіді помічника.
|
||||
|
||||
## Видимість міркувань (/reasoning)
|
||||
|
||||
- Рівні: `on|off|stream`.
|
||||
- Повідомлення лише з директивою перемикає, чи показуються блоки мислення у відповідях.
|
||||
- Коли ввімкнено, reasoning надсилається як **окреме повідомлення** з префіксом `Reasoning:`.
|
||||
- Коли цю функцію ввімкнено, reasoning надсилається як **окреме повідомлення** з префіксом `Reasoning:`.
|
||||
- `stream` (лише Telegram): транслює reasoning у чернетку бульбашки Telegram, поки генерується відповідь, а потім надсилає фінальну відповідь без reasoning.
|
||||
- Псевдонім: `/reason`.
|
||||
- Надішліть `/reasoning` (або `/reasoning:`) без аргументу, щоб побачити поточний рівень видимості міркувань.
|
||||
- Порядок визначення: вбудована директива, потім перевизначення сесії, потім значення за замовчуванням для агента (`agents.list[].reasoningDefault`), потім резервний варіант (`off`).
|
||||
|
||||
## Пов’язане
|
||||
## Повʼязане
|
||||
|
||||
- Документація режиму elevated міститься в [Elevated mode](/uk/tools/elevated).
|
||||
- Документація для elevated mode розміщена в [Elevated mode](/uk/tools/elevated).
|
||||
|
||||
## Heartbeat
|
||||
## Heartbeats
|
||||
|
||||
- Тіло перевірки Heartbeat — це налаштований prompt heartbeat (типово: `Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`). Вбудовані директиви в повідомленні heartbeat застосовуються як зазвичай (але уникайте зміни значень сесії за замовчуванням через heartbeat).
|
||||
- Доставка Heartbeat за замовчуванням надсилає лише фінальний payload. Щоб також надсилати окреме повідомлення `Reasoning:` (коли доступне), задайте `agents.defaults.heartbeat.includeReasoning: true` або `agents.list[].heartbeat.includeReasoning: true` для окремого агента.
|
||||
- Тіло probe для Heartbeat — це налаштований prompt Heartbeat (за замовчуванням: `Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`). Вбудовані директиви в повідомленні Heartbeat застосовуються як зазвичай (але уникайте зміни значень сесії за замовчуванням із Heartbeat).
|
||||
- Доставка Heartbeat за замовчуванням використовує лише фінальний payload. Щоб також надсилати окреме повідомлення `Reasoning:` (коли доступне), встановіть `agents.defaults.heartbeat.includeReasoning: true` або `agents.list[].heartbeat.includeReasoning: true` для конкретного агента.
|
||||
|
||||
## Веб-інтерфейс чату
|
||||
## Інтерфейс вебчату
|
||||
|
||||
- Селектор мислення у веб-чаті відображає збережений рівень сесії зі сховища/конфігурації вхідної сесії під час завантаження сторінки.
|
||||
- Вибір іншого рівня одразу записує перевизначення сесії через `sessions.patch`; він не чекає наступного надсилання і не є одноразовим перевизначенням `thinkingOnce`.
|
||||
- Перший варіант завжди має вигляд `Default (<resolved level>)`, де визначене значення за замовчуванням надходить із профілю мислення провайдера для активної моделі сесії плюс та сама логіка резервного варіанта, яку використовують `/status` і `session_status`.
|
||||
- Перемикач використовує `thinkingLevels`, повернуті рядком/defaults сесії Gateway, а `thinkingOptions` зберігаються як застарілий список міток. Інтерфейс браузера не зберігає власний список regex провайдерів; плагіни керують наборами рівнів, специфічними для моделі.
|
||||
- `/think:<level>` як і раніше працює та оновлює той самий збережений рівень сесії, тож директиви чату й перемикач залишаються синхронізованими.
|
||||
- Селектор мислення у вебчаті відображає збережений для сесії рівень із вхідного сховища сесії/конфігурації під час завантаження сторінки.
|
||||
- Вибір іншого рівня негайно записує перевизначення сесії через `sessions.patch`; він не чекає наступного надсилання і не є одноразовим перевизначенням `thinkingOnce`.
|
||||
- Перший варіант завжди має вигляд `Default (<resolved level>)`, де визначене значення за замовчуванням походить із профілю мислення провайдера для активної моделі сесії плюс тієї самої резервної логіки, яку використовують `/status` і `session_status`.
|
||||
- Перемикач використовує `thinkingLevels`, які повертаються рядком/defaults сесії Gateway, а `thinkingOptions` зберігається як застарілий список міток. Інтерфейс браузера не зберігає власний regex-список провайдерів; набори рівнів для конкретних моделей належать плагінам.
|
||||
- `/think:<level>` як і раніше працює та оновлює той самий збережений рівень сесії, тому директиви чату й перемикач залишаються синхронізованими.
|
||||
|
||||
## Профілі провайдерів
|
||||
|
||||
- Плагіни провайдерів можуть надавати `resolveThinkingProfile(ctx)` для визначення підтримуваних рівнів моделі та значення за замовчуванням.
|
||||
- Кожен рівень профілю має збережений канонічний `id` (`off`, `minimal`, `low`, `medium`, `high`, `xhigh`, `adaptive` або `max`) і може містити відображувану `label`. Бінарні провайдери використовують `{ id: "low", label: "on" }`.
|
||||
- Опубліковані застарілі хуки (`supportsXHighThinking`, `isBinaryThinking` і `resolveDefaultThinkingLevel`) залишаються адаптерами сумісності, але нові користувацькі набори рівнів слід реалізовувати через `resolveThinkingProfile`.
|
||||
- Рядки/defaults Gateway надають `thinkingLevels`, `thinkingOptions` і `thinkingDefault`, щоб клієнти ACP/чату відображали ті самі id і label профілю, які використовує перевірка в runtime.
|
||||
- Опубліковані застарілі хуки (`supportsXHighThinking`, `isBinaryThinking` і `resolveDefaultThinkingLevel`) залишаються як адаптери сумісності, але нові користувацькі набори рівнів мають використовувати `resolveThinkingProfile`.
|
||||
- Рядки/defaults Gateway надають `thinkingLevels`, `thinkingOptions` і `thinkingDefault`, щоб клієнти ACP/чату відображали ті самі `id` і мітки профілю, які використовує валідація runtime.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user