diff --git a/docs/uk/gateway/configuration-reference.md b/docs/uk/gateway/configuration-reference.md index d50aa01ed..3af3038c6 100644 --- a/docs/uk/gateway/configuration-reference.md +++ b/docs/uk/gateway/configuration-reference.md @@ -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..enabled: false` вимикає Skill, навіть якщо вона комплектна/встановлена. -- `entries..apiKey`: зручність для Skills, які оголошують основну змінну середовища (рядок відкритим текстом або об’єкт SecretRef). +- `entries..enabled: false` вимикає skill, навіть якщо він комплектний/встановлений. +- `entries..apiKey`: зручність для skills, які оголошують основну env-змінну (рядок відкритим текстом або об’єкт SecretRef). --- @@ -190,41 +190,41 @@ x-i18n: } ``` -- Завантажуються з `~/.openclaw/extensions`, `/.openclaw/extensions`, плюс `plugins.load.paths`. -- Виявлення приймає нативні Plugins OpenClaw, а також сумісні пакети Codex і пакети Claude, зокрема пакети Claude без маніфесту зі стандартним макетом. +- Завантажуються з `~/.openclaw/extensions`, `/.openclaw/extensions`, а також `plugins.load.paths`. +- Виявлення приймає нативні plugins OpenClaw, а також сумісні пакети Codex і пакети Claude, включно з пакетами Claude стандартної структури без маніфеста. - **Зміни конфігурації потребують перезапуску gateway.** -- `allow`: необов’язковий список дозволених (завантажуються лише перелічені Plugins). `deny` має перевагу. -- `plugins.entries..apiKey`: зручне поле API-ключа на рівні Plugin (коли підтримується Plugin). -- `plugins.entries..env`: мапа змінних середовища в межах Plugin. -- `plugins.entries..hooks.allowPromptInjection`: коли `false`, ядро блокує `before_prompt_build` та ігнорує поля, що змінюють prompt, зі застарілого `before_agent_start`, водночас зберігаючи застарілі `modelOverride` і `providerOverride`. Застосовується до нативних хуків Plugin і підтримуваних каталогів хуків, наданих пакетами. -- `plugins.entries..hooks.allowConversationAccess`: коли `true`, довірені невбудовані Plugins можуть читати необроблений вміст розмови з типізованих хуків, як-от `llm_input`, `llm_output`, `before_agent_finalize` і `agent_end`. -- `plugins.entries..subagent.allowModelOverride`: явно довіряє цьому Plugin запитувати перевизначення `provider` і `model` для кожного запуску фонових subagent-запусків. -- `plugins.entries..subagent.allowedModels`: необов’язковий список дозволених канонічних цілей `provider/model` для довірених перевизначень subagent. Використовуйте `"*"` лише тоді, коли навмисно хочете дозволити будь-яку модель. -- `plugins.entries..config`: об’єкт конфігурації, визначений Plugin (валідується нативною схемою Plugin OpenClaw, коли доступна). -- Налаштування облікових записів/runtime каналів Plugin зберігаються в `channels.` і мають описуватися метаданими `channelConfigs` маніфесту Plugin-власника, а не центральним реєстром параметрів OpenClaw. +- `allow`: необов’язковий список дозволених (завантажуються лише перелічені plugins). `deny` має перевагу. +- `plugins.entries..apiKey`: зручне поле API-ключа на рівні plugin (коли підтримується plugin). +- `plugins.entries..env`: мапа env-змінних, обмежена plugin. +- `plugins.entries..hooks.allowPromptInjection`: коли `false`, ядро блокує `before_prompt_build` і ігнорує поля, що змінюють prompt, із застарілого `before_agent_start`, водночас зберігаючи застарілі `modelOverride` і `providerOverride`. Застосовується до нативних хуків plugin і підтримуваних директорій хуків, наданих пакетами. +- `plugins.entries..hooks.allowConversationAccess`: коли `true`, довірені некомплектні plugins можуть читати необроблений вміст розмови з типізованих хуків, таких як `llm_input`, `llm_output`, `before_agent_finalize` і `agent_end`. +- `plugins.entries..subagent.allowModelOverride`: явно довіряє цьому plugin запитувати перевизначення `provider` і `model` для кожного запуску фонових subagent-запусків. +- `plugins.entries..subagent.allowedModels`: необов’язковий список дозволених канонічних цілей `provider/model` для довірених перевизначень subagent. Використовуйте `"*"` лише коли навмисно хочете дозволити будь-яку модель. +- `plugins.entries..config`: об’єкт конфігурації, визначений plugin (валідується схемою нативного OpenClaw plugin, коли доступна). +- Налаштування облікового запису/runtime каналового plugin містяться в `channels.` і мають описуватися метаданими `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..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: -- `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..healthMonitor.enabled`: поканальне вимкнення перезапусків монітора стану зі збереженням глобального монітора увімкненим. -- `channels..accounts..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..healthMonitor.enabled`: opt-out для окремого каналу від перезапусків health-monitor зі збереженням глобального монітора ввімкненим. +- `channels..accounts..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 ` або `x-openclaw-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 -- `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://:/__openclaw__/canvas/` - `http://:/__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 - Профілі для кожного агента зберігаються в `/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..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` може прибрати невідомі ключі). @@ -1120,11 +1112,11 @@ openclaw gateway --port 19001 } ``` -- `sessionRetention`: як довго зберігати завершені ізольовані сесії запусків cron перед обрізанням із `sessions.json`. Також керує очищенням архівованих видалених транскриптів cron. Стандартно: `24h`; задайте `false`, щоб вимкнути. -- `runLog.maxBytes`: максимальний розмір одного файлу журналу запуску (`cron/runs/.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/.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]`; 1–10 записів). -- `retryOn`: типи помилок, які запускають повтори — `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Пропустіть, щоб повторювати всі тимчасові типи. +- `maxAttempts`: максимальна кількість повторних спроб для одноразових завдань у разі тимчасових помилок (типово: `3`; діапазон: `0`–`10`). +- `backoffMs`: масив затримок backoff у мс для кожної повторної спроби (типово: `[30000, 60000, 300000]`; 1–10 записів). +- `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) diff --git a/docs/uk/tools/firecrawl.md b/docs/uk/tools/firecrawl.md index 5bfb97d01..f32b952ff 100644 --- a/docs/uk/tools/firecrawl.md +++ b/docs/uk/tools/firecrawl.md @@ -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) -- інструменти пошуку й витягування diff --git a/docs/uk/tools/web-fetch.md b/docs/uk/tools/web-fetch.md index cb327898f..5d0f6009b 100644 --- a/docs/uk/tools/web-fetch.md +++ b/docs/uk/tools/web-fetch.md @@ -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)`. -Формат виводу після витягнення основного вмісту. +Формат виводу після витягання основного вмісту. @@ -47,20 +47,20 @@ URL для отримання. Лише `http(s)`. ## Як це працює - - Надсилає HTTP GET із User-Agent, схожим на Chrome, і заголовком `Accept-Language`. + + Надсилає HTTP GET із Chrome-подібним User-Agent і заголовком `Accept-Language`. Блокує приватні/внутрішні імена хостів і повторно перевіряє перенаправлення. - - Запускає Readability (витягнення основного вмісту) для HTML-відповіді. + + Запускає Readability (витягання основного вмісту) для HTML-відповіді. - - Якщо Readability завершується невдало і Firecrawl налаштовано, повторює спробу через - API Firecrawl у режимі обходу бот-захисту. + + Якщо Readability завершується невдало й Firecrawl налаштовано, повторює спробу через + Firecrawl API у режимі обходу бот-захисту. - - Результати кешуються на 15 хвилин (налаштовується), щоб зменшити кількість повторних - отримань тієї самої URL-адреси. + + Результати кешуються на 15 хвилин (налаштовується), щоб зменшити повторні + отримання тієї самої URL-адреси. @@ -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`. - Якщо Firecrawl увімкнено, а його SecretRef не розв’язано і немає резервного env + Якщо Firecrawl увімкнено, а його SecretRef не розв’язано й немає резервного env `FIRECRAWL_API_KEY`, запуск gateway швидко завершується помилкою. - Перевизначення Firecrawl `baseUrl` суворо обмежені: вони мають використовувати `https://` і - офіційний хост Firecrawl (`api.firecrawl.dev`). + Перевизначення `baseUrl` для Firecrawl обмежено: розміщений трафік використовує + `https://api.firecrawl.dev`; самостійно розміщені перевизначення мають вказувати на приватні або + внутрішні кінцеві точки, а `http://` приймається лише для таких приватних цілей. Поточна поведінка під час виконання: - `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