chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-02 05:42:11 +00:00
parent 8960d00284
commit 86ea2efb98
3 changed files with 368 additions and 366 deletions

View File

@ -1,72 +1,72 @@
---
read_when:
- Вам потрібні точна семантика конфігурації на рівні полів або значення за замовчуванням
- Ви перевіряєте блоки конфігурації каналу, моделі, Gateway або інструмента.
- Вам потрібна точна семантика конфігурації на рівні полів або значення за замовчуванням
- Ви перевіряєте блоки конфігурації каналу, моделі, Gateway або інструмента
summary: Довідник конфігурації Gateway для основних ключів OpenClaw, значень за замовчуванням і посилань на спеціалізовані довідники підсистем
title: Довідник із конфігурації
x-i18n:
generated_at: "2026-05-01T23:48:19Z"
generated_at: "2026-05-02T05:38:58Z"
model: gpt-5.5
provider: openai
source_hash: c644a12d8c33b28e666ffb0e6d74d1e3310d544812058c4973b34a8b16cf95d9
source_hash: 0a5820cac79161975cb4ab4ba8171df3d29366cbee2913d093374e2aa8b604a1
source_path: gateway/configuration-reference.md
workflow: 16
---
Основний довідник конфігурації для `~/.openclaw/openclaw.json`. Огляд, орієнтований на завдання, див. у [Конфігурація](/uk/gateway/configuration).
Довідник основної конфігурації для `~/.openclaw/openclaw.json`. Огляд, орієнтований на завдання, див. у [Конфігурація](/uk/gateway/configuration).
Охоплює основні поверхні конфігурації OpenClaw і посилається назовні, коли підсистема має власний глибший довідник. Каталоги команд, що належать каналам і Plugin, а також глибокі параметри пам’яті/QMD розміщені на власних сторінках, а не на цій.
Охоплює основні поверхні конфігурації OpenClaw і посилається на окремі матеріали, коли підсистема має власний глибший довідник. Каталоги команд, що належать каналам і plugins, а також поглиблені налаштування пам’яті/QMD розміщені на власних сторінках, а не на цій.
Джерело істини в коді:
Істина в коді:
- `openclaw config schema` виводить актуальну JSON Schema, що використовується для валідації та Control UI, з об’єднаними метаданими вбудованих/plugin/каналів, коли вони доступні
- `config.schema.lookup` повертає один вузол схеми з прив’язкою до шляху для інструментів деталізації
- `pnpm config:docs:check` / `pnpm config:docs:gen` перевіряють базовий хеш документації конфігурації щодо поточної поверхні схеми
- `openclaw config schema` друкує поточну JSON Schema, що використовується для валідації та Control UI, з об’єднаними метаданими вбудованих/plugin/каналів, коли вони доступні
- `config.schema.lookup` повертає один вузол схеми, обмежений шляхом, для інструментів деталізації
- `pnpm config:docs:check` / `pnpm config:docs:gen` перевіряють базовий хеш документації конфігурації відносно поточної поверхні схеми
Шлях пошуку агента: використовуйте дію інструмента `gateway` `config.schema.lookup` для
точної документації й обмежень на рівні полів перед редагуванням. Використовуйте
[Конфігурація](/uk/gateway/configuration) для орієнтованих на завдання настанов, а цю сторінку
для ширшої карти полів, стандартних значень і посилань на довідники підсистем.
точної документації та обмежень на рівні полів перед редагуванням. Використовуйте
[Конфігурація](/uk/gateway/configuration) для настанов, орієнтованих на завдання, а цю сторінку
для ширшої карти полів, значень за замовчуванням і посилань на довідники підсистем.
Окремі глибокі довідники:
- [Довідник конфігурації пам’яті](/uk/reference/memory-config) для `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` і конфігурації Dreaming у `plugins.entries.memory-core.config.dreaming`
- [Slash-команди](/uk/tools/slash-commands) для поточного вбудованого + комплектного каталогу команд
- сторінки власників каналів/Plugin для поверхонь команд, специфічних для каналів
- сторінки відповідних каналів/plugin для поверхонь команд, специфічних для каналу
Формат конфігурації — **JSON5** (дозволені коментарі та завершальні коми). Усі поля необов’язкові — OpenClaw використовує безпечні стандартні значення, якщо їх пропущено.
Формат конфігурації — **JSON5** (дозволені коментарі та кінцеві коми). Усі поля необов’язкові — OpenClaw використовує безпечні значення за замовчуванням, коли їх пропущено.
---
## Канали
Ключі конфігурації окремих каналів перенесено на спеціальну сторінку — див.
Ключі конфігурації для кожного каналу перенесено на окрему сторінку — див.
[Конфігурація — канали](/uk/gateway/config-channels) для `channels.*`,
зокрема Slack, Discord, Telegram, WhatsApp, Matrix, iMessage та інших
комплектних каналів (автентифікація, контроль доступу, кілька облікових записів, керування згадками).
комплектних каналів (автентифікація, контроль доступу, кілька облікових записів, обмеження за згадуванням).
## Стандартні значення агента, багато агентів, сесії та повідомлення
## Значення агента за замовчуванням, багатоагентність, сесії та повідомлення
Перенесено на спеціальну сторінку — див.
Перенесено на окрему сторінку — див.
[Конфігурація — агенти](/uk/gateway/config-agents) для:
- `agents.defaults.*` (робоча область, модель, мислення, Heartbeat, пам’ять, медіа, Skills, sandbox)
- `multiAgent.*` (маршрутизація й прив’язки для кількох агентів)
- `session.*` (життєвий цикл сесії, Compaction, обрізання)
- `agents.defaults.*` (робочий простір, модель, мислення, Heartbeat, пам’ять, медіа, Skills, пісочниця)
- `multiAgent.*` (багатоагентна маршрутизація та прив’язки)
- `session.*` (життєвий цикл сесії, Compaction, очищення)
- `messages.*` (доставка повідомлень, TTS, рендеринг markdown)
- `talk.*` (режим Talk)
- `talk.speechLocale`: необов’язковий ідентифікатор локалі BCP 47 для розпізнавання мовлення Talk на iOS/macOS
- `talk.silenceTimeoutMs`: коли не задано, Talk зберігає стандартне для платформи вікно паузи перед надсиланням транскрипту (`700 ms on macOS and Android, 900 ms on iOS`)
- `talk.silenceTimeoutMs`: якщо не задано, Talk зберігає стандартне для платформи вікно паузи перед надсиланням транскрипта (`700 ms on macOS and Android, 900 ms on iOS`)
## Інструменти та власні провайдери
Політика інструментів, експериментальні перемикачі, конфігурація інструментів на основі провайдерів і налаштування власного
провайдера / базового URL перенесені на спеціальну сторінку — див.
Політику інструментів, експериментальні перемикачі, конфігурацію інструментів на основі провайдерів і налаштування власного
провайдера / базового URL перенесено на окрему сторінку — див.
[Конфігурація — інструменти та власні провайдери](/uk/gateway/config-tools).
## Моделі
Визначення провайдерів, списки дозволених моделей і налаштування власного провайдера розміщені в
Визначення провайдерів, списки дозволених моделей і налаштування власних провайдерів містяться в
[Конфігурація — інструменти та власні провайдери](/uk/gateway/config-tools#custom-providers-and-base-urls).
Корінь `models` також керує глобальною поведінкою каталогу моделей.
@ -79,16 +79,16 @@ x-i18n:
}
```
- `models.mode`: поведінка каталогу провайдера (`merge` або `replace`).
- `models.providers`: мапа власних провайдерів із ключами за id провайдера.
- `models.pricing.enabled`: керує фоновим завантаженням цін. Коли
- `models.mode`: поведінка каталогу провайдерів (`merge` або `replace`).
- `models.providers`: мапа власних провайдерів, індексована за id провайдера.
- `models.pricing.enabled`: керує фоновим початковим завантаженням цін. Коли
`false`, запуск Gateway пропускає отримання каталогів цін OpenRouter і LiteLLM;
налаштовані значення `models.providers.*.models[].cost` і далі працюють для локальних
налаштовані значення `models.providers.*.models[].cost` досі працюють для локальних
оцінок вартості.
## MCP
Визначення MCP-серверів, керованих OpenClaw, розміщені в `mcp.servers` і
Визначення MCP-серверів, керовані OpenClaw, містяться в `mcp.servers` і
використовуються вбудованим Pi та іншими runtime-адаптерами. Команди `openclaw mcp list`,
`show`, `set` і `unset` керують цим блоком без підключення до
цільового сервера під час редагування конфігурації.
@ -118,17 +118,17 @@ x-i18n:
- `mcp.servers`: іменовані визначення stdio або віддалених MCP-серверів для runtime, які
надають налаштовані MCP-інструменти.
Віддалені записи використовують `transport: "streamable-http"` або `transport: "sse"`;
`type: "http"` є CLI-native псевдонімом, який `openclaw mcp set` і
`type: "http"` — це CLI-native псевдонім, який `openclaw mcp set` і
`openclaw doctor --fix` нормалізують у канонічне поле `transport`.
- `mcp.sessionIdleTtlMs`: TTL простою для комплектних MCP runtime в межах сесії.
Одноразові вбудовані запуски запитують очищення наприкінці виконання; цей TTL є запасним механізмом для
- `mcp.sessionIdleTtlMs`: idle TTL для сесійно-обмежених комплектних MCP runtime.
Одноразові вбудовані запуски запитують очищення наприкінці виконання; цей TTL є резервним механізмом для
довготривалих сесій і майбутніх викликачів.
- Зміни в `mcp.*` застосовуються гаряче через утилізацію кешованих MCP runtime сесії.
Наступне виявлення/використання інструмента відтворює їх із нової конфігурації, тому видалені
записи `mcp.servers` прибираються негайно, а не чекають TTL простою.
- Зміни в `mcp.*` застосовуються гаряче шляхом утилізації кешованих сесійних MCP runtime.
Наступне виявлення/використання інструментів відтворює їх із нової конфігурації, тому вилучені
записи `mcp.servers` прибираються негайно, а не чекають idle TTL.
Див. [MCP](/uk/cli/mcp#openclaw-as-an-mcp-client-registry) і
[CLI бекенди](/uk/gateway/cli-backends#bundle-mcp-overlays) щодо поведінки runtime.
[CLI backend-и](/uk/gateway/cli-backends#bundle-mcp-overlays) щодо поведінки runtime.
## Skills
@ -155,14 +155,14 @@ x-i18n:
}
```
- `allowBundled`: необов’язковий список дозволених лише для комплектних Skills (керовані/робочі Skills не зачіпаються).
- `load.extraDirs`: додаткові спільні корені Skills (найнижчий пріоритет).
- `allowBundled`: необов’язковий список дозволених лише для комплектних skills (керовані/робочопросторові skills не зачіпаються).
- `load.extraDirs`: додаткові спільні корені skills (найнижчий пріоритет).
- `install.preferBrew`: коли true, надає перевагу інсталяторам Homebrew, коли `brew`
доступний, перед переходом до інших типів інсталяторів.
- `install.nodeManager`: перевага інсталятора node для специфікацій `metadata.openclaw.install`
- `install.nodeManager`: перевага Node-інсталятора для специфікацій `metadata.openclaw.install`
(`npm` | `pnpm` | `yarn` | `bun`).
- `entries.<skillKey>.enabled: false` вимикає Skill, навіть якщо вона комплектна/встановлена.
- `entries.<skillKey>.apiKey`: зручність для Skills, які оголошують основну змінну середовища (рядок відкритим текстом або об’єкт SecretRef).
- `entries.<skillKey>.enabled: false` вимикає skill, навіть якщо він комплектний/встановлений.
- `entries.<skillKey>.apiKey`: зручність для skills, які оголошують основну env-змінну (рядок відкритим текстом або об’єкт SecretRef).
---
@ -190,41 +190,41 @@ x-i18n:
}
```
- Завантажуються з `~/.openclaw/extensions`, `<workspace>/.openclaw/extensions`, плюс `plugins.load.paths`.
- Виявлення приймає нативні Plugins OpenClaw, а також сумісні пакети Codex і пакети Claude, зокрема пакети Claude без маніфесту зі стандартним макетом.
- Завантажуються з `~/.openclaw/extensions`, `<workspace>/.openclaw/extensions`, а також `plugins.load.paths`.
- Виявлення приймає нативні plugins OpenClaw, а також сумісні пакети Codex і пакети Claude, включно з пакетами Claude стандартної структури без маніфеста.
- **Зміни конфігурації потребують перезапуску gateway.**
- `allow`: необов’язковий список дозволених (завантажуються лише перелічені Plugins). `deny` має перевагу.
- `plugins.entries.<id>.apiKey`: зручне поле API-ключа на рівні Plugin (коли підтримується Plugin).
- `plugins.entries.<id>.env`: мапа змінних середовища в межах Plugin.
- `plugins.entries.<id>.hooks.allowPromptInjection`: коли `false`, ядро блокує `before_prompt_build` та ігнорує поля, що змінюють prompt, зі застарілого `before_agent_start`, водночас зберігаючи застарілі `modelOverride` і `providerOverride`. Застосовується до нативних хуків Plugin і підтримуваних каталогів хуків, наданих пакетами.
- `plugins.entries.<id>.hooks.allowConversationAccess`: коли `true`, довірені невбудовані Plugins можуть читати необроблений вміст розмови з типізованих хуків, як-от `llm_input`, `llm_output`, `before_agent_finalize` і `agent_end`.
- `plugins.entries.<id>.subagent.allowModelOverride`: явно довіряє цьому Plugin запитувати перевизначення `provider` і `model` для кожного запуску фонових subagent-запусків.
- `plugins.entries.<id>.subagent.allowedModels`: необов’язковий список дозволених канонічних цілей `provider/model` для довірених перевизначень subagent. Використовуйте `"*"` лише тоді, коли навмисно хочете дозволити будь-яку модель.
- `plugins.entries.<id>.config`: об’єкт конфігурації, визначений Plugin (валідується нативною схемою Plugin OpenClaw, коли доступна).
- Налаштування облікових записів/runtime каналів Plugin зберігаються в `channels.<id>` і мають описуватися метаданими `channelConfigs` маніфесту Plugin-власника, а не центральним реєстром параметрів OpenClaw.
- `allow`: необов’язковий список дозволених (завантажуються лише перелічені plugins). `deny` має перевагу.
- `plugins.entries.<id>.apiKey`: зручне поле API-ключа на рівні plugin (коли підтримується plugin).
- `plugins.entries.<id>.env`: мапа env-змінних, обмежена plugin.
- `plugins.entries.<id>.hooks.allowPromptInjection`: коли `false`, ядро блокує `before_prompt_build` і ігнорує поля, що змінюють prompt, із застарілого `before_agent_start`, водночас зберігаючи застарілі `modelOverride` і `providerOverride`. Застосовується до нативних хуків plugin і підтримуваних директорій хуків, наданих пакетами.
- `plugins.entries.<id>.hooks.allowConversationAccess`: коли `true`, довірені некомплектні plugins можуть читати необроблений вміст розмови з типізованих хуків, таких як `llm_input`, `llm_output`, `before_agent_finalize` і `agent_end`.
- `plugins.entries.<id>.subagent.allowModelOverride`: явно довіряє цьому plugin запитувати перевизначення `provider` і `model` для кожного запуску фонових subagent-запусків.
- `plugins.entries.<id>.subagent.allowedModels`: необов’язковий список дозволених канонічних цілей `provider/model` для довірених перевизначень subagent. Використовуйте `"*"` лише коли навмисно хочете дозволити будь-яку модель.
- `plugins.entries.<id>.config`: об’єкт конфігурації, визначений plugin (валідується схемою нативного OpenClaw plugin, коли доступна).
- Налаштування облікового запису/runtime каналового plugin містяться в `channels.<id>` і мають описуватися метаданими `channelConfigs` маніфеста відповідного plugin, а не центральним реєстром опцій OpenClaw.
- `plugins.entries.firecrawl.config.webFetch`: налаштування провайдера web-fetch Firecrawl.
- `apiKey`: API-ключ Firecrawl (приймає SecretRef). Повертається до `plugins.entries.firecrawl.config.webSearch.apiKey`, застарілого `tools.web.fetch.firecrawl.apiKey` або змінної середовища `FIRECRAWL_API_KEY`.
- `baseUrl`: базовий URL API Firecrawl (стандартно: `https://api.firecrawl.dev`).
- `onlyMainContent`: витягувати зі сторінок лише основний вміст (стандартно: `true`).
- `maxAgeMs`: максимальний вік кешу в мілісекундах (стандартно: `172800000` / 2 дні).
- `timeoutSeconds`: тайм-аут scrape-запиту в секундах (стандартно: `60`).
- `apiKey`: API-ключ Firecrawl (приймає SecretRef). Повертається до `plugins.entries.firecrawl.config.webSearch.apiKey`, застарілого `tools.web.fetch.firecrawl.apiKey` або env-змінної `FIRECRAWL_API_KEY`.
- `baseUrl`: базовий URL API Firecrawl (за замовчуванням: `https://api.firecrawl.dev`; self-hosted перевизначення мають спрямовуватися на приватні/внутрішні endpoints).
- `onlyMainContent`: витягувати зі сторінок лише основний вміст (за замовчуванням: `true`).
- `maxAgeMs`: максимальний вік кешу в мілісекундах (за замовчуванням: `172800000` / 2 дні).
- `timeoutSeconds`: таймаут scrape-запиту в секундах (за замовчуванням: `60`).
- `plugins.entries.xai.config.xSearch`: налаштування xAI X Search (вебпошук Grok).
- `enabled`: увімкнути провайдера X Search.
- `enabled`: увімкнути провайдер X Search.
- `model`: модель Grok для пошуку (наприклад, `"grok-4-1-fast"`).
- `plugins.entries.memory-core.config.dreaming`: налаштування memory dreaming. Див. [Dreaming](/uk/concepts/dreaming) щодо фаз і порогів.
- `enabled`: головний перемикач dreaming (стандартно `false`).
- `frequency`: Cron-каденція для кожного повного проходу dreaming (`"0 3 * * *"` за замовчуванням).
- `model`: необов’язкове перевизначення моделі subagent Dream Diary. Потребує `plugins.entries.memory-core.subagent.allowModelOverride: true`; поєднуйте з `allowedModels`, щоб обмежити цілі. Помилки недоступності моделі повторюються один раз зі стандартною моделлю сесії; збої довіри або списку дозволених не переходять до fallback мовчки.
- `plugins.entries.memory-core.config.dreaming`: налаштування Dreaming пам’яті. Див. [Dreaming](/uk/concepts/dreaming) щодо фаз і порогів.
- `enabled`: головний перемикач Dreaming (за замовчуванням `false`).
- `frequency`: cron-інтервал для кожного повного проходу Dreaming (`"0 3 * * *"` за замовчуванням).
- `model`: необов’язкове перевизначення моделі subagent Dream Diary. Потребує `plugins.entries.memory-core.subagent.allowModelOverride: true`; поєднуйте з `allowedModels`, щоб обмежити цілі. Помилки недоступності моделі повторюються один раз із моделлю сесії за замовчуванням; помилки довіри або списку дозволених не відступають мовчки.
- політика фаз і пороги є деталями реалізації (не користувацькими ключами конфігурації).
- Повна конфігурація пам’яті розміщена в [Довідник конфігурації пам’яті](/uk/reference/memory-config):
- Повна конфігурація пам’яті міститься в [Довідник конфігурації пам’яті](/uk/reference/memory-config):
- `agents.defaults.memorySearch.*`
- `memory.backend`
- `memory.citations`
- `memory.qmd.*`
- `plugins.entries.memory-core.config.dreaming`
- Увімкнені Plugins пакетів Claude також можуть додавати вбудовані стандартні значення Pi з `settings.json`; OpenClaw застосовує їх як санітизовані налаштування агента, а не як необроблені патчі конфігурації OpenClaw.
- `plugins.slots.memory`: вибрати id активного Plugin пам’яті або `"none"`, щоб вимкнути Plugins пам’яті.
- `plugins.slots.contextEngine`: вибрати id активного Plugin рушія контексту; стандартно `"legacy"`, якщо ви не встановите й не виберете інший рушій.
- Увімкнені plugins пакетів Claude також можуть додавати вбудовані значення Pi за замовчуванням із `settings.json`; OpenClaw застосовує їх як очищені налаштування агента, а не як сирі патчі конфігурації OpenClaw.
- `plugins.slots.memory`: виберіть id активного plugin пам’яті або `"none"`, щоб вимкнути plugins пам’яті.
- `plugins.slots.contextEngine`: виберіть id активного plugin рушія контексту; за замовчуванням `"legacy"`, якщо ви не встановите й не виберете інший рушій.
Див. [Plugins](/uk/tools/plugin).
@ -277,31 +277,31 @@ x-i18n:
```
- `evaluateEnabled: false` вимикає `act:evaluate` і `wait --fn`.
- `tabCleanup` звільняє відстежувані вкладки основного агента після періоду простою або коли
сеанс перевищує свій ліміт. Установіть `idleMinutes: 0` або `maxTabsPerSession: 0`, щоб
- `tabCleanup` звільняє відстежувані вкладки основного агента після простою або коли
сесія перевищує свій ліміт. Установіть `idleMinutes: 0` або `maxTabsPerSession: 0`, щоб
вимкнути ці окремі режими очищення.
- `ssrfPolicy.dangerouslyAllowPrivateNetwork` вимкнено, якщо не задано, тому навігація браузера за замовчуванням залишається суворою.
- `ssrfPolicy.dangerouslyAllowPrivateNetwork` вимкнено, коли його не задано, тому навігація браузера типово лишається суворою.
- Установлюйте `ssrfPolicy.dangerouslyAllowPrivateNetwork: true` лише тоді, коли ви свідомо довіряєте навігації браузера в приватній мережі.
- У суворому режимі кінцеві точки віддалених CDP-профілів (`profiles.*.cdpUrl`) підпадають під те саме блокування приватної мережі під час перевірок досяжності/виявлення.
- У суворому режимі віддалені кінцеві точки CDP-профілів (`profiles.*.cdpUrl`) підпадають під таке саме блокування приватної мережі під час перевірок доступності/виявлення.
- `ssrfPolicy.allowPrivateNetwork` і надалі підтримується як застарілий псевдонім.
- У суворому режимі використовуйте `ssrfPolicy.hostnameAllowlist` і `ssrfPolicy.allowedHostnames` для явних винятків.
- Віддалені профілі працюють лише в режимі підключення (start/stop/reset вимкнено).
- Віддалені профілі працюють лише в режимі підключення (запуск/зупинка/скидання вимкнені).
- `profiles.*.cdpUrl` приймає `http://`, `https://`, `ws://` і `wss://`.
Використовуйте HTTP(S), коли потрібно, щоб OpenClaw виявляв `/json/version`; використовуйте WS(S),
коли ваш провайдер надає прямий URL DevTools WebSocket.
- `remoteCdpTimeoutMs` і `remoteCdpHandshakeTimeoutMs` застосовуються до перевірки досяжності віддаленого й
`attachOnly` CDP, а також до запитів відкриття вкладок. Керовані профілі loopback
зберігають локальні стандартні значення CDP.
Використовуйте HTTP(S), коли хочете, щоб OpenClaw виявляв `/json/version`; використовуйте WS(S),
коли ваш провайдер надає пряму URL-адресу DevTools WebSocket.
- `remoteCdpTimeoutMs` і `remoteCdpHandshakeTimeoutMs` застосовуються до перевірки доступності віддаленого та
`attachOnly` CDP, а також до запитів відкриття вкладок. Керовані loopback
профілі зберігають локальні типові значення CDP.
- Якщо зовнішньо керована служба CDP доступна через loopback, установіть для цього
профілю `attachOnly: true`; інакше OpenClaw розглядатиме порт loopback як
локальний керований профіль браузера й може повідомляти про помилки володіння локальним портом.
профілю `attachOnly: true`; інакше OpenClaw сприйматиме loopback-порт як
локально керований профіль браузера й може повідомляти про помилки володіння локальним портом.
- Профілі `existing-session` використовують Chrome MCP замість CDP і можуть підключатися на
вибраному хості або через підключений вузол браузера.
вибраному хості або через підключений браузерний вузол.
- Профілі `existing-session` можуть задавати `userDataDir`, щоб націлитися на конкретний
профіль браузера на основі Chromium, наприклад Brave або Edge.
профіль браузера на базі Chromium, наприклад Brave або Edge.
- Профілі `existing-session` зберігають поточні обмеження маршруту Chrome MCP:
дії на основі snapshot/ref замість націлювання CSS-селекторами, хуки завантаження
одного файла, без перевизначень таймауту діалогів, без `wait --load networkidle`, а також без
дії на основі знімків/ref замість націлювання CSS-селекторами, хуки завантаження
одного файлу, без перевизначень тайм-ауту діалогів, без `wait --load networkidle` і без
`responsebody`, експорту PDF, перехоплення завантажень або пакетних дій.
- Локальні керовані профілі `openclaw` автоматично призначають `cdpPort` і `cdpUrl`; задавайте
`cdpUrl` явно лише для віддаленого CDP.
@ -309,16 +309,16 @@ x-i18n:
`browser.executablePath` для цього профілю. Використовуйте це, щоб запускати один профіль у
Chrome, а інший у Brave.
- Локальні керовані профілі використовують `browser.localLaunchTimeoutMs` для HTTP-виявлення Chrome CDP
після старту процесу та `browser.localCdpReadyTimeoutMs` для
після запуску процесу та `browser.localCdpReadyTimeoutMs` для
готовності CDP websocket після запуску. Збільшуйте їх на повільніших хостах, де Chrome
успішно запускається, але перевірки готовності випереджають старт. Обидва значення мають бути
успішно запускається, але перевірки готовності випереджають запуск. Обидва значення мають бути
додатними цілими числами до `120000` мс; некоректні значення конфігурації відхиляються.
- Порядок автовиявлення: браузер за замовчуванням, якщо він на основі Chromium → Chrome → Brave → Edge → Chromium → Chrome Canary.
- Порядок автовиявлення: типовий браузер, якщо він на базі Chromium → Chrome → Brave → Edge → Chromium → Chrome Canary.
- `browser.executablePath` і `browser.profiles.<name>.executablePath` обидва
приймають `~` і `~/...` для домашнього каталогу вашої ОС перед запуском Chromium.
`userDataDir` для профілю в профілях `existing-session` також розгортається з тильдою.
- Служба керування: лише loopback (порт виводиться з `gateway.port`, стандартно `18791`).
- `extraArgs` додає додаткові прапорці запуску до локального старту Chromium (наприклад
`userDataDir` для окремого профілю в профілях `existing-session` також розгортається з тильдою.
- Служба керування: лише loopback (порт виводиться з `gateway.port`, типово `18791`).
- `extraArgs` додає додаткові прапорці запуску до локального старту Chromium (наприклад,
`--disable-gpu`, розмір вікна або прапорці налагодження).
---
@ -338,7 +338,7 @@ x-i18n:
```
- `seamColor`: акцентний колір для хрому UI нативного застосунку (відтінок бульбашки Talk Mode тощо).
- `assistant`: перевизначення ідентичності Control UI. За відсутності значення використовується ідентичність активного агента.
- `assistant`: перевизначення ідентичності Control UI. Повертається до ідентичності активного агента.
---
@ -415,51 +415,44 @@ x-i18n:
<Accordion title="Відомості про поля Gateway">
- `mode`: `local` (запустити Gateway) або `remote` (під’єднатися до віддаленого Gateway). Gateway відмовляється запускатися, якщо значення не `local`.
- `mode`: `local` (запустити Gateway) або `remote` (підключитися до віддаленого Gateway). Gateway відмовляється запускатися, якщо значення не `local`.
- `port`: один мультиплексований порт для WS + HTTP. Пріоритет: `--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > `18789`.
- `bind`: `auto`, `loopback` (типово), `lan` (`0.0.0.0`), `tailnet` (лише IP Tailscale) або `custom`.
- **Застарілі псевдоніми bind**: використовуйте значення режиму bind у `gateway.bind` (`auto`, `loopback`, `lan`, `tailnet`, `custom`), а не псевдоніми хоста (`0.0.0.0`, `127.0.0.1`, `localhost`, `::`, `::1`).
- **Примітка щодо Docker**: типовий bind `loopback` слухає на `127.0.0.1` всередині контейнера. З мережевим мостом Docker (`-p 18789:18789`) трафік надходить на `eth0`, тому gateway недосяжний. Використайте `--network host` або задайте `bind: "lan"` (або `bind: "custom"` з `customBindHost: "0.0.0.0"`), щоб слухати на всіх інтерфейсах.
- **Автентифікація**: типово обов’язкова. Bind не на loopback вимагають автентифікації Gateway. На практиці це означає спільний токен/пароль або identity-aware зворотний проксі з `gateway.auth.mode: "trusted-proxy"`. Майстер onboarding типово генерує токен.
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password` (включно з SecretRefs), явно задайте `gateway.auth.mode` як `token` або `password`. Потоки запуску та встановлення/ремонту сервісу завершуються помилкою, коли обидва налаштовані, а режим не задано.
- `gateway.auth.mode: "none"`: явний режим без автентифікації. Використовуйте лише для довірених налаштувань local loopback; це навмисно не пропонується підказками onboarding.
- `gateway.auth.mode: "trusted-proxy"`: делегує автентифікацію браузера/користувача identity-aware зворотному проксі та довіряє заголовкам ідентичності з `gateway.trustedProxies` (див. [Автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth)). Цей режим типово очікує джерело проксі **не на loopback**; зворотні проксі loopback на тому самому хості потребують явного `gateway.auth.trustedProxy.allowLoopback = true`. Внутрішні викликачі з того самого хоста можуть використовувати `gateway.auth.password` як локальний прямий fallback; `gateway.auth.token` лишається взаємовиключним із режимом trusted-proxy.
- `gateway.auth.allowTailscale`: коли `true`, заголовки ідентичності Tailscale Serve можуть задовольнити автентифікацію Control UI/WebSocket (перевіряється через `tailscale whois`). Кінцеві точки HTTP API **не** використовують цю автентифікацію заголовком Tailscale; натомість вони дотримуються звичайного режиму HTTP-автентифікації gateway. Цей потік без токена припускає, що хост gateway довірений. Типово `true`, коли `tailscale.mode = "serve"`.
- `gateway.auth.rateLimit`: необов’язковий обмежувач невдалих автентифікацій. Застосовується за IP клієнта та за scope автентифікації (shared-secret і device-token відстежуються незалежно). Заблоковані спроби повертають `429` + `Retry-After`.
- На асинхронному шляху Tailscale Serve Control UI невдалі спроби для того самого `{scope, clientIp}` серіалізуються перед записом помилки. Тому паралельні хибні спроби від того самого клієнта можуть спрацювати обмежувач на другому запиті, замість того щоб обидві пройшли як звичайні невідповідності.
- `gateway.auth.rateLimit.exemptLoopback` типово `true`; задайте `false`, коли навмисно хочете також обмежувати трафік localhost (для тестових налаштувань або суворих розгортань проксі).
- Спроби WS-автентифікації з browser-origin завжди обмежуються з вимкненим винятком для loopback (захист у глибину проти браузерного brute force localhost).
- На loopback ці блокування browser-origin ізольовані за нормалізованим значенням `Origin`,
тож повторні помилки з одного origin localhost не блокують автоматично
інший origin.
- `tailscale.mode`: `serve` (лише tailnet, bind loopback) або `funnel` (публічний, вимагає автентифікації).
- `controlUi.allowedOrigins`: явний allowlist browser-origin для під’єднань Gateway WebSocket. Потрібний, коли очікуються браузерні клієнти з origin не на loopback.
- `controlUi.dangerouslyAllowHostHeaderOriginFallback`: небезпечний режим, який увімкнює fallback origin за заголовком Host для розгортань, що навмисно покладаються на політику origin за заголовком Host.
- **Примітка щодо Docker**: типовий bind `loopback` слухає на `127.0.0.1` всередині контейнера. За мережі Docker bridge (`-p 18789:18789`) трафік надходить на `eth0`, тому Gateway недосяжний. Використайте `--network host` або задайте `bind: "lan"` (або `bind: "custom"` з `customBindHost: "0.0.0.0"`), щоб слухати на всіх інтерфейсах.
- **Автентифікація**: типово обов’язкова. Bind-и не loopback вимагають автентифікації Gateway. На практиці це означає спільний токен/пароль або identity-aware reverse proxy з `gateway.auth.mode: "trusted-proxy"`. Майстер онбордингу типово генерує токен.
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password` (включно з SecretRefs), явно задайте `gateway.auth.mode` як `token` або `password`. Запуск і потоки встановлення/відновлення служби завершуються помилкою, коли налаштовано обидва значення, а режим не задано.
- `gateway.auth.mode: "none"`: явний режим без автентифікації. Використовуйте лише для довірених налаштувань local loopback; це навмисно не пропонується підказками онбордингу.
- `gateway.auth.mode: "trusted-proxy"`: делегує автентифікацію браузера/користувача identity-aware reverse proxy і довіряє заголовкам ідентичності з `gateway.trustedProxies` (див. [Автентифікація через довірений проксі](/uk/gateway/trusted-proxy-auth)). Цей режим типово очікує джерело проксі **не loopback**; reverse proxy loopback на тому самому хості потребують явного `gateway.auth.trustedProxy.allowLoopback = true`. Внутрішні виклики з того самого хоста можуть використовувати `gateway.auth.password` як локальний прямий резервний варіант; `gateway.auth.token` залишається взаємовиключним із режимом trusted-proxy.
- `gateway.auth.allowTailscale`: коли `true`, заголовки ідентичності Tailscale Serve можуть задовольняти автентифікацію Control UI/WebSocket (перевіряється через `tailscale whois`). Кінцеві точки HTTP API **не** використовують цю автентифікацію заголовків Tailscale; натомість вони дотримуються звичайного режиму HTTP-автентифікації Gateway. Цей потік без токенів припускає, що хост Gateway довірений. Типово `true`, коли `tailscale.mode = "serve"`.
- `gateway.auth.rateLimit`: необов’язковий обмежувач невдалих спроб автентифікації. Застосовується окремо для IP клієнта та області автентифікації (shared-secret і device-token відстежуються незалежно). Заблоковані спроби повертають `429` + `Retry-After`.
- На асинхронному шляху Tailscale Serve Control UI невдалі спроби для того самого `{scope, clientIp}` серіалізуються перед записом помилки. Тому одночасні невдалі спроби від того самого клієнта можуть спрацювати обмежувачем уже на другому запиті, замість того щоб обидві пройшли як звичайні невідповідності.
- `gateway.auth.rateLimit.exemptLoopback` типово `true`; задайте `false`, коли навмисно хочете обмежувати також трафік localhost (для тестових налаштувань або суворих розгортань проксі).
- Спроби WS-автентифікації з браузерного origin завжди обмежуються з вимкненим винятком для loopback (додатковий захист від browser-based перебору localhost).
- На loopback такі блокування браузерного origin ізольовані для кожного нормалізованого значення `Origin`, тому повторні невдачі з одного origin localhost автоматично не блокують інший origin.
- `tailscale.mode`: `serve` (лише tailnet, bind loopback) або `funnel` (публічний, потребує автентифікації).
- `controlUi.allowedOrigins`: явний allowlist браузерних origin для підключень Gateway WebSocket. Обов’язковий, коли браузерні клієнти очікуються з origin не loopback.
- `controlUi.dangerouslyAllowHostHeaderOriginFallback`: небезпечний режим, який вмикає резервне визначення origin за заголовком Host для розгортань, що навмисно покладаються на політику origin за заголовком Host.
- `remote.transport`: `ssh` (типово) або `direct` (ws/wss). Для `direct` значення `remote.url` має бути `ws://` або `wss://`.
- `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1`: аварійне перевизначення на рівні process-environment клієнта,
яке дозволяє plaintext `ws://` до довірених IP приватної мережі;
типово plaintext лишається дозволеним лише для loopback. Немає еквівалента в `openclaw.json`,
а конфігурація приватної мережі браузера, як-от
`browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`, не впливає на клієнти Gateway
WebSocket.
- `gateway.remote.token` / `.password` — це поля облікових даних віддаленого клієнта. Самі по собі вони не налаштовують автентифікацію gateway.
- `gateway.push.apns.relay.baseUrl`: базовий HTTPS URL для зовнішнього relay APNs, який використовується офіційними/TestFlight збірками iOS після публікації реєстрацій із підтримкою relay до gateway. Цей URL має збігатися з URL relay, скомпільованим у збірку iOS.
- `gateway.push.apns.relay.timeoutMs`: timeout надсилання від gateway до relay у мілісекундах. Типово `10000`.
- Реєстрації з підтримкою relay делегуються конкретній ідентичності gateway. Спарений iOS застосунок отримує `gateway.identity.get`, включає цю ідентичність у реєстрацію relay та пересилає gateway дозвіл на надсилання, scoped до реєстрації. Інший gateway не може повторно використати цю збережену реєстрацію.
- `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1`: аварійне перевизначення в середовищі процесу на стороні клієнта, яке дозволяє plaintext `ws://` до довірених IP приватної мережі; типовим для plaintext залишається лише loopback. Еквівалента в `openclaw.json` немає, а конфігурація приватної мережі браузера, така як `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`, не впливає на клієнтів Gateway WebSocket.
- `gateway.remote.token` / `.password` — це поля облікових даних віддаленого клієнта. Вони самі по собі не налаштовують автентифікацію Gateway.
- `gateway.push.apns.relay.baseUrl`: базова HTTPS URL-адреса для зовнішнього APNs relay, який використовується офіційними/TestFlight збірками iOS після того, як вони публікують у Gateway реєстрації з підтримкою relay. Ця URL-адреса має збігатися з URL relay, скомпільованою в збірку iOS.
- `gateway.push.apns.relay.timeoutMs`: тайм-аут надсилання від Gateway до relay у мілісекундах. Типово `10000`.
- Реєстрації з підтримкою relay делегуються певній ідентичності Gateway. Спарений застосунок iOS отримує `gateway.identity.get`, включає цю ідентичність у реєстрацію relay і пересилає Gateway дозвіл на надсилання, обмежений реєстрацією. Інший Gateway не може повторно використати цю збережену реєстрацію.
- `OPENCLAW_APNS_RELAY_BASE_URL` / `OPENCLAW_APNS_RELAY_TIMEOUT_MS`: тимчасові перевизначення env для наведеної вище конфігурації relay.
- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true`: escape hatch лише для розробки для HTTP URL relay на loopback. Виробничі URL relay мають лишатися на HTTPS.
- `gateway.handshakeTimeoutMs`: timeout pre-auth рукостискання Gateway WebSocket у мілісекундах. Типово: `15000`. `OPENCLAW_HANDSHAKE_TIMEOUT_MS` має пріоритет, коли задано. Збільште це значення на навантажених або малопотужних хостах, де локальні клієнти можуть під’єднатися, поки прогрів запуску ще стабілізується.
- `gateway.channelHealthCheckMinutes`: інтервал монітора стану каналів у хвилинах. Задайте `0`, щоб глобально вимкнути перезапуски монітора стану. Типово: `5`.
- `gateway.channelStaleEventThresholdMinutes`: поріг stale-socket у хвилинах. Тримайте це значення більшим або рівним `gateway.channelHealthCheckMinutes`. Типово: `30`.
- `gateway.channelMaxRestartsPerHour`: максимальна кількість перезапусків монітором стану для каналу/акаунта в rolling hour. Типово: `10`.
- `channels.<provider>.healthMonitor.enabled`: поканальне вимкнення перезапусків монітора стану зі збереженням глобального монітора увімкненим.
- `channels.<provider>.accounts.<accountId>.healthMonitor.enabled`: переозначення на рівні акаунта для багатоканальних каналів. Коли задано, має пріоритет над переозначенням рівня каналу.
- Локальні шляхи виклику gateway можуть використовувати `gateway.remote.*` як fallback лише коли `gateway.auth.*` не задано.
- Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і не розв’язано, розв’язання fail-closed (без маскування віддаленим fallback).
- `trustedProxies`: IP зворотних проксі, які завершують TLS або вставляють заголовки forwarded-client. Вказуйте лише проксі, які ви контролюєте. Записи loopback усе ще дійсні для налаштувань проксі/локального виявлення на тому самому хості (наприклад Tailscale Serve або локальний зворотний проксі), але вони **не** роблять запити loopback придатними для `gateway.auth.mode: "trusted-proxy"`.
- `allowRealIpFallback`: коли `true`, gateway приймає `X-Real-IP`, якщо `X-Forwarded-For` відсутній. Типово `false` для поведінки fail-closed.
- `gateway.nodes.pairing.autoApproveCidrs`: необов’язковий allowlist CIDR/IP для автоматичного схвалення першого pairing пристрою node без запитаних scope. Вимкнено, коли не задано. Це не схвалює автоматично pairing operator/browser/Control UI/WebChat і не схвалює автоматично оновлення ролі, scope, метаданих або публічного ключа.
- `gateway.nodes.allowCommands` / `gateway.nodes.denyCommands`: глобальне формування allow/deny для оголошених команд node після pairing та оцінки platform allowlist. Використовуйте `allowCommands`, щоб явно дозволити небезпечні команди node, як-от `camera.snap`, `camera.clip` і `screen.record`; `denyCommands` вилучає команду, навіть якщо platform default або явний allow інакше включив би її. Після того як node змінить свій оголошений список команд, відхиліть і повторно схваліть pairing цього пристрою, щоб gateway зберіг оновлений snapshot команд.
- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true`: escape hatch лише для розробки для HTTP URL relay на loopback. У production URL relay мають залишатися на HTTPS.
- `gateway.handshakeTimeoutMs`: тайм-аут pre-auth рукостискання Gateway WebSocket у мілісекундах. Типово: `15000`. `OPENCLAW_HANDSHAKE_TIMEOUT_MS` має пріоритет, коли задано. Збільште це значення на завантажених або малопотужних хостах, де локальні клієнти можуть підключатися, поки прогрів запуску ще стабілізується.
- `gateway.channelHealthCheckMinutes`: інтервал монітора здоров’я каналу в хвилинах. Задайте `0`, щоб глобально вимкнути перезапуски health-monitor. Типово: `5`.
- `gateway.channelStaleEventThresholdMinutes`: поріг застарілого сокета в хвилинах. Тримайте це значення більшим або рівним `gateway.channelHealthCheckMinutes`. Типово: `30`.
- `gateway.channelMaxRestartsPerHour`: максимальна кількість перезапусків health-monitor для каналу/облікового запису за ковзну годину. Типово: `10`.
- `channels.<provider>.healthMonitor.enabled`: opt-out для окремого каналу від перезапусків health-monitor зі збереженням глобального монітора ввімкненим.
- `channels.<provider>.accounts.<accountId>.healthMonitor.enabled`: перевизначення для окремого облікового запису в багатооблікових каналах. Коли задано, воно має пріоритет над перевизначенням на рівні каналу.
- Локальні шляхи виклику Gateway можуть використовувати `gateway.remote.*` як резервний варіант лише коли `gateway.auth.*` не задано.
- Якщо `gateway.auth.token` / `gateway.auth.password` явно налаштовано через SecretRef і не розв’язано, розв’язання fail-closed (без маскування віддаленим резервним варіантом).
- `trustedProxies`: IP reverse proxy, які завершують TLS або вставляють заголовки forwarded-client. Вказуйте лише проксі, які контролюєте. Записи loopback все ще чинні для налаштувань проксі/локального виявлення на тому самому хості (наприклад, Tailscale Serve або локальний reverse proxy), але вони **не** роблять запити loopback придатними для `gateway.auth.mode: "trusted-proxy"`.
- `allowRealIpFallback`: коли `true`, Gateway приймає `X-Real-IP`, якщо `X-Forwarded-For` відсутній. Типово `false` для поведінки fail-closed.
- `gateway.nodes.pairing.autoApproveCidrs`: необов’язковий allowlist CIDR/IP для автоматичного схвалення першого спарювання node device без запитаних scopes. Вимкнено, якщо не задано. Це не схвалює автоматично спарювання operator/browser/Control UI/WebChat і не схвалює автоматично оновлення role, scope, metadata або public-key.
- `gateway.nodes.allowCommands` / `gateway.nodes.denyCommands`: глобальне формування allow/deny для оголошених команд node після спарювання та оцінювання platform allowlist. Використовуйте `allowCommands`, щоб opt in до небезпечних команд node, таких як `camera.snap`, `camera.clip` і `screen.record`; `denyCommands` вилучає команду, навіть якщо platform default або явний allow інакше включав би її. Після того як node змінить свій оголошений список команд, відхиліть і повторно схваліть це спарювання пристрою, щоб Gateway зберіг оновлений snapshot команд.
- `gateway.tools.deny`: додаткові назви інструментів, заблоковані для HTTP `POST /tools/invoke` (розширює типовий deny list).
- `gateway.tools.allow`: вилучає назви інструментів із типового HTTP deny list.
@ -467,20 +460,19 @@ x-i18n:
### Кінцеві точки, сумісні з OpenAI
- Chat Completions: типово вимкнено. Увімкніть через `gateway.http.endpoints.chatCompletions.enabled: true`.
- Chat Completions: типово вимкнено. Увімкніть за допомогою `gateway.http.endpoints.chatCompletions.enabled: true`.
- Responses API: `gateway.http.endpoints.responses.enabled`.
- Посилення захисту URL-входу Responses:
- Посилення захисту URL-вводу Responses:
- `gateway.http.endpoints.responses.maxUrlParts`
- `gateway.http.endpoints.responses.files.urlAllowlist`
- `gateway.http.endpoints.responses.images.urlAllowlist`
Порожні allowlist трактуються як незадані; використовуйте `gateway.http.endpoints.responses.files.allowUrl=false`
та/або `gateway.http.endpoints.responses.images.allowUrl=false`, щоб вимкнути отримання URL.
Порожні allowlist вважаються незаданими; використовуйте `gateway.http.endpoints.responses.files.allowUrl=false` та/або `gateway.http.endpoints.responses.images.allowUrl=false`, щоб вимкнути отримання URL.
- Необов’язковий заголовок посилення захисту відповіді:
- `gateway.http.securityHeaders.strictTransportSecurity` (задавайте лише для HTTPS origins, які ви контролюєте; див. [Автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth#tls-termination-and-hsts))
- `gateway.http.securityHeaders.strictTransportSecurity` (задавайте лише для HTTPS origin, які контролюєте; див. [Автентифікація через довірений проксі](/uk/gateway/trusted-proxy-auth#tls-termination-and-hsts))
### Ізоляція кількох інстансів
### Ізоляція кількох екземплярів
Запустіть кілька gateway на одному хості з унікальними портами та state dirs:
Запускайте кілька Gateway на одному хості з унікальними портами й каталогами стану:
```bash
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json \
@ -508,11 +500,11 @@ openclaw gateway --port 19001
}
```
- `enabled`: вмикає завершення TLS на listener gateway (HTTPS/WSS) (типово: `false`).
- `autoGenerate`: автоматично генерує локальну самопідписану пару cert/key, коли явні файли не налаштовані; лише для локального використання/розробки.
- `certPath`: шлях файлової системи до файлу TLS certificate.
- `keyPath`: шлях файлової системи до файлу TLS private key; тримайте права доступу обмеженими.
- `caPath`: необов’язковий шлях до CA bundle для перевірки клієнтів або custom trust chains.
- `enabled`: вмикає TLS termination на слухачі Gateway (HTTPS/WSS) (типово: `false`).
- `autoGenerate`: автоматично генерує локальну самопідписану пару cert/key, коли явні файли не налаштовано; лише для local/dev використання.
- `certPath`: шлях у файловій системі до файлу TLS-сертифіката.
- `keyPath`: шлях у файловій системі до файлу приватного TLS-ключа; обмежте дозволи.
- `caPath`: необов’язковий шлях до CA bundle для перевірки клієнтів або користувацьких ланцюгів довіри.
### `gateway.reload`
@ -529,16 +521,16 @@ openclaw gateway --port 19001
```
- `mode`: керує тим, як зміни конфігурації застосовуються під час виконання.
- `"off"`: ігнорувати live edits; зміни потребують явного перезапуску.
- `"restart"`: завжди перезапускати процес gateway при зміні конфігурації.
- `"off"`: ігнорувати live-зміни; зміни потребують явного перезапуску.
- `"restart"`: завжди перезапускати процес Gateway у разі зміни конфігурації.
- `"hot"`: застосовувати зміни в процесі без перезапуску.
- `"hybrid"` (типово): спочатку спробувати hot reload; fallback до перезапуску, якщо потрібно.
- `debounceMs`: debounce window у мс перед застосуванням змін конфігурації (невід’ємне ціле число).
- `deferralTimeoutMs`: необов’язковий максимальний час у мс для очікування in-flight операцій перед примусовим перезапуском. Опустіть, щоб використати типове обмежене очікування (`300000`); задайте `0`, щоб чекати безкінечно й журналювати періодичні попередження still-pending.
- `"hybrid"` (типово): спочатку спробувати hot reload; якщо потрібно, перейти до перезапуску.
- `debounceMs`: debounce-вікно в мс перед застосуванням змін конфігурації (невід’ємне ціле число).
- `deferralTimeoutMs`: необов’язковий максимальний час у мс для очікування in-flight операцій перед примусовим перезапуском. Опустіть, щоб використати типове обмежене очікування (`300000`); задайте `0`, щоб чекати необмежено й періодично логувати попередження про still-pending.
---
## Hooks
## Хуки
```json5
{
@ -572,15 +564,15 @@ openclaw gateway --port 19001
```
Автентифікація: `Authorization: Bearer <token>` або `x-openclaw-token: <token>`.
Токени hook у query-string відхиляються.
Токени хуків у рядку запиту відхиляються.
Примітки щодо перевірки та безпеки:
Перевірка та примітки з безпеки:
- `hooks.enabled=true` потребує непорожнього `hooks.token`.
- `hooks.token` має бути **відмінним** від `gateway.auth.token`; повторне використання токена Gateway відхиляється.
- `hooks.path` не може бути `/`; використовуйте окремий підшлях, наприклад `/hooks`.
- Якщо `hooks.allowRequestSessionKey=true`, обмежте `hooks.allowedSessionKeyPrefixes` (наприклад `["hook:"]`).
- Якщо зіставлення або пресет використовує шаблонний `sessionKey`, задайте `hooks.allowedSessionKeyPrefixes` і `hooks.allowRequestSessionKey=true`. Статичні ключі зіставлення не потребують цього явного ввімкнення.
- Якщо зіставлення або пресет використовує шаблонний `sessionKey`, установіть `hooks.allowedSessionKeyPrefixes` і `hooks.allowRequestSessionKey=true`. Статичні ключі зіставлення не потребують цього явного ввімкнення.
**Кінцеві точки:**
@ -592,16 +584,16 @@ openclaw gateway --port 19001
<Accordion title="Подробиці зіставлення">
- `match.path` зіставляє підшлях після `/hooks` (наприклад `/hooks/gmail``gmail`).
- `match.path` зіставляє підшлях після `/hooks` (наприклад, `/hooks/gmail``gmail`).
- `match.source` зіставляє поле корисного навантаження для загальних шляхів.
- Шаблони на кшталт `{{messages[0].subject}}` читаються з корисного навантаження.
- `transform` може вказувати на JS/TS-модуль, що повертає дію hook.
- Шаблони на кшталт `{{messages[0].subject}}` читають із корисного навантаження.
- `transform` може вказувати на JS/TS-модуль, який повертає дію hook.
- `transform.module` має бути відносним шляхом і залишатися в межах `hooks.transformsDir` (абсолютні шляхи та обхід каталогів відхиляються).
- `agentId` спрямовує до конкретного агента; невідомі ID повертаються до типового.
- `agentId` спрямовує до конкретного агента; невідомі ідентифікатори повертаються до типового.
- `allowedAgentIds`: обмежує явну маршрутизацію (`*` або пропущено = дозволити всі, `[]` = заборонити всі).
- `defaultSessionKey`: необов'язковий фіксований ключ сесії для запусків агента hook без явного `sessionKey`.
- `allowRequestSessionKey`: дозволяє викликачам `/hooks/agent` і керованим шаблонами ключам сесії зіставлення задавати `sessionKey` (типово: `false`).
- `allowedSessionKeyPrefixes`: необов'язковий список дозволених префіксів для явних значень `sessionKey` (запит + зіставлення), наприклад `["hook:"]`. Він стає обов'язковим, коли будь-яке зіставлення або пресет використовує шаблонний `sessionKey`.
- `defaultSessionKey`: необов’язковий фіксований ключ сеансу для запусків агента hook без явного `sessionKey`.
- `allowRequestSessionKey`: дозволяє викликачам `/hooks/agent` і керованим шаблонами ключам сеансів зіставлення задавати `sessionKey` (типово: `false`).
- `allowedSessionKeyPrefixes`: необовязковий список дозволених префіксів для явних значень `sessionKey` (запит + зіставлення), наприклад `["hook:"]`. Він стає обовязковим, коли будь-яке зіставлення або пресет використовує шаблонний `sessionKey`.
- `deliver: true` надсилає фінальну відповідь у канал; `channel` типово має значення `last`.
- `model` перевизначає LLM для цього запуску hook (має бути дозволено, якщо задано каталог моделей).
@ -610,8 +602,8 @@ openclaw gateway --port 19001
### Інтеграція Gmail
- Вбудований пресет Gmail використовує `sessionKey: "hook:gmail:{{messages[0].id}}"`.
- Якщо ви зберігаєте цю маршрутизацію для кожного повідомлення, задайте `hooks.allowRequestSessionKey: true` і обмежте `hooks.allowedSessionKeyPrefixes`, щоб вони відповідали простору імен Gmail, наприклад `["hook:", "hook:gmail:"]`.
- Якщо вам потрібно `hooks.allowRequestSessionKey: false`, перевизначте пресет статичним `sessionKey` замість шаблонного типового значення.
- Якщо ви зберігаєте таку маршрутизацію для кожного повідомлення, установіть `hooks.allowRequestSessionKey: true` і обмежте `hooks.allowedSessionKeyPrefixes`, щоб вони відповідали простору імен Gmail, наприклад `["hook:", "hook:gmail:"]`.
- Якщо вам потрібне `hooks.allowRequestSessionKey: false`, перевизначте пресет статичним `sessionKey` замість шаблонного типового значення.
```json5
{
@ -634,12 +626,12 @@ openclaw gateway --port 19001
}
```
- Gateway автоматично запускає `gog gmail watch serve` під час завантаження, якщо налаштовано. Задайте `OPENCLAW_SKIP_GMAIL_WATCHER=1`, щоб вимкнути.
- Не запускайте окремий `gog gmail watch serve` паралельно з Gateway.
- Gateway автоматично запускає `gog gmail watch serve` під час завантаження, якщо це налаштовано. Установіть `OPENCLAW_SKIP_GMAIL_WATCHER=1`, щоб вимкнути.
- Не запускайте окремий `gog gmail watch serve` поруч із Gateway.
---
## Хост canvas
## Хост Canvas
```json5
{
@ -651,18 +643,18 @@ openclaw gateway --port 19001
}
```
- Обслуговує редаговані агентом HTML/CSS/JS і A2UI через HTTP під портом Gateway:
- Обслуговує доступні для редагування агентом HTML/CSS/JS і A2UI через HTTP під портом Gateway:
- `http://<gateway-host>:<gateway.port>/__openclaw__/canvas/`
- `http://<gateway-host>:<gateway.port>/__openclaw__/a2ui/`
- Лише локально: залиште `gateway.bind: "loopback"` (типово).
- Прив'язки не до loopback: маршрути canvas потребують автентифікації Gateway (токен/пароль/довірений проксі), так само як інші HTTP-поверхні Gateway.
- WebViews Node зазвичай не надсилають заголовки автентифікації; після спарювання та підключення вузла Gateway оголошує URL можливостей, обмежені вузлом, для доступу до canvas/A2UI.
- URL можливостей прив'язані до активної WS-сесії вузла й швидко спливають. Резервний варіант на основі IP не використовується.
- Лише локально: зберігайте `gateway.bind: "loopback"` (типово).
- Привязки не до loopback: маршрути canvas потребують автентифікації Gateway (токен/пароль/довірений проксі), як і інші HTTP-поверхні Gateway.
- Node WebViews зазвичай не надсилають заголовки автентифікації; після сполучення та підключення вузла Gateway оголошує URL-адреси можливостей із областю дії вузла для доступу до canvas/A2UI.
- URL-адреси можливостей прив’язані до активного WS-сеансу вузла й швидко спливають. Резервний варіант на основі IP не використовується.
- Вставляє клієнт live-reload в обслуговуваний HTML.
- Автоматично створює початковий `index.html`, коли порожньо.
- Автоматично створює початковий `index.html`, коли каталог порожній.
- Також обслуговує A2UI за `/__openclaw__/a2ui/`.
- Зміни потребують перезапуску gateway.
- Вимкніть live reload для великих каталогів або помилок `EMFILE`.
- Зміни потребують перезапуску Gateway.
- Вимикайте live reload для великих каталогів або помилок `EMFILE`.
---
@ -680,11 +672,11 @@ openclaw gateway --port 19001
}
```
- `minimal` (типово): пропускає `cliPath` + `sshPort` у TXT-записах.
- `full`: включає `cliPath` + `sshPort`.
- Ім'я хоста типово дорівнює системному імені хоста, коли воно є допустимою DNS-міткою, інакше використовується `openclaw`. Перевизначте через `OPENCLAW_MDNS_HOSTNAME`.
- `minimal` (типово): не включати `cliPath` + `sshPort` у TXT-записи.
- `full`: включити `cliPath` + `sshPort`.
- Ім’я хоста типово береться із системного імені хоста, коли воно є дійсною DNS-міткою, інакше використовується `openclaw`. Перевизначте за допомогою `OPENCLAW_MDNS_HOSTNAME`.
### Широка зона (DNS-SD)
### Глобальна зона (DNS-SD)
```json5
{
@ -694,7 +686,7 @@ openclaw gateway --port 19001
}
```
Записує unicast DNS-SD-зону під `~/.openclaw/dns/`. Для виявлення між мережами поєднайте із DNS-сервером (рекомендовано CoreDNS) + Tailscale split DNS.
Записує зону unicast DNS-SD у `~/.openclaw/dns/`. Для виявлення між мережами поєднайте з DNS-сервером (рекомендовано CoreDNS) + Tailscale split DNS.
Налаштування: `openclaw dns setup --apply`.
@ -720,7 +712,7 @@ openclaw gateway --port 19001
```
- Вбудовані змінні середовища застосовуються лише якщо в середовищі процесу немає ключа.
- Файли `.env`: `.env` з CWD + `~/.openclaw/.env` (жоден не перевизначає наявні змінні).
- Файли `.env`: `.env` у CWD + `~/.openclaw/.env` (жоден із них не перевизначає наявні змінні).
- `shellEnv`: імпортує відсутні очікувані ключі з профілю вашої login shell.
- Див. [Середовище](/uk/help/environment) для повного порядку пріоритету.
@ -736,20 +728,20 @@ openclaw gateway --port 19001
}
```
- Збігаються лише імена у верхньому регістрі: `[A-Z_][A-Z0-9_]*`.
- Відсутні або порожні змінні спричиняють помилку під час завантаження конфігурації.
- Екрануйте за допомогою `$${VAR}` для буквального `${VAR}`.
- Зіставляються лише імена у верхньому регістрі: `[A-Z_][A-Z0-9_]*`.
- Відсутні/порожні змінні спричиняють помилку під час завантаження конфігурації.
- Екрануйте за допомогою `$${VAR}` для літерального `${VAR}`.
- Працює з `$include`.
---
## Секрети
Посилання на секрети є додатковими: значення у відкритому тексті все ще працюють.
Посилання на секрети є додатковими: відкриті текстові значення все ще працюють.
### `SecretRef`
Використовуйте одну форму обєкта:
Використовуйте одну форму об'єкта:
```json5
{ source: "env" | "file" | "exec", provider: "default", id: "..." }
@ -761,13 +753,13 @@ openclaw gateway --port 19001
- шаблон id для `source: "env"`: `^[A-Z][A-Z0-9_]{0,127}$`
- id для `source: "file"`: абсолютний JSON pointer (наприклад `"/providers/openai/apiKey"`)
- шаблон id для `source: "exec"`: `^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$`
- id для `source: "exec"` не повинні містити розділених скісними рисками сегментів шляху `.` або `..` (наприклад `a/../b` відхиляється)
- id для `source: "exec"` не повинні містити розділені скісними рисками сегменти шляху `.` або `..` (наприклад `a/../b` відхиляється)
### Підтримувана поверхня облікових даних
- Канонічна матриця: [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface)
- `secrets apply` націлюється на підтримувані шляхи облікових даних `openclaw.json`.
- Посилання `auth-profiles.json` включені до runtime-розв’язання та покриття аудиту.
- Посилання `auth-profiles.json` включено до runtime-розв'язання та покриття аудиту.
### Конфігурація постачальників секретів
@ -800,13 +792,13 @@ openclaw gateway --port 19001
Примітки:
- Постачальник `file` підтримує `mode: "json"` і `mode: "singleValue"` (`id` має бути `"value"` у режимі singleValue).
- Шляхи постачальників file і exec відмовляють у закритий спосіб, коли перевірка Windows ACL недоступна. Встановлюйте `allowInsecurePath: true` лише для довірених шляхів, які неможливо перевірити.
- Постачальник `exec` вимагає абсолютний шлях `command` і використовує протокольні payload-и через stdin/stdout.
- За замовчуванням шляхи команд, що є symlink, відхиляються. Встановіть `allowSymlinkCommand: true`, щоб дозволити шляхи symlink, водночас валідуючи розв’язаний цільовий шлях.
- Якщо налаштовано `trustedDirs`, перевірка довіреного каталогу застосовується до розвязаного цільового шляху.
- Шляхи постачальників file і exec відмовляють у закритому режимі, коли перевірка Windows ACL недоступна. Установлюйте `allowInsecurePath: true` лише для довірених шляхів, які неможливо перевірити.
- Постачальник `exec` вимагає абсолютний шлях `command` і використовує protocol payloads у stdin/stdout.
- За замовчуванням шляхи команд через символічні посилання відхиляються. Установіть `allowSymlinkCommand: true`, щоб дозволити шляхи символічних посилань із валідацією розв'язаного цільового шляху.
- Якщо налаштовано `trustedDirs`, перевірка довіреного каталогу застосовується до розв'язаного цільового шляху.
- Дочірнє середовище `exec` за замовчуванням мінімальне; передавайте потрібні змінні явно через `passEnv`.
- Посилання на секрети розв’язуються під час активації в in-memory знімок, після чого шляхи запитів читають лише цей знімок.
- Фільтрація активної поверхні застосовується під час активації: нерозвязані посилання на ввімкнених поверхнях спричиняють збій запуску/перезавантаження, тоді як неактивні поверхні пропускаються з діагностикою.
- Посилання на секрети розв'язуються під час активації в знімок у пам'яті, а потім шляхи запитів читають лише знімок.
- Фільтрація активної поверхні застосовується під час активації: нерозв'язані посилання на ввімкнених поверхнях спричиняють збій запуску/перезавантаження, тоді як неактивні поверхні пропускаються з діагностикою.
---
@ -830,12 +822,12 @@ openclaw gateway --port 19001
- Профілі для кожного агента зберігаються в `<agentDir>/auth-profiles.json`.
- `auth-profiles.json` підтримує посилання на рівні значень (`keyRef` для `api_key`, `tokenRef` для `token`) для статичних режимів облікових даних.
- Застарілі пласкі мапи `auth-profiles.json`, як-от `{ "provider": { "apiKey": "..." } }`, не є runtime-форматом; `openclaw doctor --fix` переписує їх у канонічні API-key профілі `provider:default` із резервною копією `.legacy-flat.*.bak`.
- Застарілі плоскі мапи `auth-profiles.json`, як-от `{ "provider": { "apiKey": "..." } }`, не є runtime-форматом; `openclaw doctor --fix` переписує їх у канонічні профілі API-ключів `provider:default` із резервною копією `.legacy-flat.*.bak`.
- Профілі режиму OAuth (`auth.profiles.<id>.mode = "oauth"`) не підтримують облікові дані auth-profile на основі SecretRef.
- Статичні runtime-облікові дані надходять із розв’язаних in-memory знімків; застарілі статичні записи `auth.json` очищуються, коли їх виявлено.
- Застарілі OAuth імпортуються з `~/.openclaw/credentials/oauth.json`.
- Статичні runtime-облікові дані надходять із розв'язаних знімків у пам'яті; застарілі статичні записи `auth.json` очищаються після виявлення.
- Застарілі імпорти OAuth надходять із `~/.openclaw/credentials/oauth.json`.
- Див. [OAuth](/uk/concepts/oauth).
- Runtime-поведінка секретів та інструменти `audit/configure/apply`: [Керування секретами](/uk/gateway/secrets).
- Runtime-поведінка секретів і інструменти `audit/configure/apply`: [Керування секретами](/uk/gateway/secrets).
### `auth.cooldowns`
@ -857,15 +849,15 @@ openclaw gateway --port 19001
}
```
- `billingBackoffHours`: базовий backoff у годинах, коли профіль зазнає збою через справжні помилки billing/insufficient-credit (типово: `5`). Явний текст про billing все ще може потрапити сюди навіть у відповідях `401`/`403`, але provider-specific текстові matchers лишаються обмеженими постачальником, якому вони належать (наприклад OpenRouter `Key limit exceeded`). Retryable HTTP `402` повідомлення про usage-window або organization/workspace spend-limit натомість лишаються в шляху `rate_limit`.
- `billingBackoffHoursByProvider`: необовязкові перевизначення годин billing backoff для кожного постачальника.
- `billingMaxHours`: обмеження в годинах для експоненційного зростання billing backoff (типово: `24`).
- `authPermanentBackoffMinutes`: базовий backoff у хвилинах для високодостовірних збоїв `auth_permanent` (типово: `10`).
- `authPermanentMaxMinutes`: обмеження в хвилинах для зростання backoff `auth_permanent` (типово: `60`).
- `failureWindowHours`: ковзне вікно в годинах, що використовується для лічильників backoff (типово: `24`).
- `overloadedProfileRotations`: максимальна кількість ротацій auth-profile того самого постачальника для помилок перевантаження перед перемиканням на fallback моделі (типово: `1`). Форми provider-busy, як-от `ModelNotReadyException`, потрапляють сюди.
- `overloadedBackoffMs`: фіксована затримка перед повторною спробою ротації перевантаженого постачальника/профілю (типово: `0`).
- `rateLimitedProfileRotations`: максимальна кількість ротацій auth-profile того самого постачальника для помилок rate-limit перед перемиканням на fallback моделі (типово: `1`). Цей rate-limit bucket включає текст у формі постачальника, як-от `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` і `resource exhausted`.
- `billingBackoffHours`: базова затримка в годинах, коли профіль зазнає збою через справжні помилки виставлення рахунків/недостатнього кредиту (за замовчуванням: `5`). Явний текст про billing усе ще може потрапити сюди навіть у відповідях `401`/`403`, але специфічні для постачальника текстові зіставники залишаються обмеженими постачальником, якому вони належать (наприклад, OpenRouter `Key limit exceeded`). Повторювані повідомлення HTTP `402` про usage-window або ліміт витрат організації/робочого простору натомість залишаються в шляху `rate_limit`.
- `billingBackoffHoursByProvider`: необов'язкові перевизначення годин затримки billing для кожного постачальника.
- `billingMaxHours`: обмеження в годинах для експоненційного зростання затримки billing (за замовчуванням: `24`).
- `authPermanentBackoffMinutes`: базова затримка в хвилинах для високодостовірних збоїв `auth_permanent` (за замовчуванням: `10`).
- `authPermanentMaxMinutes`: обмеження в хвилинах для зростання затримки `auth_permanent` (за замовчуванням: `60`).
- `failureWindowHours`: ковзне вікно в годинах, що використовується для лічильників затримки (за замовчуванням: `24`).
- `overloadedProfileRotations`: максимальна кількість ротацій auth-profile того самого постачальника для помилок перевантаження перед перемиканням на model fallback (за замовчуванням: `1`). Форми зайнятості постачальника, як-от `ModelNotReadyException`, потрапляють сюди.
- `overloadedBackoffMs`: фіксована затримка перед повторною спробою ротації перевантаженого постачальника/профілю (за замовчуванням: `0`).
- `rateLimitedProfileRotations`: максимальна кількість ротацій auth-profile того самого постачальника для помилок rate-limit перед перемиканням на model fallback (за замовчуванням: `1`). Цей rate-limit bucket включає текст у формі постачальника, як-от `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` і `resource exhausted`.
---
@ -884,11 +876,11 @@ openclaw gateway --port 19001
}
```
- Стандартний файл журналу: `/tmp/openclaw/openclaw-YYYY-MM-DD.log`.
- Типовий файл журналу: `/tmp/openclaw/openclaw-YYYY-MM-DD.log`.
- Задайте `logging.file` для стабільного шляху.
- `consoleLevel` підвищується до `debug`, коли використано `--verbose`.
- `maxFileBytes`: максимальний розмір активного файлу журналу в байтах перед ротацією (додатне ціле число; стандартно: `104857600` = 100 МБ). OpenClaw зберігає до п’яти нумерованих архівів поруч з активним файлом.
- `redactSensitive` / `redactPatterns`: маскування за принципом найкращих зусиль для виводу в консоль, файлових журналів, записів журналів OTLP і збереженого тексту транскрипту сесії. `redactSensitive: "off"` вимикає лише цю загальну політику журналів/транскриптів; поверхні безпеки UI/інструментів/діагностики все одно редагують секрети перед надсиланням.
- `maxFileBytes`: максимальний розмір активного файлу журналу в байтах перед ротацією (додатне ціле число; типово: `104857600` = 100 МБ). OpenClaw зберігає до п’яти нумерованих архівів поруч з активним файлом.
- `redactSensitive` / `redactPatterns`: маскування за принципом найкращого зусилля для виводу в консоль, файлових журналів, записів журналу OTLP і збереженого тексту транскрипту сесії. `redactSensitive: "off"` вимикає лише цю загальну політику журналів/транскриптів; поверхні безпеки UI/інструментів/діагностики все одно редагують секрети перед виведенням.
---
@ -936,25 +928,25 @@ openclaw gateway --port 19001
}
```
- `enabled`: головний перемикач для виводу інструментації (стандартно: `true`).
- `flags`: масив рядків прапорців, що вмикають цільовий вивід журналів (підтримує шаблони на кшталт `"telegram.*"` або `"*"`).
- `stuckSessionWarnMs`: поріг віку без прогресу в мс для класифікації тривалих сесій обробки як `session.long_running`, `session.stalled` або `session.stuck`. Відповідь, інструмент, статус, блок і прогрес ACP скидають таймер; повторна діагностика `session.stuck` відступає, доки стан не змінюється.
- `otel.enabled`: вмикає конвеєр експорту OpenTelemetry (стандартно: `false`). Повну конфігурацію, каталог сигналів і модель приватності див. у [експорті OpenTelemetry](/uk/gateway/opentelemetry).
- `otel.endpoint`: URL збирача для експорту OTel.
- `otel.tracesEndpoint` / `otel.metricsEndpoint` / `otel.logsEndpoint`: необов’язкові кінцеві точки OTLP для окремих сигналів. Якщо задані, вони перевизначають `otel.endpoint` лише для цього сигналу.
- `otel.protocol`: `"http/protobuf"` (стандартно) або `"grpc"`.
- `enabled`: головний перемикач для виводу інструментації (типово: `true`).
- `flags`: масив рядків прапорців, що вмикають цільовий журнальний вивід (підтримує шаблони на кшталт `"telegram.*"` або `"*"`).
- `stuckSessionWarnMs`: поріг віку без прогресу в мс для класифікації довготривалих сесій обробки як `session.long_running`, `session.stalled` або `session.stuck`. Відповідь, інструмент, статус, блок і прогрес ACP скидають таймер; повторна діагностика `session.stuck` уповільнюється, доки стан не змінюється.
- `otel.enabled`: вмикає конвеєр експорту OpenTelemetry (типово: `false`). Повну конфігурацію, каталог сигналів і модель приватності див. у [експорті OpenTelemetry](/uk/gateway/opentelemetry).
- `otel.endpoint`: URL колектора для експорту OTel.
- `otel.tracesEndpoint` / `otel.metricsEndpoint` / `otel.logsEndpoint`: необов’язкові кінцеві точки OTLP для конкретних сигналів. Якщо задані, вони перевизначають `otel.endpoint` лише для відповідного сигналу.
- `otel.protocol`: `"http/protobuf"` (типово) або `"grpc"`.
- `otel.headers`: додаткові заголовки метаданих HTTP/gRPC, що надсилаються із запитами експорту OTel.
- `otel.serviceName`: назва сервісу для атрибутів ресурсу.
- `otel.traces` / `otel.metrics` / `otel.logs`: увімкнути експорт трас, метрик або журналів.
- `otel.traces` / `otel.metrics` / `otel.logs`: вмикають експорт трас, метрик або журналів.
- `otel.sampleRate`: частота семплювання трас `0``1`.
- `otel.flushIntervalMs`: періодичний інтервал скидання телеметрії в мс.
- `otel.captureContent`: явне ввімкнення захоплення сирого вмісту для атрибутів span OTEL. Стандартно вимкнено. Булеве `true` захоплює несистемний вміст повідомлень/інструментів; об’єктна форма дає змогу явно ввімкнути `inputMessages`, `outputMessages`, `toolInputs`, `toolOutputs` і `systemPrompt`.
- `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental`: змінна середовища для найновіших експериментальних атрибутів провайдера span GenAI. Стандартно span зберігають застарілий атрибут `gen_ai.system` для сумісності; метрики GenAI використовують обмежені семантичні атрибути.
- `OPENCLAW_OTEL_PRELOADED=1`: змінна середовища для хостів, які вже зареєстрували глобальний SDK OpenTelemetry. Тоді OpenClaw пропускає запуск/завершення роботи SDK, що належить Plugin, зберігаючи діагностичних слухачів активними.
- `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` і `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT`: змінні середовища кінцевих точок для окремих сигналів, що використовуються, коли відповідний ключ конфігурації не заданий.
- `cacheTrace.enabled`: записувати знімки трасування кешу для вбудованих запусків (стандартно: `false`).
- `cacheTrace.filePath`: шлях виводу для JSONL трасування кешу (стандартно: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`).
- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: керують тим, що включається у вивід трасування кешу (усі стандартно: `true`).
- `otel.flushIntervalMs`: інтервал періодичного скидання телеметрії в мс.
- `otel.captureContent`: явне ввімкнення захоплення необробленого вмісту для атрибутів спанів OTEL. Типово вимкнено. Булеве `true` захоплює несистемний вміст повідомлень/інструментів; форма об’єкта дає змогу явно ввімкнути `inputMessages`, `outputMessages`, `toolInputs`, `toolOutputs` і `systemPrompt`.
- `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental`: змінна середовища для ввімкнення найновіших експериментальних атрибутів провайдера спанів GenAI. Типово спани зберігають застарілий атрибут `gen_ai.system` для сумісності; метрики GenAI використовують обмежені семантичні атрибути.
- `OPENCLAW_OTEL_PRELOADED=1`: змінна середовища для хостів, які вже зареєстрували глобальний SDK OpenTelemetry. Тоді OpenClaw пропускає запуск/завершення SDK, яким володіє Plugin, зберігаючи діагностичні слухачі активними.
- `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` і `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT`: змінні середовища кінцевих точок для конкретних сигналів, що використовуються, коли відповідний ключ конфігурації не задано.
- `cacheTrace.enabled`: записувати знімки трасування кешу для вбудованих запусків (типово: `false`).
- `cacheTrace.filePath`: шлях виводу для JSONL трасування кешу (типово: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`).
- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: керують тим, що включається у вивід трасування кешу (усі типово: `true`).
---
@ -976,12 +968,12 @@ openclaw gateway --port 19001
}
```
- `channel`: канал випуску для встановлень npm/git — `"stable"`, `"beta"` або `"dev"`.
- `checkOnStart`: перевіряти оновлення npm під час запуску gateway (стандартно: `true`).
- `auto.enabled`: увімкнути фонове автооновлення для пакетних встановлень (стандартно: `false`).
- `auto.stableDelayHours`: мінімальна затримка в годинах перед автоматичним застосуванням stable-каналу (стандартно: `6`; максимум: `168`).
- `auto.stableJitterHours`: додаткове вікно розподілу розгортання stable-каналу в годинах (стандартно: `12`; максимум: `168`).
- `auto.betaCheckIntervalHours`: як часто виконуються перевірки beta-каналу в годинах (стандартно: `1`; максимум: `24`).
- `channel`: канал випусків для встановлень npm/git — `"stable"`, `"beta"` або `"dev"`.
- `checkOnStart`: перевіряти оновлення npm під час запуску Gateway (типово: `true`).
- `auto.enabled`: увімкнути фонове автооновлення для пакетних встановлень (типово: `false`).
- `auto.stableDelayHours`: мінімальна затримка в годинах перед автоматичним застосуванням у стабільному каналі (типово: `6`; максимум: `168`).
- `auto.stableJitterHours`: додаткове вікно розгортання стабільного каналу в годинах (типово: `12`; максимум: `168`).
- `auto.betaCheckIntervalHours`: як часто виконуються перевірки бета-каналу в годинах (типово: `1`; максимум: `24`).
---
@ -1014,23 +1006,23 @@ openclaw gateway --port 19001
}
```
- `enabled`: глобальний функціональний перемикач ACP (стандартно: `true`; задайте `false`, щоб приховати диспетчеризацію ACP і можливості запуску).
- `dispatch.enabled`: незалежний перемикач для диспетчеризації ходу сесії ACP (стандартно: `true`). Задайте `false`, щоб залишити команди ACP доступними, але заблокувати виконання.
- `backend`: стандартний id бекенда середовища виконання ACP (має відповідати зареєстрованому Plugin середовища виконання ACP).
Якщо задано `plugins.allow`, включіть id Plugin бекенда (наприклад, `acpx`), інакше вбудований стандартний Plugin не завантажиться.
- `defaultAgent`: резервний id цільового агента ACP, коли запуски не вказують явну ціль.
- `allowedAgents`: allowlist id агентів, дозволених для сесій середовища виконання ACP; порожнє значення означає відсутність додаткових обмежень.
- `enabled`: глобальний перемикач функції ACP (типово: `true`; задайте `false`, щоб приховати диспетчеризацію ACP і можливості запуску).
- `dispatch.enabled`: незалежний перемикач для диспетчеризації ходу сесії ACP (типово: `true`). Задайте `false`, щоб залишити команди ACP доступними, але заблокувати виконання.
- `backend`: ідентифікатор типового бекенда середовища виконання ACP (має відповідати зареєстрованому runtime Plugin ACP).
Якщо задано `plugins.allow`, включіть ідентифікатор backend Plugin (наприклад `acpx`), інакше вбудований типовий Plugin не завантажиться.
- `defaultAgent`: резервний ідентифікатор цільового агента ACP, коли запуски не вказують явну ціль.
- `allowedAgents`: allowlist ідентифікаторів агентів, дозволених для сесій середовища виконання ACP; порожній список означає відсутність додаткового обмеження.
- `maxConcurrentSessions`: максимальна кількість одночасно активних сесій ACP.
- `stream.coalesceIdleMs`: вікно скидання під час простою в мс для потокового тексту.
- `stream.maxChunkChars`: максимальний розмір фрагмента перед поділом проєкції потокового блока.
- `stream.repeatSuppression`: пригнічувати повторювані рядки статусу/інструментів у межах одного ходу (стандартно: `true`).
- `stream.deliveryMode`: `"live"` передає потоково поступово; `"final_only"` буферизує до термінальних подій ходу.
- `stream.hiddenBoundarySeparator`: розділювач перед видимим текстом після прихованих подій інструментів (стандартно: `"paragraph"`).
- `stream.maxOutputChars`: максимальна кількість символів виводу асистента, що проєктуються за хід ACP.
- `stream.repeatSuppression`: пригнічувати повторювані рядки статусу/інструментів у межах одного ходу (типово: `true`).
- `stream.deliveryMode`: `"live"` передає поступово; `"final_only"` буферизує до фінальних подій ходу.
- `stream.hiddenBoundarySeparator`: розділювач перед видимим текстом після прихованих подій інструментів (типово: `"paragraph"`).
- `stream.maxOutputChars`: максимальна кількість символів виводу асистента, що проєктується на один хід ACP.
- `stream.maxSessionUpdateChars`: максимальна кількість символів для проєктованих рядків статусу/оновлення ACP.
- `stream.tagVisibility`: запис назв тегів у булеві перевизначення видимості для потокових подій.
- `runtime.ttlMinutes`: TTL простою в хвилинах для робочих процесів сесій ACP перед тим, як вони стануть придатними для очищення.
- `runtime.installCommand`: необов’язкова команда встановлення, яку треба виконати під час початкового налаштування середовища виконання ACP.
- `stream.tagVisibility`: запис назв тегів із булевими перевизначеннями видимості для потокових подій.
- `runtime.ttlMinutes`: TTL простою в хвилинах для воркерів сесій ACP перед тим, як вони стають придатними для очищення.
- `runtime.installCommand`: необов’язкова команда встановлення, яку треба запустити під час підготовки середовища виконання ACP.
---
@ -1047,16 +1039,16 @@ openclaw gateway --port 19001
```
- `cli.banner.taglineMode` керує стилем слогана банера:
- `"random"` (стандартно): ротаційні кумедні/сезонні слогани.
- `"random"` (типово): змінні кумедні/сезонні слогани.
- `"default"`: фіксований нейтральний слоган (`All your chats, one OpenClaw.`).
- `"off"`: без тексту слогана (заголовок/версія банера все одно показуються).
- Щоб приховати весь банер (не лише слогани), задайте змінну середовища `OPENCLAW_HIDE_BANNER=1`.
- Щоб приховати весь банер (а не лише слогани), задайте змінну середовища `OPENCLAW_HIDE_BANNER=1`.
---
## Майстер
Метадані, які записують керовані потоки налаштування CLI (`onboard`, `configure`, `doctor`):
Метадані, які записують потоки керованого налаштування CLI (`onboard`, `configure`, `doctor`):
```json5
{
@ -1074,13 +1066,13 @@ openclaw gateway --port 19001
## Ідентичність
Див. поля ідентичності `agents.list` у [стандартних налаштуваннях агента](/uk/gateway/config-agents#agent-defaults).
Див. поля ідентичності `agents.list` у [типових налаштуваннях агента](/uk/gateway/config-agents#agent-defaults).
---
## Міст (застарілий, видалений)
## Міст (застарілий, вилучено)
Поточні збірки більше не містять TCP-міст. Node підключаються через Gateway WebSocket. Ключі `bridge.*` більше не є частиною схеми конфігурації (перевірка не проходить, доки їх не буде видалено; `openclaw doctor --fix` може прибрати невідомі ключі).
Поточні збірки більше не містять TCP-міст. Node підключаються через WebSocket Gateway. Ключі `bridge.*` більше не є частиною схеми конфігурації (валідація завершується помилкою, доки їх не вилучено; `openclaw doctor --fix` може прибрати невідомі ключі).
<Accordion title="Конфігурація застарілого моста (історична довідка)">
@ -1120,11 +1112,11 @@ openclaw gateway --port 19001
}
```
- `sessionRetention`: як довго зберігати завершені ізольовані сесії запусків cron перед обрізанням із `sessions.json`. Також керує очищенням архівованих видалених транскриптів cron. Стандартно: `24h`; задайте `false`, щоб вимкнути.
- `runLog.maxBytes`: максимальний розмір одного файлу журналу запуску (`cron/runs/<jobId>.jsonl`) перед обрізанням. Стандартно: `2_000_000` байтів.
- `runLog.keepLines`: найновіші рядки, що зберігаються, коли запускається обрізання журналу запуску. Стандартно: `2000`.
- `webhookToken`: bearer-токен, що використовується для доставки cron Webhook POST (`delivery.mode = "webhook"`); якщо пропущено, заголовок auth не надсилається.
- `webhook`: застарілий резервний URL Webhook (http/https), що використовується лише для збережених завдань, які все ще мають `notify: true`.
- `sessionRetention`: як довго зберігати завершені ізольовані сесії запусків cron перед обрізанням із `sessions.json`. Також керує очищенням архівованих видалених транскриптів cron. Типово: `24h`; задайте `false`, щоб вимкнути.
- `runLog.maxBytes`: максимальний розмір одного файла журналу запуску (`cron/runs/<jobId>.jsonl`) перед обрізанням. Типово: `2_000_000` байтів.
- `runLog.keepLines`: найновіші рядки, що зберігаються, коли запускається обрізання журналу запуску. Типово: `2000`.
- `webhookToken`: bearer-токен, що використовується для доставки cron Webhook через POST (`delivery.mode = "webhook"`); якщо не вказано, заголовок автентифікації не надсилається.
- `webhook`: застарілий резервний URL Webhook (http/https), що використовується лише для збережених завдань, у яких досі є `notify: true`.
### `cron.retry`
@ -1140,9 +1132,9 @@ openclaw gateway --port 19001
}
```
- `maxAttempts`: максимальна кількість повторів для одноразових завдань у разі тимчасових помилок (стандартно: `3`; діапазон: `0``10`).
- `backoffMs`: масив затримок backoff у мс для кожної спроби повтору (стандартно: `[30000, 60000, 300000]`; 110 записів).
- `retryOn`: типи помилок, які запускають повтори — `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Пропустіть, щоб повторювати всі тимчасові типи.
- `maxAttempts`: максимальна кількість повторних спроб для одноразових завдань у разі тимчасових помилок (типово: `3`; діапазон: `0``10`).
- `backoffMs`: масив затримок backoff у мс для кожної повторної спроби (типово: `[30000, 60000, 300000]`; 110 записів).
- `retryOn`: типи помилок, що запускають повторні спроби — `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Не вказуйте, щоб повторювати всі тимчасові типи.
Застосовується лише до одноразових завдань cron. Повторювані завдання використовують окрему обробку збоїв.
@ -1163,12 +1155,12 @@ openclaw gateway --port 19001
}
```
- `enabled`: увімкнути сповіщення про збої для завдань cron (стандартно: `false`).
- `after`: кількість послідовних збоїв перед спрацюванням сповіщення (додатне ціле число, мінімум: `1`).
- `enabled`: увімкнути сповіщення про збої для завдань cron (типово: `false`).
- `after`: кількість послідовних збоїв перед надсиланням сповіщення (додатне ціле число, мінімум: `1`).
- `cooldownMs`: мінімальна кількість мілісекунд між повторними сповіщеннями для того самого завдання (невід’ємне ціле число).
- `includeSkipped`: враховувати послідовні пропущені запуски до порогу сповіщення (стандартно: `false`). Пропущені запуски відстежуються окремо й не впливають на backoff помилок виконання.
- `mode`: режим доставки — `"announce"` надсилає через повідомлення каналу; `"webhook"` надсилає POST до налаштованого Webhook.
- `accountId`: необов’язковий id облікового запису або каналу для обмеження області доставки сповіщень.
- `includeSkipped`: враховувати послідовно пропущені запуски в поріг сповіщення (типово: `false`). Пропущені запуски відстежуються окремо й не впливають на backoff помилок виконання.
- `mode`: режим доставки — `"announce"` надсилає через повідомлення каналу; `"webhook"` публікує в налаштований Webhook.
- `accountId`: необов’язковий ідентифікатор облікового запису або каналу для обмеження області доставки сповіщень.
### `cron.failureDestination`
@ -1186,13 +1178,13 @@ openclaw gateway --port 19001
```
- Стандартне призначення для сповіщень про збої Cron в усіх завданнях.
- `mode`: `"announce"` або `"webhook"`; за замовчуванням `"announce"`, коли є достатньо даних цілі.
- `channel`: перевизначення каналу для доставки через оголошення. `"last"` повторно використовує останній відомий канал доставки.
- `to`: явна ціль оголошення або URL Webhook. Обов'язково для режиму Webhook.
- `accountId`: необов'язкове перевизначення облікового запису для доставки.
- `delivery.failureDestination` на рівні окремого завдання перевизначає це глобальне значення за замовчуванням.
- Коли ані глобальне, ані задане для окремого завдання призначення збою не встановлено, завдання, які вже доставляються через `announce`, у разі збою повертаються до цієї основної цілі оголошення.
- `delivery.failureDestination` підтримується лише для завдань `sessionTarget="isolated"`, якщо основний `delivery.mode` завдання не є `"webhook"`.
- `mode`: `"announce"` або `"webhook"`; за замовчуванням використовується `"announce"`, коли є достатньо даних цілі.
- `channel`: перевизначення каналу для доставки оголошення. `"last"` повторно використовує останній відомий канал доставки.
- `to`: явна ціль оголошення або URL Webhook. Обовязково для режиму Webhook.
- `accountId`: необовязкове перевизначення облікового запису для доставки.
- `delivery.failureDestination` для окремого завдання перевизначає це глобальне значення за замовчуванням.
- Коли не задано ані глобального призначення для збоїв, ані призначення на рівні завдання, завдання, які вже доставляються через `announce`, у разі збою повертаються до цієї основної цілі оголошення.
- `delivery.failureDestination` підтримується лише для завдань `sessionTarget="isolated"`, якщо основний `delivery.mode` завдання не дорівнює `"webhook"`.
Див. [Завдання Cron](/uk/automation/cron-jobs). Ізольовані виконання Cron відстежуються як [фонові завдання](/uk/automation/tasks).
@ -1204,9 +1196,9 @@ openclaw gateway --port 19001
| Змінна | Опис |
| ------------------ | ------------------------------------------------- |
| `{{Body}}` | Повне тіло вхідного повідомлення |
| `{{RawBody}}` | Необроблене тіло (без обгорток історії/відправника) |
| `{{BodyStripped}}` | Тіло з вилученими згадками групи |
| `{{Body}}` | Повний вміст вхідного повідомлення |
| `{{RawBody}}` | Необроблений вміст (без обгорток історії/відправника) |
| `{{BodyStripped}}` | Вміст без згадок групи |
| `{{From}}` | Ідентифікатор відправника |
| `{{To}}` | Ідентифікатор призначення |
| `{{MessageSid}}` | Ідентифікатор повідомлення каналу |
@ -1214,16 +1206,16 @@ openclaw gateway --port 19001
| `{{IsNewSession}}` | `"true"`, коли створено нову сесію |
| `{{MediaUrl}}` | Псевдо-URL вхідного медіа |
| `{{MediaPath}}` | Локальний шлях до медіа |
| `{{MediaType}}` | Тип медіа (зображення/аудіо/документ/...) |
| `{{MediaType}}` | Тип медіа (зображення/аудіо/документ/…) |
| `{{Transcript}}` | Транскрипт аудіо |
| `{{Prompt}}` | Розв'язаний медіапромпт для записів CLI |
| `{{MaxChars}}` | Розв'язана максимальна кількість символів виводу для записів CLI |
| `{{Prompt}}` | Розвязаний медіапромпт для записів CLI |
| `{{MaxChars}}` | Розвязана максимальна кількість символів виводу для записів CLI |
| `{{ChatType}}` | `"direct"` або `"group"` |
| `{{GroupSubject}}` | Тема групи (у міру можливості) |
| `{{GroupMembers}}` | Попередній перегляд учасників групи (у міру можливості) |
| `{{SenderName}}` | Відображуване ім'я відправника (у міру можливості) |
| `{{SenderE164}}` | Номер телефону відправника (у міру можливості) |
| `{{Provider}}` | Підказка провайдера (WhatsApp, Telegram, Discord тощо) |
| `{{GroupSubject}}` | Тема групи (за можливості) |
| `{{GroupMembers}}` | Попередній перегляд учасників групи (за можливості) |
| `{{SenderName}}` | Відображуване ім’я відправника (за можливості) |
| `{{SenderE164}}` | Номер телефону відправника (за можливості) |
| `{{Provider}}` | Підказка провайдера (whatsapp, telegram, discord тощо) |
---
@ -1244,20 +1236,20 @@ openclaw gateway --port 19001
**Поведінка злиття:**
- Один файл: замінює об'єкт, що його містить.
- Масив файлів: глибоко об'єднується за порядком (пізніші перевизначають попередні).
- Сусідні ключі: об'єднуються після включень (перевизначають включені значення).
- Один файл: замінює обєкт, що його містить.
- Масив файлів: глибоко об’єднується по порядку (пізніші значення перевизначають раніші).
- Сусідні ключі: обєднуються після включень (перевизначають включені значення).
- Вкладені включення: до 10 рівнів углиб.
- Шляхи: розв'язуються відносно файлу, що виконує включення, але мають залишатися всередині каталогу конфігурації верхнього рівня (`dirname` від `openclaw.json`). Абсолютні форми та форми з `../` дозволені лише тоді, коли вони все одно розв'язуються всередині цієї межі.
- Записи, якими володіє OpenClaw і які змінюють лише один розділ верхнього рівня, підтриманий однофайловим включенням, записуються наскрізно до цього включеного файлу. Наприклад, `plugins install` оновлює `plugins: { $include: "./plugins.json5" }` у `plugins.json5` і залишає `openclaw.json` незмінним.
- Кореневі включення, масиви включень і включення із сусідніми перевизначеннями доступні лише для читання для записів, якими володіє OpenClaw; такі записи завершуються закритою відмовою замість сплощення конфігурації.
- Помилки: чіткі повідомлення для відсутніх файлів, помилок розбору та циклічних включень.
- Шляхи: розвязуються відносно файлу, що виконує включення, але мають залишатися всередині каталогу конфігурації верхнього рівня (`dirname` для `openclaw.json`). Абсолютні форми та форми з `../` дозволені лише тоді, коли вони все одно розвязуються всередині цієї межі.
- Записи, якими володіє OpenClaw і які змінюють лише один розділ верхнього рівня, підкріплений включенням одного файлу, записуються напряму в цей включений файл. Наприклад, `plugins install` оновлює `plugins: { $include: "./plugins.json5" }` у `plugins.json5` і залишає `openclaw.json` без змін.
- Кореневі включення, масиви включень і включення з перевизначеннями сусідніх ключів доступні лише для читання для записів, якими володіє OpenClaw; такі записи завершуються із закритою відмовою замість вирівнювання конфігурації.
- Помилки: зрозумілі повідомлення для відсутніх файлів, помилок розбору та циклічних включень.
---
ов'язано: [Конфігурація](/uk/gateway/configuration) · [Приклади конфігурації](/uk/gateway/configuration-examples) · [Doctor](/uk/gateway/doctor)_
овязано: [Конфігурація](/uk/gateway/configuration) · [Приклади конфігурації](/uk/gateway/configuration-examples) · [Doctor](/uk/gateway/doctor)_
## Пов'язане
## Пов’язано
- [Конфігурація](/uk/gateway/configuration)
- [Приклади конфігурації](/uk/gateway/configuration-examples)

View File

@ -1,35 +1,35 @@
---
read_when:
- Ви хочете використовувати вебвитягування на базі Firecrawl
- Вам потрібен API key Firecrawl
- Ви хочете використовувати Firecrawl як провайдера `web_search`
- Ви хочете витягування для `web_fetch` з обходом антибот-захисту
summary: Пошук Firecrawl, scrape і fallback для web_fetch
- Вам потрібне витягування даних із вебу на базі Firecrawl
- Вам потрібен ключ API Firecrawl
- Вам потрібен Firecrawl як провайдер web_search
- Вам потрібне отримання даних з обходом антибот-захисту для web_fetch
summary: Пошук і скрапінг Firecrawl, а також резервний варіант web_fetch
title: Firecrawl
x-i18n:
generated_at: "2026-04-23T21:14:54Z"
model: gpt-5.4
generated_at: "2026-05-02T05:39:09Z"
model: gpt-5.5
provider: openai
source_hash: 9cd7a56c3a5c7d7876daddeef9acdbe25272404916250bdf40d1d7ad31388f19
source_hash: 6a04a9585dac65579454c5b9539a5fc1e315392c5956b9273e370406ecdbbd3e
source_path: tools/firecrawl.md
workflow: 15
workflow: 16
---
OpenClaw може використовувати **Firecrawl** трьома способами:
- як провайдера `web_search`
- як явні інструменти Plugin: `firecrawl_search` і `firecrawl_scrape`
- як fallback-екстрактор для `web_fetch`
- як резервний екстрактор для `web_fetch`
Це hosted-сервіс для витягування/пошуку, який підтримує обхід ботозахисту й кешування,
Це хостинговий сервіс витягування/пошуку, який підтримує обхід бот-захисту й кешування,
що допомагає з сайтами, насиченими JS, або сторінками, які блокують звичайні HTTP-запити.
## Отримайте API key
## Отримайте API-ключ
1. Створіть обліковий запис Firecrawl і згенеруйте API key.
2. Збережіть його в config або задайте `FIRECRAWL_API_KEY` у середовищі gateway.
1. Створіть обліковий запис Firecrawl і згенеруйте API-ключ.
2. Збережіть його в конфігурації або задайте `FIRECRAWL_API_KEY` у середовищі gateway.
## Налаштування пошуку Firecrawl
## Налаштуйте пошук Firecrawl
```json5
{
@ -58,13 +58,13 @@ OpenClaw може використовувати **Firecrawl** трьома сп
Примітки:
- Вибір Firecrawl під час onboarding або в `openclaw configure --section web` автоматично вмикає bundled Plugin Firecrawl.
- `web_search` з Firecrawl підтримує `query` і `count`.
- Для специфічних для Firecrawl параметрів, як-от `sources`, `categories` або scrape результатів, використовуйте `firecrawl_search`.
- Перевизначення `baseUrl` мають залишатися на `https://api.firecrawl.dev`.
- `FIRECRAWL_BASE_URL` — це спільний env fallback для базових URL пошуку й scrape Firecrawl.
- Вибір Firecrawl під час онбордингу або через `openclaw configure --section web` автоматично вмикає вбудований Plugin Firecrawl.
- `web_search` із Firecrawl підтримує `query` і `count`.
- Для специфічних для Firecrawl елементів керування, як-от `sources`, `categories` або скрапінг результатів, використовуйте `firecrawl_search`.
- `baseUrl` за замовчуванням указує на хостинговий Firecrawl за адресою `https://api.firecrawl.dev`. Самостійно розгорнуті перевизначення дозволені лише для приватних/внутрішніх кінцевих точок; HTTP приймається лише для таких приватних цілей.
- `FIRECRAWL_BASE_URL` є спільним резервним значенням env для базових URL пошуку й скрапінгу Firecrawl.
## Налаштування Firecrawl scrape + fallback для web_fetch
## Налаштуйте скрапінг Firecrawl + резерв для web_fetch
```json5
{
@ -89,18 +89,27 @@ OpenClaw може використовувати **Firecrawl** трьома сп
Примітки:
- Спроби fallback Firecrawl виконуються лише тоді, коли доступний API key (`plugins.entries.firecrawl.config.webFetch.apiKey` або `FIRECRAWL_API_KEY`).
- `maxAgeMs` визначає, наскільки старими можуть бути кешовані результати (мс). Типове значення — 2 дні.
- Застаріла config `tools.web.fetch.firecrawl.*` автоматично мігрується через `openclaw doctor --fix`.
- Перевизначення URL scrape/base для Firecrawl обмежені `https://api.firecrawl.dev`.
- Резервні спроби Firecrawl виконуються лише тоді, коли доступний API-ключ (`plugins.entries.firecrawl.config.webFetch.apiKey` або `FIRECRAWL_API_KEY`).
- `maxAgeMs` керує тим, наскільки старими можуть бути кешовані результати (мс). Значення за замовчуванням — 2 дні.
- Застаріла конфігурація `tools.web.fetch.firecrawl.*` автоматично мігрується командою `openclaw doctor --fix`.
- Перевизначення URL скрапінгу/базового URL Firecrawl дотримуються того самого правила хостингового/приватного доступу, що й пошук: публічний хостинговий трафік використовує `https://api.firecrawl.dev`; самостійно розгорнуті перевизначення мають вказувати на приватні/внутрішні кінцеві точки.
`firecrawl_scrape` повторно використовує ті самі параметри `plugins.entries.firecrawl.config.webFetch.*` і env vars.
`firecrawl_scrape` повторно використовує ті самі налаштування `plugins.entries.firecrawl.config.webFetch.*` і змінні env.
### Самостійно розгорнутий Firecrawl
Задайте `plugins.entries.firecrawl.config.webSearch.baseUrl`,
`plugins.entries.firecrawl.config.webFetch.baseUrl` або `FIRECRAWL_BASE_URL`,
коли запускаєте Firecrawl самостійно. OpenClaw приймає `http://` лише для цілей loopback,
приватної мережі, `.local`, `.internal` або `.localhost`. Публічні власні
хости відхиляються, щоб API-ключі Firecrawl випадково не надсилалися на довільні
кінцеві точки.
## Інструменти Plugin Firecrawl
### `firecrawl_search`
Використовуйте цей інструмент, коли вам потрібні специфічні для Firecrawl параметри пошуку замість загального `web_search`.
Використовуйте це, коли потрібні специфічні для Firecrawl елементи керування пошуком замість універсального `web_search`.
Основні параметри:
@ -113,7 +122,7 @@ OpenClaw може використовувати **Firecrawl** трьома сп
### `firecrawl_scrape`
Використовуйте його для сторінок з важким JS або ботозахистом, де звичайний `web_fetch` слабкий.
Використовуйте це для сторінок, насичених JS або захищених від ботів, де звичайний `web_fetch` працює слабко.
Основні параметри:
@ -126,27 +135,27 @@ OpenClaw може використовувати **Firecrawl** трьома сп
- `storeInCache`
- `timeoutSeconds`
## Stealth / обхід ботозахисту
## Stealth / обхід бот-захисту
Firecrawl надає параметр **режиму proxy** для обходу ботозахисту (`basic`, `stealth` або `auto`).
Firecrawl надає параметр **proxy mode** для обходу бот-захисту (`basic`, `stealth` або `auto`).
OpenClaw завжди використовує `proxy: "auto"` плюс `storeInCache: true` для запитів Firecrawl.
Якщо proxy не вказано, Firecrawl типово використовує `auto`. `auto` повторює спробу зі stealth-proxy, якщо базова спроба не вдалася, що може витрачати більше кредитів,
ніж scrape лише в режимі basic.
Якщо proxy пропущено, Firecrawl за замовчуванням використовує `auto`. `auto` повторює спробу зі stealth-проксі, якщо базова спроба не вдалася, що може використати більше кредитів,
ніж скрапінг лише в базовому режимі.
## Як `web_fetch` використовує Firecrawl
Порядок витягування для `web_fetch`:
Порядок витягування `web_fetch`:
1. Readability (локально)
2. Firecrawl (якщо вибрано або автоматично визначено як активний fallback для web-fetch)
3. Базове очищення HTML (останній fallback)
2. Firecrawl (якщо вибрано або автоматично визначено як активний резервний провайдер web-fetch)
3. Базове очищення HTML (останній резерв)
Перемикач вибору — це `tools.web.fetch.provider`. Якщо ви його не задаєте, OpenClaw
автоматично визначає першого готового провайдера web-fetch на основі доступних облікових даних.
Наразі bundled-провайдером є Firecrawl.
Перемикач вибору — `tools.web.fetch.provider`. Якщо його пропустити, OpenClaw
автоматично визначає першого готового провайдера web-fetch із доступних облікових даних.
Наразі вбудованим провайдером є Firecrawl.
## Пов’язане
- [Огляд Web Search](/uk/tools/web) -- усі провайдери й автовизначення
- [Web Fetch](/uk/tools/web-fetch) -- інструмент web_fetch з fallback через Firecrawl
- [Огляд Web Search](/uk/tools/web) -- усі провайдери й автоматичне визначення
- [Web Fetch](/uk/tools/web-fetch) -- інструмент web_fetch із резервом Firecrawl
- [Tavily](/uk/tools/tavily) -- інструменти пошуку й витягування

View File

@ -1,16 +1,16 @@
---
read_when:
- Ви хочете отримати дані за URL-адресою та витягти читабельний вміст
- Ви хочете отримати вміст за URL-адресою та витягти придатний для читання вміст
- Потрібно налаштувати web_fetch або його резервний варіант Firecrawl
- Ви хочете зрозуміти обмеження й кешування web_fetch
sidebarTitle: Web Fetch
summary: інструмент web_fetch -- отримання через HTTP із витягуванням придатного для читання вмісту
summary: інструмент web_fetch -- HTTP-отримання з витягуванням читабельного вмісту
title: Отримання з вебу
x-i18n:
generated_at: "2026-05-02T03:13:19Z"
generated_at: "2026-05-02T05:39:08Z"
model: gpt-5.5
provider: openai
source_hash: c7826858c24ab090b348a43ed071e8fd904a5ccb929192e736ff7a3f082ed03b
source_hash: f455da77c20049f0ed0246fa53e9f49d3cf2004e65bd64a0bf871861c6e93229
source_path: tools/web-fetch.md
workflow: 16
---
@ -18,8 +18,8 @@ x-i18n:
Інструмент `web_fetch` виконує звичайний HTTP GET і витягує читабельний вміст
(HTML у markdown або текст). Він **не** виконує JavaScript.
Для сайтів, що сильно залежать від JS, або сторінок, захищених входом, натомість використовуйте
[Веббраузер](/uk/tools/browser).
Для сайтів, що інтенсивно використовують JS, або сторінок, захищених входом, використовуйте натомість
[веббраузер](/uk/tools/browser).
## Швидкий старт
@ -37,7 +37,7 @@ URL для отримання. Лише `http(s)`.
</ParamField>
<ParamField path="extractMode" type="'markdown' | 'text'" default="markdown">
Формат виводу після витягнення основного вмісту.
Формат виводу після витягання основного вмісту.
</ParamField>
<ParamField path="maxChars" type="number">
@ -47,20 +47,20 @@ URL для отримання. Лише `http(s)`.
## Як це працює
<Steps>
<Step title="Отримання">
Надсилає HTTP GET із User-Agent, схожим на Chrome, і заголовком `Accept-Language`.
<Step title="Fetch">
Надсилає HTTP GET із Chrome-подібним User-Agent і заголовком `Accept-Language`.
Блокує приватні/внутрішні імена хостів і повторно перевіряє перенаправлення.
</Step>
<Step title="Витягнення">
Запускає Readability (витягнення основного вмісту) для HTML-відповіді.
<Step title="Extract">
Запускає Readability (витягання основного вмісту) для HTML-відповіді.
</Step>
<Step title="Резервний варіант (необов’язково)">
Якщо Readability завершується невдало і Firecrawl налаштовано, повторює спробу через
API Firecrawl у режимі обходу бот-захисту.
<Step title="Fallback (optional)">
Якщо Readability завершується невдало й Firecrawl налаштовано, повторює спробу через
Firecrawl API у режимі обходу бот-захисту.
</Step>
<Step title="Кеш">
Результати кешуються на 15 хвилин (налаштовується), щоб зменшити кількість повторних
отримань тієї самої URL-адреси.
<Step title="Cache">
Результати кешуються на 15 хвилин (налаштовується), щоб зменшити повторні
отримання тієї самої URL-адреси.
</Step>
</Steps>
@ -93,8 +93,8 @@ URL для отримання. Лише `http(s)`.
## Резервний варіант Firecrawl
Якщо витягнення Readability завершується невдало, `web_fetch` може перейти на
[Firecrawl](/uk/tools/firecrawl) для обходу бот-захисту та кращого витягнення:
Якщо витягання Readability завершується невдало, `web_fetch` може перейти до
[Firecrawl](/uk/tools/firecrawl) для обходу бот-захисту та кращого витягання:
```json5
{
@ -128,42 +128,43 @@ URL для отримання. Лише `http(s)`.
Застаріла конфігурація `tools.web.fetch.firecrawl.*` автоматично мігрується командою `openclaw doctor --fix`.
<Note>
Якщо Firecrawl увімкнено, а його SecretRef не розв’язано і немає резервного env
Якщо Firecrawl увімкнено, а його SecretRef не розв’язано й немає резервного env
`FIRECRAWL_API_KEY`, запуск gateway швидко завершується помилкою.
</Note>
<Note>
Перевизначення Firecrawl `baseUrl` суворо обмежені: вони мають використовувати `https://` і
офіційний хост Firecrawl (`api.firecrawl.dev`).
Перевизначення `baseUrl` для Firecrawl обмежено: розміщений трафік використовує
`https://api.firecrawl.dev`; самостійно розміщені перевизначення мають вказувати на приватні або
внутрішні кінцеві точки, а `http://` приймається лише для таких приватних цілей.
</Note>
Поточна поведінка під час виконання:
- `tools.web.fetch.provider` явно вибирає резервного провайдера отримання.
- Якщо `provider` не вказано, OpenClaw автоматично визначає першого готового провайдера web-fetch
з доступних облікових даних. Непісочний `web_fetch` може використовувати
- Якщо `provider` пропущено, OpenClaw автоматично виявляє першого готового провайдера web-fetch
з доступних облікових даних. `web_fetch` поза sandbox може використовувати
встановлені plugins, які оголошують `contracts.webFetchProviders` і реєструють
відповідного провайдера під час виконання. Наразі вбудований провайдер — Firecrawl.
- Пісочні виклики `web_fetch` залишаються обмеженими вбудованими провайдерами.
відповідного провайдера під час виконання. Наразі вбудованим провайдером є Firecrawl.
- Виклики `web_fetch` у sandbox залишаються обмеженими вбудованими провайдерами.
- Якщо Readability вимкнено, `web_fetch` одразу переходить до вибраного
резервного провайдера. Якщо провайдер недоступний, він завершується безпечним збоєм.
резервного провайдера. Якщо жоден провайдер недоступний, він завершується закритою помилкою.
## Обмеження й безпека
## Обмеження та безпека
- `maxChars` обмежується значенням `tools.web.fetch.maxCharsCap`
- Тіло відповіді обмежується `maxResponseBytes` перед парсингом; завеликі
- `maxChars` обмежується до `tools.web.fetch.maxCharsCap`
- Тіло відповіді обмежується `maxResponseBytes` перед розбором; надмірно великі
відповіді обрізаються з попередженням
- Приватні/внутрішні імена хостів блокуються
- `tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange` і
`tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange` — це вузькі явні дозволи
для довірених стеків проксі з підробленими IP; залишайте їх невстановленими, якщо ваш проксі не володіє
цими синтетичними діапазонами й не застосовує власну політику призначення
`tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange` є вузькими opt-in параметрами
для довірених стеків проксі з fake-IP; залишайте їх невстановленими, якщо ваш проксі не володіє
цими синтетичними діапазонами й не застосовує власну політику призначень
- Перенаправлення перевіряються й обмежуються `maxRedirects`
- `web_fetch` працює за принципом максимально можливої спроби -- деяким сайтам потрібен [Веббраузер](/uk/tools/browser)
- `web_fetch` працює за принципом найкращої спроби -- деяким сайтам потрібен [веббраузер](/uk/tools/browser)
## Профілі інструментів
Якщо ви використовуєте профілі інструментів або списки дозволених, додайте `web_fetch` або `group:web`:
Якщо ви використовуєте профілі інструментів або списки дозволів, додайте `web_fetch` або `group:web`:
```json5
{
@ -176,6 +177,6 @@ URL для отримання. Лише `http(s)`.
## Пов’язане
- [Вебпошук](/uk/tools/web) -- пошук в інтернеті з кількома провайдерами
- [Веббраузер](/uk/tools/browser) -- повна автоматизація браузера для сайтів, що сильно залежать від JS
- [Firecrawl](/uk/tools/firecrawl) -- інструменти пошуку та скрейпінгу Firecrawl
- [Вебпошук](/uk/tools/web) -- пошук в інтернеті за допомогою кількох провайдерів
- [Веббраузер](/uk/tools/browser) -- повна автоматизація браузера для сайтів, що інтенсивно використовують JS
- [Firecrawl](/uk/tools/firecrawl) -- інструменти пошуку й scraping Firecrawl