diff --git a/docs/uk/automation/tasks.md b/docs/uk/automation/tasks.md
index 85c3a5c84..a266601d3 100644
--- a/docs/uk/automation/tasks.md
+++ b/docs/uk/automation/tasks.md
@@ -1,60 +1,60 @@
---
read_when:
- - Перевірка фонового виконання, яке триває або нещодавно завершилося
- - Налагодження збоїв доставки для відокремлених запусків агента
+ - Перевірка фонового процесу, що виконується або нещодавно завершився
+ - Налагодження збоїв доставки для відокремлених запусків агентів
- Розуміння того, як фонові запуски пов’язані із сесіями, cron і heartbeat
-summary: Відстеження фонових завдань для запусків ACP, субагентів, ізольованих cron-завдань і операцій CLI
+summary: Відстеження фонових завдань для запусків ACP, субагентів, ізольованих cron-завдань і CLI-операцій
title: Фонові завдання
x-i18n:
- generated_at: "2026-04-05T23:52:58Z"
+ generated_at: "2026-04-06T00:20:37Z"
model: gpt-5.4
provider: openai
- source_hash: 68ba60b352c8d8fc57fed081856581107c6c0eb09ef4047264c3052abc30520d
+ source_hash: 5fc757b30e2d9c1b5c4d9c8ff21cdc406835af207a83ee6076b63c348ad07781
source_path: automation/tasks.md
workflow: 15
---
# Фонові завдання
-> **Шукаєте планування?** Див. [Automation & Tasks](/uk/automation), щоб вибрати правильний механізм. Ця сторінка описує **відстеження** фонового виконання, а не його планування.
+> **Шукаєте планування?** Див. [Автоматизація й завдання](/uk/automation), щоб вибрати правильний механізм. Ця сторінка описує **відстеження** фонової роботи, а не її планування.
-Фонові завдання відстежують роботу, яка виконується **поза межами вашої основної сесії розмови**:
+Фонові завдання відстежують роботу, що виконується **поза межами вашої основної сесії розмови**:
запуски ACP, запуск субагентів, виконання ізольованих cron-завдань і операції, ініційовані через CLI.
-Завдання **не** замінюють сесії, cron-завдання або heartbeat — це **журнал активності**, який фіксує, яка відокремлена робота виконувалася, коли саме та чи була вона успішною.
+Завдання **не** замінюють сесії, cron-завдання або heartbeat — це **журнал активності**, який фіксує, яка відокремлена робота відбулася, коли саме і чи була вона успішною.
-Не кожен запуск агента створює завдання. Ходи heartbeat і звичайний інтерактивний чат — ні. Усі виконання cron, запуски ACP, запуски субагентів і команди агента CLI — так.
+Не кожен запуск агента створює завдання. Цикли heartbeat і звичайний інтерактивний чат — ні. Усі виконання cron, запуски ACP, запуски субагентів і CLI-команди агента — так.
## Коротко
-- Завдання — це **записи**, а не планувальники: cron і heartbeat вирішують, _коли_ виконується робота, а завдання відстежують, _що сталося_.
-- ACP, субагенти, усі cron-завдання та операції CLI створюють завдання. Ходи heartbeat — ні.
-- Кожне завдання проходить стани `queued → running → terminal` (succeeded, failed, timed_out, cancelled або lost).
-- Завдання cron залишаються активними, доки середовище виконання cron усе ще володіє завданням; завдання CLI, прив’язані до чату, залишаються активними лише доки їхній контекст виконання-власник іще активний.
-- Завершення керується подіями push: відокремлена робота може напряму сповіщати або пробуджувати
- сесію/heartbeat запитувача після завершення, тому цикли опитування стану
- зазвичай не є правильним підходом.
+- Завдання — це **записи**, а не планувальники: cron і heartbeat визначають, _коли_ виконується робота, а завдання відстежують, _що сталося_.
+- ACP, субагенти, усі cron-завдання та CLI-операції створюють завдання. Цикли heartbeat — ні.
+- Кожне завдання проходить через `queued → running → terminal` (`succeeded`, `failed`, `timed_out`, `cancelled` або `lost`).
+- Cron-завдання залишаються активними, доки середовище виконання cron усе ще володіє завданням; CLI-завдання з чат-підтримкою залишаються активними лише доки контекст виконання, якому вони належать, усе ще активний.
+- Завершення працює за push-моделлю: відокремлена робота може напряму сповістити або пробудити
+ сесію запитувача/heartbeat після завершення, тому цикли опитування стану зазвичай є
+ неправильним підходом.
- Ізольовані запуски cron і завершення субагентів у межах best-effort очищають відстежувані вкладки браузера/процеси для своєї дочірньої сесії перед фінальним обліком очищення.
-- Ізольована доставка cron пригнічує застарілі проміжні відповіді батьківського процесу, поки
- ще триває завершення дочірньої роботи субагента, і надає перевагу фінальному виводу нащадка,
- якщо він надходить до моменту доставки.
+- Доставка ізольованого cron пригнічує застарілі проміжні відповіді батьківського процесу, поки
+ дочірня робота субагента все ще завершується, і надає перевагу фінальному дочірньому
+ виводу, якщо він надходить до доставки.
- Сповіщення про завершення доставляються безпосередньо в канал або ставляться в чергу до наступного heartbeat.
- `openclaw tasks list` показує всі завдання; `openclaw tasks audit` виявляє проблеми.
-- Термінальні записи зберігаються 7 днів, після чого автоматично видаляються.
+- Термінальні записи зберігаються 7 днів, а потім автоматично видаляються.
## Швидкий старт
```bash
-# Показати всі завдання (найновіші спочатку)
+# Перелічити всі завдання (спочатку найновіші)
openclaw tasks list
-# Фільтрувати за середовищем виконання або статусом
+# Фільтрувати за runtime або статусом
openclaw tasks list --runtime acp
openclaw tasks list --status running
-# Показати подробиці конкретного завдання (за ID, ID запуску або ключем сесії)
+# Показати деталі конкретного завдання (за ID, ID запуску або ключем сесії)
openclaw tasks show
# Скасувати завдання, що виконується (завершує дочірню сесію)
@@ -63,10 +63,10 @@ openclaw tasks cancel
# Змінити політику сповіщень для завдання
openclaw tasks notify state_changes
-# Запустити перевірку стану
+# Запустити аудит працездатності
openclaw tasks audit
-# Переглянути або застосувати обслуговування
+# Попередній перегляд або застосування обслуговування
openclaw tasks maintenance
openclaw tasks maintenance --apply
@@ -78,22 +78,24 @@ openclaw tasks flow cancel
## Що створює завдання
-| Джерело | Тип середовища виконання | Коли створюється запис завдання | Політика сповіщень за замовчуванням |
-| ---------------------- | ------------------------ | ------------------------------------------------------ | ----------------------------------- |
-| Фонові запуски ACP | `acp` | Під час запуску дочірньої сесії ACP | `done_only` |
-| Оркестрація субагентів | `subagent` | Під час запуску субагента через `sessions_spawn` | `done_only` |
-| Cron-завдання (усі типи) | `cron` | Під час кожного виконання cron (основна сесія та ізольоване) | `silent` |
-| Операції CLI | `cli` | Команди `openclaw agent`, які виконуються через gateway | `silent` |
-| Медіазавдання агента | `cli` | Запуски `video_generate`, прив’язані до сесії | `silent` |
+| Джерело | Тип runtime | Коли створюється запис завдання | Типова політика сповіщень |
+| ----------------------- | ----------- | ----------------------------------------------------- | ------------------------- |
+| Фонові запуски ACP | `acp` | Під час запуску дочірньої ACP-сесії | `done_only` |
+| Оркестрація субагентів | `subagent` | Під час запуску субагента через `sessions_spawn` | `done_only` |
+| Cron-завдання (усі типи) | `cron` | Під час кожного виконання cron (основна й ізольована сесія) | `silent` |
+| CLI-операції | `cli` | Команди `openclaw agent`, що виконуються через gateway | `silent` |
+| Медіазавдання агента | `cli` | Запуски `video_generate` із прив’язкою до сесії | `silent` |
-Завдання cron в основній сесії за замовчуванням використовують політику сповіщень `silent` — вони створюють записи для відстеження, але не генерують сповіщення. Ізольовані завдання cron також за замовчуванням використовують `silent`, але вони помітніші, оскільки виконуються у власній сесії.
+Cron-завдання основної сесії типово використовують політику сповіщень `silent` — вони створюють записи для відстеження, але не генерують сповіщень. Ізольовані cron-завдання також типово мають `silent`, але вони помітніші, тому що виконуються у власній сесії.
-Запуски `video_generate`, прив’язані до сесії, також використовують політику сповіщень `silent`. Вони все одно створюють записи завдань, але завершення повертається до початкової сесії агента як внутрішнє пробудження, щоб агент міг сам написати подальше повідомлення та прикріпити готове відео.
+Запуски `video_generate` із прив’язкою до сесії також використовують політику сповіщень `silent`. Вони все одно створюють записи завдань, але завершення повертається до початкової сесії агента як внутрішнє пробудження, щоб агент міг сам записати наступне повідомлення й прикріпити готове відео.
-**Що не створює завдань:**
+Поки завдання `video_generate` із прив’язкою до сесії все ще активне, інструмент також працює як запобіжник: повторні виклики `video_generate` у тій самій сесії повертають статус активного завдання замість запуску другого паралельного генерування. Використовуйте `action: "status"`, якщо вам потрібен явний запит прогресу/статусу з боку агента.
-- Ходи heartbeat — основна сесія; див. [Heartbeat](/uk/gateway/heartbeat)
-- Звичайні інтерактивні ходи чату
+**Що не створює завдання:**
+
+- Цикли heartbeat — основна сесія; див. [Heartbeat](/uk/gateway/heartbeat)
+- Звичайні інтерактивні цикли чату
- Прямі відповіді `/command`
## Життєвий цикл завдання
@@ -101,61 +103,61 @@ openclaw tasks flow cancel
```mermaid
stateDiagram-v2
[*] --> queued
- queued --> running : агент запускається
- running --> succeeded : успішне завершення
- running --> failed : помилка
- running --> timed_out : перевищено тайм-аут
- running --> cancelled : оператор скасовує
- queued --> lost : сесія відсутня > 5 хв
- running --> lost : сесія відсутня > 5 хв
+ queued --> running : agent starts
+ running --> succeeded : completes ok
+ running --> failed : error
+ running --> timed_out : timeout exceeded
+ running --> cancelled : operator cancels
+ queued --> lost : session gone > 5 min
+ running --> lost : session gone > 5 min
```
| Статус | Що це означає |
| ----------- | ------------------------------------------------------------------------ |
-| `queued` | Створено, очікує запуску агента |
-| `running` | Хід агента зараз активно виконується |
+| `queued` | Створено, очікує на запуск агента |
+| `running` | Цикл агента активно виконується |
| `succeeded` | Успішно завершено |
| `failed` | Завершено з помилкою |
-| `timed_out` | Перевищено налаштований тайм-аут |
-| `cancelled` | Зупинено оператором через `openclaw tasks cancel` |
-| `lost` | Середовище виконання втратило авторитетний базовий стан після 5-хвилинного пільгового періоду |
+| `timed_out` | Перевищено налаштований час очікування |
+| `cancelled` | Зупинено оператором через `openclaw tasks cancel` |
+| `lost` | Runtime втратив авторитетний базовий стан після 5-хвилинного пільгового періоду |
-Переходи відбуваються автоматично — коли завершується пов’язаний запуск агента, статус завдання оновлюється відповідно.
+Переходи відбуваються автоматично — коли пов’язаний запуск агента завершується, статус завдання оновлюється відповідно.
-`lost` залежить від середовища виконання:
+`lost` залежить від runtime:
-- Завдання ACP: зникли метадані дочірньої сесії ACP.
-- Завдання субагентів: дочірня сесія зникла зі сховища цільового агента.
-- Завдання cron: середовище виконання cron більше не відстежує завдання як активне.
-- Завдання CLI: ізольовані завдання дочірньої сесії використовують дочірню сесію; завдання CLI, прив’язані до чату, натомість використовують живий контекст виконання, тому наявність рядків сесії каналу/групи/прямих повідомлень не підтримує їх активність.
+- Завдання ACP: зникли метадані дочірньої ACP-сесії.
+- Завдання субагента: дочірня сесія зникла зі сховища цільового агента.
+- Cron-завдання: середовище виконання cron більше не відстежує завдання як активне.
+- CLI-завдання: ізольовані завдання дочірньої сесії використовують дочірню сесію; CLI-завдання з чат-підтримкою натомість використовують живий контекст виконання, тому завислі рядки сесії каналу/групи/прямих повідомлень не підтримують їх активність.
-## Доставка і сповіщення
+## Доставка й сповіщення
-Коли завдання переходить у термінальний стан, OpenClaw сповіщає вас. Є два шляхи доставки:
+Коли завдання досягає термінального стану, OpenClaw сповіщає вас. Є два шляхи доставки:
-**Пряма доставка** — якщо завдання має ціль каналу (`requesterOrigin`), повідомлення про завершення надсилається безпосередньо в цей канал (Telegram, Discord, Slack тощо). Для завершень субагентів OpenClaw також зберігає прив’язану маршрутизацію thread/topic, коли вона доступна, і може підставити відсутній `to` / обліковий запис із збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`) перед тим, як відмовитися від прямої доставки.
+**Пряма доставка** — якщо завдання має цільовий канал (`requesterOrigin`), повідомлення про завершення надсилається безпосередньо в цей канал (Telegram, Discord, Slack тощо). Для завершень субагентів OpenClaw також зберігає прив’язану маршрутизацію потоку/теми, коли це можливо, і може заповнити відсутній `to` / акаунт зі збереженого маршруту сесії запитувача (`lastChannel` / `lastTo` / `lastAccountId`) перед тим, як відмовитися від прямої доставки.
-**Доставка через чергу сесії** — якщо пряма доставка не вдається або origin не задано, оновлення ставиться в чергу як системна подія в сесії запитувача й з’являється під час наступного heartbeat.
+**Доставка через чергу сесії** — якщо пряма доставка не вдалася або origin не задано, оновлення ставиться в чергу як системна подія в сесії запитувача й з’явиться під час наступного heartbeat.
-Завершення завдання негайно запускає пробудження heartbeat, щоб ви швидко побачили результат — вам не потрібно чекати наступного запланованого тіку heartbeat.
+Завершення завдання запускає негайне пробудження heartbeat, щоб ви швидко побачили результат — вам не потрібно чекати наступного запланованого циклу heartbeat.
-Це означає, що типовий робочий процес базується на push-подіях: один раз запустіть відокремлену роботу, а потім
-дозвольте середовищу виконання пробудити вас або сповістити після завершення. Опитуйте стан завдання лише тоді, коли
+Це означає, що типовий робочий процес базується на push-моделі: запустіть відокремлену роботу один раз, а потім дозвольте
+runtime пробудити або сповістити вас після завершення. Опитуйте стан завдання лише тоді, коли
потрібні налагодження, втручання або явний аудит.
### Політики сповіщень
-Керуйте тим, скільки ви отримуєте повідомлень про кожне завдання:
+Керуйте тим, скільки інформації ви отримуєте про кожне завдання:
-| Політика | Що доставляється |
-| --------------------- | ------------------------------------------------------------------------ |
-| `done_only` (типово) | Лише термінальний стан (succeeded, failed тощо) — **це значення за замовчуванням** |
-| `state_changes` | Кожен перехід стану та оновлення прогресу |
-| `silent` | Узагалі нічого |
+| Політика | Що доставляється |
+| --------------------- | ----------------------------------------------------------------------- |
+| `done_only` (типово) | Лише термінальний стан (`succeeded`, `failed` тощо) — **це типова поведінка** |
+| `state_changes` | Кожен перехід стану й оновлення прогресу |
+| `silent` | Взагалі нічого |
-Змініть політику під час виконання завдання:
+Змінити політику під час виконання завдання:
```bash
openclaw tasks notify state_changes
@@ -177,7 +179,7 @@ openclaw tasks list [--runtime ] [--status ] [--j
openclaw tasks show
```
-Токен lookup приймає ID завдання, ID запуску або ключ сесії. Показує повний запис, включно з часом, станом доставки, помилкою та термінальним підсумком.
+Токен lookup приймає ID завдання, ID запуску або ключ сесії. Показує повний запис, включно з часовими даними, станом доставки, помилкою й термінальним підсумком.
### `tasks cancel`
@@ -199,16 +201,16 @@ openclaw tasks notify
openclaw tasks audit [--json]
```
-Виявляє операційні проблеми. Висновки також з’являються в `openclaw status`, коли виявлено проблеми.
+Виявляє операційні проблеми. Результати також з’являються в `openclaw status`, коли виявлено проблеми.
-| Висновок | Рівень | Умова |
-| ------------------------- | ------ | ---------------------------------------------------- |
-| `stale_queued` | warn | Перебуває в черзі більше 10 хвилин |
-| `stale_running` | error | Виконується більше 30 хвилин |
-| `lost` | error | Зникло володіння завданням, прив’язане до середовища виконання |
-| `delivery_failed` | warn | Доставка не вдалася, а політика сповіщень не `silent` |
-| `missing_cleanup` | warn | Термінальне завдання без позначки часу очищення |
-| `inconsistent_timestamps` | warn | Порушення часової послідовності (наприклад, завершено раніше, ніж почато) |
+| Знахідка | Серйозність | Тригер |
+| ------------------------- | ----------- | ---------------------------------------------------- |
+| `stale_queued` | warn | У стані queued понад 10 хвилин |
+| `stale_running` | error | У стані running понад 30 хвилин |
+| `lost` | error | Зникло runtime-підтверджене володіння завданням |
+| `delivery_failed` | warn | Доставка не вдалася, і політика сповіщень не `silent` |
+| `missing_cleanup` | warn | Термінальне завдання без мітки часу очищення |
+| `inconsistent_timestamps` | warn | Порушення часової шкали (наприклад, завершено до початку) |
### `tasks maintenance`
@@ -217,23 +219,23 @@ openclaw tasks maintenance [--json]
openclaw tasks maintenance --apply [--json]
```
-Використовуйте це, щоб переглянути або застосувати звірку, позначення очищення та видалення
+Використовуйте це для попереднього перегляду або застосування звірки, виставлення міток очищення й видалення
для завдань і стану Task Flow.
-Звірка залежить від середовища виконання:
+Звірка враховує runtime:
-- Завдання ACP/субагентів перевіряють свою дочірню сесію.
-- Завдання cron перевіряють, чи середовище виконання cron усе ще володіє завданням.
-- Завдання CLI, прив’язані до чату, перевіряють контекст активного запуску-власника, а не лише рядок сесії чату.
+- Завдання ACP/субагентів перевіряють свою базову дочірню сесію.
+- Cron-завдання перевіряють, чи середовище виконання cron усе ще володіє завданням.
+- CLI-завдання з чат-підтримкою перевіряють базовий активний контекст виконання, а не лише рядок чат-сесії.
-Очищення після завершення також залежить від середовища виконання:
+Очищення після завершення також враховує runtime:
-- Завершення субагента в межах best-effort закриває відстежувані вкладки браузера/процеси для дочірньої сесії перед подальшим оголошенням очищення.
-- Завершення ізольованого cron у межах best-effort закриває відстежувані вкладки браузера/процеси для сесії cron до повного завершення виконання.
-- Доставка для ізольованого cron за потреби чекає завершення подальших дій дочірнього субагента і
- пригнічує застарілий текст підтвердження від батьківського процесу замість його оголошення.
-- Доставка завершення субагента надає перевагу найновішому видимому тексту асистента; якщо він порожній, вона переходить до санітизованого найновішого тексту tool/toolResult, а запуски tool-call, що завершилися лише тайм-аутом, можуть згортатися до короткого підсумку часткового прогресу.
-- Збої очищення не маскують реальний результат завдання.
+- Завершення субагента в межах best-effort закриває відстежувані вкладки браузера/процеси для дочірньої сесії перед продовженням оголошення про очищення.
+- Завершення ізольованого cron у межах best-effort закриває відстежувані вкладки браузера/процеси для cron-сесії до повного завершення запуску.
+- Доставка ізольованого cron за потреби очікує завершення дочірніх дій субагента й
+ пригнічує застарілий текст підтвердження батьківського процесу замість його оголошення.
+- Доставка завершення субагента надає перевагу останньому видимому тексту асистента; якщо він порожній, використовується очищений останній текст `tool`/`toolResult`, а запуски лише з викликом інструмента, що завершилися тайм-аутом, можуть зводитися до короткого підсумку часткового прогресу.
+- Помилки очищення не приховують реальний результат завдання.
### `tasks flow list|show|cancel`
@@ -243,22 +245,22 @@ openclaw tasks flow show [--json]
openclaw tasks flow cancel
```
-Використовуйте ці команди, коли вас цікавить саме оркеструвальний Task Flow,
+Використовуйте це, коли вас цікавить саме оркеструвальний Task Flow,
а не окремий запис фонового завдання.
-## Дошка завдань у чаті (`/tasks`)
+## Дошка завдань чату (`/tasks`)
Використовуйте `/tasks` у будь-якій чат-сесії, щоб побачити фонові завдання, пов’язані з цією сесією. Дошка показує
-активні та нещодавно завершені завдання з даними про середовище виконання, статус, час і подробиці прогресу або помилки.
+активні й нещодавно завершені завдання з runtime, статусом, часовими даними та деталями прогресу або помилки.
-Коли поточна сесія не має видимих пов’язаних завдань, `/tasks` повертається до локальних для агента підрахунків завдань,
-щоб ви все одно бачили загальний огляд без розкриття подробиць інших сесій.
+Коли в поточній сесії немає видимих пов’язаних завдань, `/tasks` повертається до локальних лічильників завдань агента,
+щоб ви все одно отримали огляд без розкриття деталей інших сесій.
Для повного операторського журналу використовуйте CLI: `openclaw tasks list`.
## Інтеграція зі статусом (навантаження завдань)
-`openclaw status` містить стислий підсумок завдань:
+`openclaw status` містить короткий підсумок завдань:
```
Tasks: 3 queued · 2 running · 1 issues
@@ -271,10 +273,10 @@ Tasks: 3 queued · 2 running · 1 issues
- **byRuntime** — розбивка за `acp`, `subagent`, `cron`, `cli`
І `/status`, і інструмент `session_status` використовують знімок завдань з урахуванням очищення: активним завданням
-надається перевага, застарілі завершені рядки приховуються, а нещодавні збої показуються лише тоді, коли немає активної роботи.
-Це допомагає картці статусу зосереджуватися на тому, що важливо саме зараз.
+надається перевага, застарілі завершені рядки приховуються, а нещодавні збої відображаються лише тоді, коли активної роботи
+вже не залишилося. Це допомагає картці статусу залишатися зосередженою на тому, що важливо саме зараз.
-## Зберігання і обслуговування
+## Зберігання й обслуговування
### Де зберігаються завдання
@@ -284,50 +286,50 @@ Tasks: 3 queued · 2 running · 1 issues
$OPENCLAW_STATE_DIR/tasks/runs.sqlite
```
-Реєстр завантажується в пам’ять під час запуску gateway і синхронізує записи в SQLite для збереження між перезапусками.
+Реєстр завантажується в пам’ять під час запуску gateway і синхронізує записи в SQLite для збереження після перезапусків.
### Автоматичне обслуговування
Очищувач запускається кожні **60 секунд** і виконує три дії:
-1. **Звірка** — перевіряє, чи активні завдання все ще мають авторитетний базовий стан у середовищі виконання. Завдання ACP/субагентів використовують стан дочірньої сесії, завдання cron — володіння активним завданням, а завдання CLI, прив’язані до чату, — контекст активного запуску-власника. Якщо цей базовий стан відсутній понад 5 хвилин, завдання позначається як `lost`.
-2. **Позначення очищення** — встановлює часову позначку `cleanupAfter` для термінальних завдань (endedAt + 7 днів).
-3. **Видалення** — видаляє записи після дати `cleanupAfter`.
+1. **Звірка** — перевіряє, чи активні завдання все ще мають авторитетну базову підтримку runtime. Завдання ACP/субагентів використовують стан дочірньої сесії, cron-завдання — володіння активним завданням, а CLI-завдання з чат-підтримкою — базовий контекст виконання. Якщо цей базовий стан відсутній понад 5 хвилин, завдання позначається як `lost`.
+2. **Виставлення міток очищення** — установлює часову мітку `cleanupAfter` на термінальних завданнях (`endedAt + 7 days`).
+3. **Видалення** — видаляє записи, дата `cleanupAfter` яких уже минула.
-**Термін зберігання**: записи термінальних завдань зберігаються **7 днів**, після чого автоматично видаляються. Налаштування не потрібне.
+**Термін зберігання**: термінальні записи завдань зберігаються **7 днів**, а потім автоматично видаляються. Налаштування не потрібне.
## Як завдання пов’язані з іншими системами
### Завдання і Task Flow
-[Task Flow](/uk/automation/taskflow) — це рівень оркестрації потоків над фоновими завданнями. Один потік може координувати кілька завдань протягом свого життєвого циклу, використовуючи керовані або дзеркальні режими синхронізації. Використовуйте `openclaw tasks`, щоб перевіряти окремі записи завдань, і `openclaw tasks flow`, щоб перевіряти оркеструвальний потік.
+[Task Flow](/uk/automation/taskflow) — це рівень оркестрації потоків над фоновими завданнями. Один потік може координувати кілька завдань протягом свого життєвого циклу, використовуючи керовані або дзеркальні режими синхронізації. Використовуйте `openclaw tasks`, щоб переглядати окремі записи завдань, і `openclaw tasks flow`, щоб переглядати оркеструвальний потік.
-Докладніше див. у [Task Flow](/uk/automation/taskflow).
+Докладніше див. [Task Flow](/uk/automation/taskflow).
### Завдання і cron
-**Визначення** cron-завдання зберігається в `~/.openclaw/cron/jobs.json`. **Кожне** виконання cron створює запис завдання — як в основній сесії, так і в ізольованій. Завдання cron в основній сесії за замовчуванням використовують політику сповіщень `silent`, тому вони відстежуються без створення сповіщень.
+**Визначення** cron-завдання зберігається в `~/.openclaw/cron/jobs.json`. **Кожне** виконання cron створює запис завдання — і для основної сесії, і для ізольованої. Cron-завдання основної сесії типово використовують політику сповіщень `silent`, тому вони відстежуються без генерації сповіщень.
Див. [Cron Jobs](/uk/automation/cron-jobs).
### Завдання і heartbeat
-Запуски heartbeat — це ходи основної сесії, вони не створюють записів завдань. Коли завдання завершується, воно може ініціювати пробудження heartbeat, щоб ви швидко побачили результат.
+Запуски heartbeat — це цикли основної сесії; вони не створюють записи завдань. Коли завдання завершується, воно може ініціювати пробудження heartbeat, щоб ви швидко побачили результат.
Див. [Heartbeat](/uk/gateway/heartbeat).
### Завдання і сесії
-Завдання може посилатися на `childSessionKey` (де виконується робота) і `requesterSessionKey` (хто її запустив). Сесії — це контекст розмови; завдання — це шар відстеження активності поверх нього.
+Завдання може посилатися на `childSessionKey` (де виконується робота) і `requesterSessionKey` (хто її запустив). Сесії — це контекст розмови; завдання — це відстеження активності поверх нього.
-### Завдання і запуски агента
+### Завдання і запуски агентів
-`runId` завдання пов’язує його із запуском агента, який виконує роботу. Події життєвого циклу агента (start, end, error) автоматично оновлюють статус завдання — вам не потрібно керувати життєвим циклом вручну.
+`runId` завдання пов’язує його із запуском агента, який виконує роботу. Події життєвого циклу агента (початок, завершення, помилка) автоматично оновлюють статус завдання — вам не потрібно керувати життєвим циклом вручну.
## Пов’язане
-- [Automation & Tasks](/uk/automation) — усі механізми автоматизації з першого погляду
-- [Task Flow](/uk/automation/taskflow) — оркестрація потоків поверх завдань
-- [Scheduled Tasks](/uk/automation/cron-jobs) — планування фонової роботи
-- [Heartbeat](/uk/gateway/heartbeat) — періодичні ходи основної сесії
-- [CLI: Tasks](/cli/index#tasks) — довідка щодо команд CLI
+- [Автоматизація й завдання](/uk/automation) — усі механізми автоматизації в одному огляді
+- [Task Flow](/uk/automation/taskflow) — оркестрація потоків над завданнями
+- [Заплановані завдання](/uk/automation/cron-jobs) — планування фонової роботи
+- [Heartbeat](/uk/gateway/heartbeat) — періодичні цикли основної сесії
+- [CLI: Завдання](/cli/index#tasks) — довідка з команд CLI
diff --git a/docs/uk/channels/matrix.md b/docs/uk/channels/matrix.md
index 8507aae0f..620dc2304 100644
--- a/docs/uk/channels/matrix.md
+++ b/docs/uk/channels/matrix.md
@@ -1,14 +1,14 @@
---
read_when:
- Налаштування Matrix в OpenClaw
- - Налаштування Matrix E2EE і верифікації
-summary: Стан підтримки Matrix, приклади налаштування та конфігурації
+ - Налаштування E2EE і верифікації Matrix
+summary: Стан підтримки Matrix, налаштування та приклади конфігурації
title: Matrix
x-i18n:
- generated_at: "2026-04-05T22:39:31Z"
+ generated_at: "2026-04-06T00:22:45Z"
model: gpt-5.4
provider: openai
- source_hash: ddd4f14094388b1a4cd542a5956fcf47f7d6734b7a11fde1d6125b3f0d7202c9
+ source_hash: 5506f966d78d5f09d597c4850088f8ee1c91cf4d5f6a7b5cade80d89b5bdf1bc
source_path: channels/matrix.md
workflow: 15
---
@@ -20,10 +20,10 @@ Matrix — це вбудований плагін каналу Matrix для Ope
## Вбудований плагін
-Matrix постачається як вбудований плагін у поточних релізах OpenClaw, тож звичайним
-зібраним версіям не потрібне окреме встановлення.
+Matrix постачається як вбудований плагін у поточних випусках OpenClaw, тому звичайні
+паковані збірки не потребують окремого встановлення.
-Якщо ви використовуєте старішу збірку або кастомне встановлення без Matrix, встановіть
+Якщо ви використовуєте старішу збірку або власне встановлення без Matrix, встановіть
його вручну:
Встановлення з npm:
@@ -32,27 +32,27 @@ Matrix постачається як вбудований плагін у пот
openclaw plugins install @openclaw/matrix
```
-Встановлення з локального checkout:
+Встановлення з локальної копії:
```bash
openclaw plugins install ./path/to/local/matrix-plugin
```
-Див. [Plugins](/uk/tools/plugin) щодо поведінки плагінів і правил встановлення.
+Див. [Плагіни](/uk/tools/plugin), щоб дізнатися про поведінку плагінів і правила встановлення.
## Налаштування
1. Переконайтеся, що плагін Matrix доступний.
- - Поточні зібрані релізи OpenClaw уже містять його.
- - У старіших/кастомних встановленнях його можна додати вручну командами вище.
+ - У поточних пакованих випусках OpenClaw він уже вбудований.
+ - У старіших/власних встановленнях його можна додати вручну командами вище.
2. Створіть обліковий запис Matrix на своєму homeserver.
-3. Налаштуйте `channels.matrix` одним із варіантів:
+3. Налаштуйте `channels.matrix` одним із таких способів:
- `homeserver` + `accessToken`, або
- `homeserver` + `userId` + `password`.
4. Перезапустіть gateway.
-5. Почніть DM з ботом або запросіть його до кімнати.
+5. Почніть особистий чат із ботом або запросіть його до кімнати.
-Інтерактивні шляхи налаштування:
+Шляхи інтерактивного налаштування:
```bash
openclaw channels add
@@ -62,20 +62,20 @@ openclaw configure --section channels
Що саме запитує майстер Matrix:
- URL homeserver
-- метод автентифікації: токен доступу або пароль
-- ID користувача лише якщо ви обираєте автентифікацію паролем
+- спосіб автентифікації: токен доступу або пароль
+- ID користувача лише якщо ви обрали автентифікацію за паролем
- необов’язкова назва пристрою
-- чи вмикати E2EE
-- чи налаштувати доступ до кімнат Matrix зараз
+- чи потрібно ввімкнути E2EE
+- чи потрібно налаштувати доступ до кімнат Matrix зараз
Важлива поведінка майстра:
-- Якщо для вибраного облікового запису вже існують змінні середовища автентифікації Matrix, і для цього облікового запису ще не збережено автентифікацію в конфігурації, майстер пропонує скористатися env і записує для цього облікового запису лише `enabled: true`.
-- Коли ви інтерактивно додаєте ще один обліковий запис Matrix, введена назва облікового запису нормалізується до ID облікового запису, який використовується в конфігурації та змінних середовища. Наприклад, `Ops Bot` стає `ops-bot`.
-- Підказки allowlist для DM одразу приймають повні значення `@user:server`. Відображувані імена працюють лише тоді, коли живий пошук у каталозі знаходить один точний збіг; інакше майстер просить повторити спробу з повним Matrix ID.
-- Підказки allowlist для кімнат безпосередньо приймають ID кімнат і псевдоніми. Вони також можуть у реальному часі визначати назви приєднаних кімнат, але нерозпізнані назви під час налаштування зберігаються лише як введені й надалі ігноруються під час runtime-розв’язання allowlist. Надавайте перевагу `!room:server` або `#alias:server`.
-- Ідентичність кімнати/сесії під час runtime використовує стабільний Matrix room ID. Псевдоніми, оголошені кімнатою, використовуються лише як вхідні дані для пошуку, а не як довгостроковий ключ сесії чи стабільна ідентичність групи.
-- Щоб визначити назви кімнат перед збереженням, використовуйте `openclaw channels resolve --channel matrix "Project Room"`.
+- Якщо для вибраного облікового запису вже існують змінні середовища автентифікації Matrix, і цей обліковий запис ще не має збереженої автентифікації в конфігурації, майстер запропонує скорочений шлях через env і запише для цього облікового запису лише `enabled: true`.
+- Коли ви інтерактивно додаєте інший обліковий запис Matrix, введена назва облікового запису нормалізується в ID облікового запису, який використовується в конфігурації та змінних середовища. Наприклад, `Ops Bot` стає `ops-bot`.
+- Підказки allowlist для особистих повідомлень одразу приймають повні значення `@user:server`. Відображувані імена працюють лише тоді, коли живий пошук у каталозі знаходить один точний збіг; інакше майстер попросить повторити спробу з повним Matrix ID.
+- Підказки allowlist для кімнат приймають ID кімнат і псевдоніми напряму. Вони також можуть у реальному часі знаходити назви приєднаних кімнат, але нерозпізнані назви зберігаються лише в тому вигляді, як їх введено під час налаштування, і надалі ігноруються під час розв’язання allowlist у runtime. Надавайте перевагу `!room:server` або `#alias:server`.
+- Ідентичність кімнати/сесії в runtime використовує стабільний Matrix room ID. Псевдоніми, оголошені кімнатою, використовуються лише як вхідні дані для пошуку, а не як довгостроковий ключ сесії чи стабільна ідентичність групи.
+- Щоб розв’язати назви кімнат перед збереженням, використовуйте `openclaw channels resolve --channel matrix "Project Room"`.
Мінімальне налаштування на основі токена:
@@ -92,7 +92,7 @@ openclaw configure --section channels
}
```
-Налаштування на основі пароля (після входу токен кешується):
+Налаштування на основі пароля (токен кешується після входу):
```json5
{
@@ -110,8 +110,9 @@ openclaw configure --section channels
Matrix зберігає кешовані облікові дані в `~/.openclaw/credentials/matrix/`.
Обліковий запис за замовчуванням використовує `credentials.json`; іменовані облікові записи використовують `credentials-.json`.
+Коли там існують кешовані облікові дані, OpenClaw вважає Matrix налаштованим для setup, doctor і виявлення стану каналів, навіть якщо поточна автентифікація не задана безпосередньо в конфігурації.
-Еквіваленти змінних середовища (використовуються, коли ключ конфігурації не задано):
+Відповідники змінних середовища (використовуються, коли ключ конфігурації не задано):
- `MATRIX_HOMESERVER`
- `MATRIX_ACCESS_TOKEN`
@@ -120,7 +121,7 @@ Matrix зберігає кешовані облікові дані в `~/.opencl
- `MATRIX_DEVICE_ID`
- `MATRIX_DEVICE_NAME`
-Для облікових записів не за замовчуванням використовуйте змінні середовища з областю облікового запису:
+Для неосновних облікових записів використовуйте прив’язані до облікового запису змінні середовища:
- `MATRIX__HOMESERVER`
- `MATRIX__ACCESS_TOKEN`
@@ -139,14 +140,14 @@ Matrix зберігає кешовані облікові дані в `~/.opencl
- `MATRIX_OPS_X2D_BOT_HOMESERVER`
- `MATRIX_OPS_X2D_BOT_ACCESS_TOKEN`
-Matrix екранує розділові знаки в ID облікових записів, щоб уникнути колізій у змінних середовища з областю дії.
-Наприклад, `-` перетворюється на `_X2D_`, тому `ops-prod` відповідає `MATRIX_OPS_X2D_PROD_*`.
+Matrix екранує розділові знаки в ID облікових записів, щоб уникнути колізій у прив’язаних змінних середовища.
+Наприклад, `-` перетворюється на `_X2D_`, тому `ops-prod` мапиться на `MATRIX_OPS_X2D_PROD_*`.
-Інтерактивний майстер пропонує скористатися змінними середовища лише тоді, коли ці env-змінні автентифікації вже присутні, а для вибраного облікового запису ще не збережено автентифікацію Matrix у конфігурації.
+Інтерактивний майстер пропонує скорочений шлях через змінні середовища лише тоді, коли ці змінні автентифікації вже присутні, а вибраний обліковий запис ще не має збереженої автентифікації Matrix у конфігурації.
## Приклад конфігурації
-Це практична базова конфігурація з pairing для DM, allowlist кімнат і ввімкненим E2EE:
+Це практична базова конфігурація з pairing для особистих повідомлень, allowlist для кімнат і ввімкненим E2EE:
```json5
{
@@ -181,12 +182,12 @@ Matrix екранує розділові знаки в ID облікових з
}
```
-## Попередній перегляд під час streaming
+## Попередній перегляд потокової відповіді
-Streaming відповідей у Matrix є опціональним.
+Потокова передача відповідей Matrix вмикається лише за бажанням.
-Установіть `channels.matrix.streaming` у `"partial"`, якщо хочете, щоб OpenClaw надсилав один живий попередній
-варіант відповіді, редагував його на місці під час генерації тексту моделлю, а потім завершував, коли
+Установіть `channels.matrix.streaming` у значення `"partial"`, якщо хочете, щоб OpenClaw надсилав один живий
+попередній перегляд відповіді, редагував цей попередній перегляд на місці, поки модель генерує текст, а потім завершував його, коли
відповідь буде готова:
```json5
@@ -199,38 +200,38 @@ Streaming відповідей у Matrix є опціональним.
}
```
-- `streaming: "off"` — значення за замовчуванням. OpenClaw чекає фінальну відповідь і надсилає її один раз.
-- `streaming: "partial"` створює одне редаговане повідомлення-попередній перегляд для поточного блоку асистента, використовуючи звичайні текстові повідомлення Matrix. Це зберігає стару поведінку Matrix із попереднім сповіщенням за першим preview, тому стандартні клієнти можуть надсилати сповіщення за першим текстом попереднього перегляду, а не за завершеним блоком.
-- `streaming: "quiet"` створює одне редаговане тихе повідомлення-попередній перегляд для поточного блоку асистента. Використовуйте це лише тоді, коли ви також налаштували push rules отримувача для фіналізованих редагувань preview.
-- `blockStreaming: true` вмикає окремі повідомлення про прогрес Matrix. Якщо preview streaming увімкнено, Matrix зберігає живу чернетку для поточного блоку та залишає завершені блоки як окремі повідомлення.
-- Коли preview streaming увімкнено, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці та фіналізує ту саму подію, коли блок або хід завершується.
-- Якщо preview більше не вміщується в одну подію Matrix, OpenClaw зупиняє preview streaming і повертається до звичайної фінальної доставки.
-- Відповіді з медіа, як і раніше, надсилають вкладення звичайним способом. Якщо застарілий preview більше не можна безпечно перевикористати, OpenClaw редагує його перед надсиланням фінальної медіавідповіді.
-- Редагування preview потребують додаткових викликів Matrix API. Залишайте streaming вимкненим, якщо вам потрібна максимально консервативна поведінка щодо rate limit.
+- `streaming: "off"` — значення за замовчуванням. OpenClaw чекає на фінальну відповідь і надсилає її один раз.
+- `streaming: "partial"` створює одне редаговане повідомлення-попередній перегляд для поточного блоку відповіді асистента, використовуючи звичайні текстові повідомлення Matrix. Це зберігає застарілу поведінку Matrix із сповіщенням на перший попередній перегляд, тому стандартні клієнти можуть сповіщати про перший текст попереднього перегляду замість завершеного блоку.
+- `streaming: "quiet"` створює одне редаговане тихе повідомлення-попередній перегляд для поточного блоку відповіді асистента. Використовуйте це лише тоді, коли ви також налаштували push-правила одержувача для завершених редагувань попереднього перегляду.
+- `blockStreaming: true` вмикає окремі повідомлення про прогрес у Matrix. Коли потоковий попередній перегляд увімкнено, Matrix зберігає живу чернетку для поточного блоку та залишає завершені блоки як окремі повідомлення.
+- Коли попередній перегляд увімкнено, а `blockStreaming` вимкнено, Matrix редагує живу чернетку на місці та завершує цю саму подію, коли блок або хід завершуються.
+- Якщо попередній перегляд більше не вміщується в одну подію Matrix, OpenClaw зупиняє потоковий попередній перегляд і повертається до звичайної фінальної доставки.
+- Медіавідповіді, як і раніше, надсилають вкладення звичайним способом. Якщо застарілий попередній перегляд більше не можна безпечно використати повторно, OpenClaw редагує його перед надсиланням фінальної медіавідповіді.
+- Редагування попереднього перегляду потребує додаткових викликів Matrix API. Залишайте streaming вимкненим, якщо хочете найбільш консервативну поведінку щодо обмеження швидкості.
-`blockStreaming` сам по собі не вмикає preview чернеток.
-Використовуйте `streaming: "partial"` або `streaming: "quiet"` для редагувань preview; потім додавайте `blockStreaming: true`, лише якщо також хочете, щоб завершені блоки асистента залишалися видимими як окремі повідомлення про прогрес.
+`blockStreaming` саме по собі не вмикає попередній перегляд чернеток.
+Використовуйте `streaming: "partial"` або `streaming: "quiet"` для редагування попереднього перегляду; потім додавайте `blockStreaming: true` лише якщо також хочете, щоб завершені блоки асистента залишалися видимими як окремі повідомлення про прогрес.
-Якщо вам потрібні стандартні сповіщення Matrix без кастомних push rules, використовуйте `streaming: "partial"` для поведінки з попереднім preview або залиште `streaming` вимкненим для доставки лише фінальної відповіді. Для `streaming: "off"`:
+Якщо вам потрібні стандартні сповіщення Matrix без користувацьких push-правил, використовуйте `streaming: "partial"` для поведінки з попереднім переглядом спочатку або залиште `streaming` вимкненим для доставки лише фінального результату. З `streaming: "off"`:
- `blockStreaming: true` надсилає кожен завершений блок як звичайне повідомлення Matrix зі сповіщенням.
- `blockStreaming: false` надсилає лише фінальну завершену відповідь як звичайне повідомлення Matrix зі сповіщенням.
-### Self-hosted push rules для тихих фіналізованих preview
+### Самохостингові push-правила для тихих завершених попередніх переглядів
-Якщо ви запускаєте власну інфраструктуру Matrix і хочете, щоб тихі preview надсилали сповіщення лише тоді, коли блок або
-фінальна відповідь завершені, установіть `streaming: "quiet"` і додайте push rule для кожного користувача для фіналізованих редагувань preview.
+Якщо ви запускаєте власну інфраструктуру Matrix і хочете, щоб тихі попередні перегляди сповіщали лише тоді, коли блок або
+фінальна відповідь завершені, установіть `streaming: "quiet"` і додайте push-правило для кожного користувача для завершених редагувань попереднього перегляду.
-Зазвичай це налаштування на рівні користувача-отримувача, а не глобальна зміна конфігурації homeserver:
+Зазвичай це налаштування на рівні користувача-одержувача, а не глобальна зміна конфігурації homeserver:
Швидка схема перед початком:
-- recipient user = людина, яка має отримати сповіщення
-- bot user = обліковий запис OpenClaw Matrix, що надсилає відповідь
-- для наведених нижче викликів API використовуйте токен доступу користувача-отримувача
-- у push rule звіряйте `sender` з повним MXID користувача-бота
+- recipient user = людина, яка має отримувати сповіщення
+- bot user = обліковий запис Matrix OpenClaw, який надсилає відповідь
+- для викликів API нижче використовуйте токен доступу користувача-одержувача
+- у push-правилі зіставляйте `sender` з повним MXID користувача-бота
-1. Налаштуйте OpenClaw на використання тихих preview:
+1. Налаштуйте OpenClaw на використання тихих попередніх переглядів:
```json5
{
@@ -242,13 +243,13 @@ Streaming відповідей у Matrix є опціональним.
}
```
-2. Переконайтеся, що обліковий запис отримувача вже отримує звичайні push-сповіщення Matrix. Правила тихих preview
- працюють лише тоді, коли в цього користувача вже є робочі pusher-и/пристрої.
+2. Переконайтеся, що обліковий запис одержувача вже отримує звичайні push-сповіщення Matrix. Тихі правила попереднього перегляду
+ працюють лише тоді, коли в цього користувача вже є робочі pushers/пристрої.
-3. Отримайте токен доступу користувача-отримувача.
+3. Отримайте токен доступу користувача-одержувача.
- Використовуйте токен користувача, який отримує повідомлення, а не токен бота.
- - Зазвичай найпростіше повторно використати токен існуючої сесії клієнта.
- - Якщо потрібно випустити новий токен, можна увійти через стандартний Matrix Client-Server API:
+ - Зазвичай найпростіше повторно використати токен наявної сесії клієнта.
+ - Якщо потрібно створити новий токен, можна увійти через стандартний Matrix Client-Server API:
```bash
curl -sS -X POST \
@@ -264,7 +265,7 @@ curl -sS -X POST \
}'
```
-4. Перевірте, що обліковий запис отримувача вже має pusher-и:
+4. Перевірте, що обліковий запис одержувача вже має pushers:
```bash
curl -sS \
@@ -272,10 +273,10 @@ curl -sS \
"https://matrix.example.org/_matrix/client/v3/pushers"
```
-Якщо це не повертає активних pusher-ів/пристроїв, спочатку виправте звичайні сповіщення Matrix, а вже потім додавайте
+Якщо це повертає відсутність активних pushers/пристроїв, спочатку виправте звичайні сповіщення Matrix, а вже потім додавайте
наведене нижче правило OpenClaw.
-OpenClaw позначає фіналізовані редагування preview лише з текстом так:
+OpenClaw позначає завершені редагування текстових попередніх переглядів так:
```json
{
@@ -283,7 +284,7 @@ OpenClaw позначає фіналізовані редагування previe
}
```
-5. Створіть override push rule для кожного облікового запису отримувача, який має отримувати ці сповіщення:
+5. Створіть override push-правило для кожного облікового запису одержувача, який має отримувати ці сповіщення:
```bash
curl -sS -X PUT \
@@ -316,15 +317,15 @@ curl -sS -X PUT \
Замініть ці значення перед запуском команди:
- `https://matrix.example.org`: базовий URL вашого homeserver
-- `$USER_ACCESS_TOKEN`: токен доступу користувача-отримувача
-- `@bot:example.org`: MXID вашого бота OpenClaw Matrix, а не MXID користувача-отримувача
+- `$USER_ACCESS_TOKEN`: токен доступу користувача, який отримує повідомлення
+- `@bot:example.org`: MXID вашого Matrix-бота OpenClaw, а не MXID користувача, який отримує повідомлення
-Правило оцінюється відносно відправника події:
+Правило обчислюється щодо відправника події:
-- автентифікуйтеся токеном користувача-отримувача
-- звіряйте `sender` з MXID бота OpenClaw
+- автентифікуйтеся токеном користувача, який отримує повідомлення
+- зіставляйте `sender` з MXID бота OpenClaw
-6. Перевірте, що правило існує:
+6. Переконайтеся, що правило існує:
```bash
curl -sS \
@@ -332,42 +333,42 @@ curl -sS \
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview"
```
-7. Перевірте відповідь зі streaming. У тихому режимі кімната має показувати тихий preview чернетки, а фінальне
- редагування на місці має надіслати одне сповіщення, коли блок або хід завершиться.
+7. Протестуйте потокову відповідь. У тихому режимі кімната має показати тихий попередній перегляд чернетки, а фінальне
+ редагування на місці має сповістити один раз, коли блок або хід завершиться.
Примітки:
-- Створюйте правило з токеном доступу користувача-отримувача, а не бота.
-- Нові визначені користувачем правила `override` вставляються перед правилами придушення за замовчуванням, тож додатковий параметр порядку не потрібен.
-- Це впливає лише на редагування preview лише з текстом, які OpenClaw може безпечно фіналізувати на місці. Fallback-и для медіа та fallback-и для застарілих preview, як і раніше, використовують звичайну доставку Matrix.
-- Якщо `GET /_matrix/client/v3/pushers` не показує жодного pusher, значить для цього облікового запису/пристрою в користувача ще не працює доставка push-сповіщень Matrix.
+- Створюйте правило з токеном доступу користувача, який отримує повідомлення, а не з токеном бота.
+- Нові визначені користувачем правила `override` вставляються перед правилами приглушення за замовчуванням, тому додатковий параметр порядку не потрібен.
+- Це впливає лише на текстові редагування попереднього перегляду, які OpenClaw може безпечно завершити на місці. Відступ до медіадоставки та відступ для застарілого попереднього перегляду все одно використовують звичайну доставку Matrix.
+- Якщо `GET /_matrix/client/v3/pushers` показує відсутність pushers, цей користувач ще не має робочої доставки push-сповіщень Matrix для цього облікового запису/пристрою.
#### Synapse
-Для Synapse описаного вище налаштування зазвичай достатньо саме по собі:
+Для Synapse наведеного вище налаштування зазвичай достатньо саме по собі:
-- Для фіналізованих сповіщень preview OpenClaw не потрібні спеціальні зміни `homeserver.yaml`.
-- Якщо ваше розгортання Synapse уже надсилає звичайні push-сповіщення Matrix, головний крок налаштування — токен користувача + виклик `pushrules` вище.
+- Окрема зміна `homeserver.yaml` не потрібна для сповіщень про завершений попередній перегляд OpenClaw.
+- Якщо ваше розгортання Synapse вже надсилає звичайні push-сповіщення Matrix, токен користувача + виклик `pushrules` вище є основним кроком налаштування.
- Якщо ви запускаєте Synapse за reverse proxy або workers, переконайтеся, що `/_matrix/client/.../pushrules/` коректно доходить до Synapse.
-- Якщо ви використовуєте workers Synapse, переконайтеся, що pusher-и справні. Доставка push-сповіщень обробляється головним процесом або `synapse.app.pusher` / налаштованими pusher worker-ами.
+- Якщо ви використовуєте Synapse workers, переконайтеся, що pushers працюють справно. Доставка push-сповіщень обробляється основним процесом або `synapse.app.pusher` / налаштованими pusher workers.
#### Tuwunel
-Для Tuwunel використовуйте той самий сценарій налаштування й виклик API `pushrules`, показаний вище:
+Для Tuwunel використовуйте той самий сценарій налаштування та виклик API `pushrules`, наведений вище:
-- Специфічна конфігурація Tuwunel для самого маркера фіналізованого preview не потрібна.
-- Якщо звичайні сповіщення Matrix уже працюють для цього користувача, головний крок налаштування — токен користувача + виклик `pushrules` вище.
-- Якщо сповіщення, схоже, зникають, коли користувач активний на іншому пристрої, перевірте, чи ввімкнено `suppress_push_when_active`. Tuwunel додав цю опцію у Tuwunel 1.4.2 12 вересня 2025 року, і вона може навмисно приглушувати push-сповіщення на інших пристроях, поки один пристрій активний.
+- Спеціальна конфігурація Tuwunel для самого маркера завершеного попереднього перегляду не потрібна.
+- Якщо звичайні сповіщення Matrix уже працюють для цього користувача, токен користувача + виклик `pushrules` вище є основним кроком налаштування.
+- Якщо сповіщення ніби зникають, поки користувач активний на іншому пристрої, перевірте, чи ввімкнено `suppress_push_when_active`. Tuwunel додав цю опцію в Tuwunel 1.4.2 12 вересня 2025 року, і вона може навмисно приглушувати push-сповіщення на інших пристроях, поки один пристрій активний.
## Шифрування та верифікація
-В зашифрованих (E2EE) кімнатах вихідні події зображень використовують `thumbnail_file`, тож preview зображень шифруються разом із повним вкладенням. У незашифрованих кімнатах і далі використовується звичайний `thumbnail_url`. Налаштування не потрібні — плагін автоматично визначає стан E2EE.
+У зашифрованих (E2EE) кімнатах вихідні події зображень використовують `thumbnail_file`, тому попередні перегляди зображень шифруються разом із повним вкладенням. У незашифрованих кімнатах, як і раніше, використовується звичайний `thumbnail_url`. Додаткова конфігурація не потрібна — плагін автоматично визначає стан E2EE.
-### Кімнати бот-бот
+### Кімнати бот-до-бота
-За замовчуванням повідомлення Matrix від інших налаштованих облікових записів OpenClaw Matrix ігноруються.
+За замовчуванням повідомлення Matrix від інших налаштованих облікових записів Matrix OpenClaw ігноруються.
-Використовуйте `allowBots`, якщо ви навмисно хочете дозволити міжагентний трафік Matrix:
+Використовуйте `allowBots`, якщо ви свідомо хочете дозволити міжагентний трафік Matrix:
```json5
{
@@ -384,13 +385,13 @@ curl -sS \
}
```
-- `allowBots: true` приймає повідомлення від інших налаштованих облікових записів Matrix bot у дозволених кімнатах і DM.
-- `allowBots: "mentions"` приймає ці повідомлення лише тоді, коли вони явно згадують цього бота в кімнатах. DM усе одно дозволені.
-- `groups..allowBots` перевизначає налаштування на рівні облікового запису для однієї кімнати.
-- OpenClaw і далі ігнорує повідомлення від того самого Matrix user ID, щоб уникати циклів самовідповіді.
-- Matrix тут не надає вбудованого прапорця bot; OpenClaw трактує "створене ботом" як "надіслане іншим налаштованим обліковим записом Matrix на цьому OpenClaw gateway".
+- `allowBots: true` приймає повідомлення від інших налаштованих облікових записів Matrix-ботів у дозволених кімнатах і особистих повідомленнях.
+- `allowBots: "mentions"` приймає ці повідомлення лише тоді, коли вони явно згадують цього бота в кімнатах. Особисті повідомлення все одно дозволені.
+- `groups..allowBots` перевизначає налаштування рівня облікового запису для однієї кімнати.
+- OpenClaw і далі ігнорує повідомлення від того самого Matrix user ID, щоб уникати циклів самовідповідей.
+- Matrix тут не надає вбудованого прапорця бота; OpenClaw трактує «створене ботом» як «надіслане іншим налаштованим обліковим записом Matrix на цьому gateway OpenClaw».
-Використовуйте строгі allowlist кімнат і вимоги до згадок, коли вмикаєте трафік bot-to-bot у спільних кімнатах.
+Використовуйте суворі allowlist кімнат і вимоги до згадувань, коли вмикаєте трафік бот-до-бота в спільних кімнатах.
Увімкнення шифрування:
@@ -420,19 +421,19 @@ openclaw matrix verify status
openclaw matrix verify status --verbose
```
-Включення збереженого recovery key у машиночитаний вивід:
+Додати збережений recovery key до машинозчитуваного виводу:
```bash
openclaw matrix verify status --include-recovery-key --json
```
-Ініціалізація cross-signing і стану верифікації:
+Ініціалізувати cross-signing і стан верифікації:
```bash
openclaw matrix verify bootstrap
```
-Підтримка кількох облікових записів: використовуйте `channels.matrix.accounts` з обліковими даними для кожного облікового запису та необов’язковим `name`. Див. [Configuration reference](/uk/gateway/configuration-reference#multi-account-all-channels) для спільного шаблону.
+Підтримка кількох облікових записів: використовуйте `channels.matrix.accounts` з обліковими даними для кожного облікового запису та необов’язковим `name`. Див. [Довідник із конфігурації](/uk/gateway/configuration-reference#multi-account-all-channels) для спільного шаблону.
Докладна діагностика bootstrap:
@@ -440,13 +441,13 @@ openclaw matrix verify bootstrap
openclaw matrix verify bootstrap --verbose
```
-Примусове скидання ідентичності cross-signing перед bootstrap:
+Примусово скинути identity cross-signing перед bootstrap:
```bash
openclaw matrix verify bootstrap --force-reset-cross-signing
```
-Верифікація цього пристрою за допомогою recovery key:
+Підтвердити цей пристрій за допомогою recovery key:
```bash
openclaw matrix verify device ""
@@ -458,7 +459,7 @@ openclaw matrix verify device ""
openclaw matrix verify device "" --verbose
```
-Перевірка стану резервного копіювання ключів кімнат:
+Перевірити стан резервного копіювання ключів кімнат:
```bash
openclaw matrix verify backup status
@@ -470,7 +471,7 @@ openclaw matrix verify backup status
openclaw matrix verify backup status --verbose
```
-Відновлення ключів кімнат із серверної резервної копії:
+Відновити ключі кімнат із резервної копії на сервері:
```bash
openclaw matrix verify backup restore
@@ -482,20 +483,20 @@ openclaw matrix verify backup restore
openclaw matrix verify backup restore --verbose
```
-Видалення поточної серверної резервної копії та створення нової базової резервної копії. Якщо збережений
-ключ резервної копії не вдається коректно завантажити, це скидання також може повторно створити secret storage, щоб
-майбутні холодні запуски могли завантажувати новий ключ резервної копії:
+Видалити поточну серверну резервну копію й створити нову базову резервну копію. Якщо збережений
+ключ резервного копіювання не вдається коректно завантажити, цей скидання також може відтворити secret storage, щоб
+майбутні холодні запуски могли завантажувати новий ключ резервного копіювання:
```bash
openclaw matrix verify backup reset --yes
```
-Усі команди `verify` за замовчуванням лаконічні (включно з тихим внутрішнім логуванням SDK) і показують детальну діагностику лише з `--verbose`.
-Для повного машиночитаного виводу під час скриптування використовуйте `--json`.
+Усі команди `verify` за замовчуванням є стислими (включно з тихим внутрішнім логуванням SDK) і показують детальну діагностику лише з `--verbose`.
+Використовуйте `--json` для повного машинозчитуваного виводу в сценаріях автоматизації.
У конфігураціях із кількома обліковими записами команди Matrix CLI використовують неявний обліковий запис Matrix за замовчуванням, якщо ви не передасте `--account `.
Якщо ви налаштували кілька іменованих облікових записів, спочатку задайте `channels.matrix.defaultAccount`, інакше такі неявні операції CLI зупинятимуться й проситимуть вас явно вибрати обліковий запис.
-Використовуйте `--account`, коли хочете, щоб операції верифікації або з пристроями явно були спрямовані на конкретний іменований обліковий запис:
+Використовуйте `--account`, коли хочете, щоб операції верифікації або пристрою явно націлювалися на іменований обліковий запис:
```bash
openclaw matrix verify status --account assistant
@@ -503,19 +504,19 @@ openclaw matrix verify backup restore --account assistant
openclaw matrix devices list --account assistant
```
-Коли шифрування вимкнене або недоступне для іменованого облікового запису, попередження Matrix і помилки верифікації вказують на ключ конфігурації цього облікового запису, наприклад `channels.matrix.accounts.assistant.encryption`.
+Коли шифрування вимкнено або недоступне для іменованого облікового запису, попередження Matrix і помилки верифікації вказують на ключ конфігурації цього облікового запису, наприклад `channels.matrix.accounts.assistant.encryption`.
-### Що означає "verified"
+### Що означає «верифіковано»
-OpenClaw вважає цей пристрій Matrix верифікованим лише тоді, коли його верифікувала ваша власна ідентичність cross-signing.
+OpenClaw вважає цей пристрій Matrix верифікованим лише тоді, коли його верифікує ваша власна identity cross-signing.
На практиці `openclaw matrix verify status --verbose` показує три сигнали довіри:
- `Locally trusted`: цьому пристрою довіряє лише поточний клієнт
- `Cross-signing verified`: SDK повідомляє, що пристрій верифіковано через cross-signing
-- `Signed by owner`: пристрій підписано вашим власним self-signing key
+- `Signed by owner`: пристрій підписаний вашим власним self-signing key
`Verified by owner` стає `yes` лише тоді, коли присутня верифікація через cross-signing або підпис власника.
-Локальної довіри самої по собі недостатньо, щоб OpenClaw вважав пристрій повністю верифікованим.
+Самої локальної довіри недостатньо, щоб OpenClaw вважав пристрій повністю верифікованим.
### Що робить bootstrap
@@ -523,23 +524,23 @@ OpenClaw вважає цей пристрій Matrix верифікованим
Вона виконує все наведене нижче в такому порядку:
- ініціалізує secret storage, повторно використовуючи наявний recovery key, коли це можливо
-- ініціалізує cross-signing і завантажує відсутні публічні ключі cross-signing
+- ініціалізує cross-signing і вивантажує відсутні відкриті ключі cross-signing
- намагається позначити й підписати поточний пристрій через cross-signing
-- створює нову серверну резервну копію ключів кімнат, якщо її ще не існує
+- створює нову серверну резервну копію ключів кімнат, якщо вона ще не існує
-Якщо homeserver вимагає інтерактивну автентифікацію для завантаження ключів cross-signing, OpenClaw спочатку пробує завантаження без автентифікації, потім з `m.login.dummy`, а потім з `m.login.password`, якщо налаштовано `channels.matrix.password`.
+Якщо homeserver вимагає інтерактивну автентифікацію для вивантаження ключів cross-signing, OpenClaw спочатку пробує вивантаження без автентифікації, потім з `m.login.dummy`, а потім з `m.login.password`, коли налаштовано `channels.matrix.password`.
-Використовуйте `--force-reset-cross-signing` лише тоді, коли ви навмисно хочете відкинути поточну ідентичність cross-signing і створити нову.
+Використовуйте `--force-reset-cross-signing` лише тоді, коли ви свідомо хочете відкинути поточну identity cross-signing і створити нову.
-Якщо ви навмисно хочете відкинути поточну резервну копію ключів кімнат і почати нову
-базову резервну копію для майбутніх повідомлень, використовуйте `openclaw matrix verify backup reset --yes`.
-Робіть це лише тоді, коли погоджуєтеся, що стару зашифровану історію, яку неможливо відновити,
-буде й надалі недоступно, і що OpenClaw може повторно створити secret storage, якщо поточний секрет
-резервної копії не вдається безпечно завантажити.
+Якщо ви свідомо хочете відкинути поточну резервну копію ключів кімнат і почати нову
+базову лінію резервного копіювання для майбутніх повідомлень, використовуйте `openclaw matrix verify backup reset --yes`.
+Робіть це лише тоді, коли погоджуєтеся, що невідновлювана стара зашифрована історія
+залишиться недоступною і що OpenClaw може відтворити secret storage, якщо поточний секрет резервного
+копіювання не вдається безпечно завантажити.
-### Нова базова резервна копія
+### Нова базова лінія резервного копіювання
-Якщо ви хочете зберегти роботу майбутніх зашифрованих повідомлень і погоджуєтеся втратити стару історію, яку неможливо відновити, виконайте ці команди по черзі:
+Якщо ви хочете зберегти працездатність майбутніх зашифрованих повідомлень і погоджуєтеся втратити невідновлювану стару історію, виконайте ці команди по черзі:
```bash
openclaw matrix verify backup reset --yes
@@ -547,60 +548,60 @@ openclaw matrix verify backup status --verbose
openclaw matrix verify status
```
-Додавайте `--account ` до кожної команди, якщо хочете явно націлити їх на іменований обліковий запис Matrix.
+Додавайте `--account ` до кожної команди, якщо хочете явно націлити її на іменований обліковий запис Matrix.
### Поведінка під час запуску
Коли `encryption: true`, Matrix за замовчуванням встановлює `startupVerification` у `"if-unverified"`.
-Під час запуску, якщо цей пристрій усе ще не верифікований, Matrix запросить self-verification в іншому Matrix client,
-пропустить дублікати запитів, якщо один уже очікує, і застосує локальний cooldown перед повторною спробою після перезапусків.
-За замовчуванням спроби, що завершилися помилкою, повторюються швидше, ніж успішне створення запиту.
+Під час запуску, якщо цей пристрій усе ще не верифікований, Matrix запитає самоверифікацію в іншому клієнті Matrix,
+пропустить дублікати запитів, якщо один уже очікує на виконання, і застосує локальний cooldown перед повторною спробою після перезапусків.
+Невдалі спроби запиту за замовчуванням повторюються раніше, ніж успішне створення запиту.
Установіть `startupVerification: "off"`, щоб вимкнути автоматичні запити під час запуску, або налаштуйте `startupVerificationCooldownHours`,
-якщо хочете коротше або довше вікно повторної спроби.
+якщо хочете коротше чи довше вікно повторної спроби.
-Під час запуску також автоматично виконується консервативний bootstrap криптографії.
-Цей прохід спочатку намагається повторно використати поточні secret storage та ідентичність cross-signing і не скидає cross-signing, якщо ви не запускаєте явний сценарій відновлення bootstrap.
+Під час запуску також автоматично виконується консервативний прохід crypto bootstrap.
+Цей прохід спочатку намагається повторно використати поточні secret storage та identity cross-signing і уникає скидання cross-signing, якщо ви не запускаєте явний сценарій відновлення bootstrap.
Якщо під час запуску виявлено зламаний стан bootstrap і налаштовано `channels.matrix.password`, OpenClaw може спробувати суворіший шлях відновлення.
-Якщо поточний пристрій уже підписаний власником, OpenClaw зберігає цю ідентичність замість автоматичного скидання.
+Якщо поточний пристрій уже підписаний власником, OpenClaw зберігає цю identity замість автоматичного скидання.
Оновлення з попереднього публічного плагіна Matrix:
-- OpenClaw автоматично повторно використовує той самий обліковий запис Matrix, токен доступу та ідентичність пристрою, коли це можливо.
-- Перш ніж запускати будь-які практичні зміни міграції Matrix, OpenClaw створює або повторно використовує snapshot відновлення в `~/Backups/openclaw-migrations/`.
-- Якщо ви використовуєте кілька облікових записів Matrix, перед оновленням зі старого макета flat-store задайте `channels.matrix.defaultAccount`, щоб OpenClaw знав, який обліковий запис має отримати цей спільний legacy state.
-- Якщо попередній плагін зберігав локально ключ розшифрування резервної копії ключів кімнат Matrix, startup або `openclaw doctor --fix` автоматично імпортують його в новий сценарій recovery-key.
-- Якщо токен доступу Matrix змінився після підготовки міграції, startup тепер сканує сусідні корені сховища з token-hash на наявність незавершеного legacy restore state, перш ніж відмовитися від автоматичного відновлення резервної копії.
-- Якщо токен доступу Matrix змінюється пізніше для того самого облікового запису, homeserver і користувача, OpenClaw тепер надає перевагу повторному використанню найбільш повного наявного кореня сховища з token-hash замість запуску з порожнього каталогу стану Matrix.
-- Під час наступного запуску gateway збережені резервні ключі кімнат автоматично відновлюються в новому crypto store.
-- Якщо старий плагін мав лише локальні ключі кімнат, які ніколи не потрапляли в резервну копію, OpenClaw чітко попередить про це. Ці ключі не можна автоматично експортувати з попереднього rust crypto store, тому частина старої зашифрованої історії може залишатися недоступною, доки її не буде відновлено вручну.
-- Див. [Matrix migration](/uk/install/migrating-matrix) для повного сценарію оновлення, обмежень, команд відновлення та типових повідомлень міграції.
+- OpenClaw автоматично повторно використовує той самий обліковий запис Matrix, access token і identity пристрою, коли це можливо.
+- Перш ніж буде виконано будь-які придатні до дії зміни міграції Matrix, OpenClaw створює або повторно використовує recovery snapshot у `~/Backups/openclaw-migrations/`.
+- Якщо ви використовуєте кілька облікових записів Matrix, установіть `channels.matrix.defaultAccount` перед оновленням зі старого плоского сховища, щоб OpenClaw знав, який обліковий запис має отримати цей спільний застарілий стан.
+- Якщо попередній плагін зберігав локально ключ розшифрування резервної копії ключів кімнат Matrix, startup або `openclaw doctor --fix` автоматично імпортує його в новий сценарій recovery key.
+- Якщо access token Matrix змінився після підготовки міграції, startup тепер сканує сусідні корені сховища хешів токенів на наявність очікуваного застарілого стану відновлення, перш ніж відмовитися від автоматичного відновлення резервної копії.
+- Якщо access token Matrix зміниться пізніше для того самого облікового запису, homeserver і користувача, OpenClaw тепер надає перевагу повторному використанню найповнішого наявного кореня сховища хешів токенів замість початку з порожнього каталогу стану Matrix.
+- Під час наступного запуску gateway резервно скопійовані ключі кімнат буде автоматично відновлено до нового crypto store.
+- Якщо старий плагін мав лише локальні ключі кімнат, які ніколи не резервувалися, OpenClaw чітко попередить про це. Ці ключі не можна автоматично експортувати з попереднього rust crypto store, тому частина старої зашифрованої історії може залишатися недоступною, доки її не буде відновлено вручну.
+- Див. [Міграція Matrix](/uk/install/migrating-matrix) для повного сценарію оновлення, обмежень, команд відновлення та поширених повідомлень міграції.
-Зашифрований runtime state організовано в коренях на основі token-hash для кожного облікового запису й користувача в
+Зашифрований стан runtime організовано в коренях для кожного облікового запису, користувача й хешу токена в
`~/.openclaw/matrix/accounts//__//`.
Цей каталог містить sync store (`bot-storage.json`), crypto store (`crypto/`),
файл recovery key (`recovery-key.json`), snapshot IndexedDB (`crypto-idb-snapshot.json`),
прив’язки тредів (`thread-bindings.json`) і стан startup verification (`startup-verification.json`),
коли ці можливості використовуються.
-Коли токен змінюється, але ідентичність облікового запису лишається тією самою, OpenClaw повторно використовує найкращий наявний
-корінь для цього кортежу облікового запису/homeserver/користувача, щоб попередній стан sync, crypto state, прив’язки тредів
-і startup verification state залишалися видимими.
+Коли токен змінюється, але identity облікового запису залишається тією самою, OpenClaw повторно використовує найкращий наявний
+корінь для цього кортежу account/homeserver/user, щоб попередній sync state, crypto state, прив’язки тредів
+і стан startup verification залишалися видимими.
### Модель Node crypto store
-Matrix E2EE у цьому плагіні використовує офіційний шлях Rust crypto з `matrix-js-sdk` у Node.
-Цей шлях очікує persistence на основі IndexedDB, якщо ви хочете, щоб crypto state переживав перезапуски.
+Matrix E2EE у цьому плагіні використовує офіційний шлях Rust crypto `matrix-js-sdk` у Node.
+Цей шлях очікує persistence на основі IndexedDB, якщо ви хочете, щоб crypto state зберігався між перезапусками.
-Наразі OpenClaw забезпечує це в Node таким чином:
+Зараз OpenClaw надає це в Node таким чином:
-- використовує `fake-indexeddb` як shim API IndexedDB, якого очікує SDK
-- відновлює вміст Rust crypto IndexedDB з `crypto-idb-snapshot.json` перед `initRustCrypto`
-- зберігає оновлений вміст IndexedDB назад у `crypto-idb-snapshot.json` після init і під час runtime
-- серіалізує відновлення та збереження snapshot відносно `crypto-idb-snapshot.json` за допомогою advisory file lock, щоб persistence runtime gateway і обслуговування CLI не змагалися за один і той самий файл snapshot
+- використовує `fake-indexeddb` як shim API IndexedDB, очікуваний SDK
+- відновлює вміст IndexedDB Rust crypto з `crypto-idb-snapshot.json` перед `initRustCrypto`
+- зберігає оновлений вміст IndexedDB назад у `crypto-idb-snapshot.json` після ініціалізації та під час runtime
+- серіалізує відновлення та збереження snapshot відносно `crypto-idb-snapshot.json` за допомогою advisory file lock, щоб persistence runtime gateway і обслуговування CLI не змагалися за той самий файл snapshot
-Це plumbing сумісності/сховища, а не кастомна криптографічна реалізація.
-Файл snapshot — це чутливий runtime state, і він зберігається з обмеженими правами доступу до файлів.
-У межах моделі безпеки OpenClaw gateway host і локальний каталог стану OpenClaw вже входять до межі довіри оператора, тож це насамперед питання операційної стійкості, а не окрема віддалена межа довіри.
+Це plumbing для сумісності/зберігання, а не користувацька crypto-реалізація.
+Файл snapshot є чутливим станом runtime і зберігається з обмежувальними правами доступу до файлу.
+У межах моделі безпеки OpenClaw host gateway і локальний каталог стану OpenClaw уже перебувають у межах довіреного оператора, тому це насамперед операційне питання довговічності, а не окрема межа віддаленої довіри.
Заплановане покращення:
@@ -608,46 +609,46 @@ Matrix E2EE у цьому плагіні використовує офіційн
## Керування профілем
-Оновіть self-profile Matrix для вибраного облікового запису за допомогою:
+Оновіть власний профіль Matrix для вибраного облікового запису так:
```bash
openclaw matrix profile set --name "OpenClaw Assistant"
openclaw matrix profile set --avatar-url https://cdn.example.org/avatar.png
```
-Додайте `--account `, якщо хочете явно націлити команду на іменований обліковий запис Matrix.
+Додавайте `--account `, якщо хочете явно націлити команду на іменований обліковий запис Matrix.
-Matrix безпосередньо приймає URL аватарів `mxc://`. Якщо ви передаєте URL аватара `http://` або `https://`, OpenClaw спочатку завантажує його в Matrix, а потім зберігає визначений URL `mxc://` назад у `channels.matrix.avatarUrl` (або у перевизначення вибраного облікового запису).
+Matrix напряму приймає URL аватарів `mxc://`. Коли ви передаєте URL аватара `http://` або `https://`, OpenClaw спочатку вивантажує його в Matrix і зберігає отриманий URL `mxc://` назад у `channels.matrix.avatarUrl` (або перевизначення вибраного облікового запису).
## Автоматичні сповіщення про верифікацію
-Тепер Matrix публікує повідомлення про життєвий цикл верифікації безпосередньо в строгій кімнаті DM для верифікації як повідомлення `m.notice`.
-Це включає:
+Тепер Matrix публікує повідомлення про життєвий цикл верифікації безпосередньо в сувору кімнату верифікації особистих повідомлень як повідомлення `m.notice`.
+Сюди входять:
-- повідомлення про запит на верифікацію
-- повідомлення про готовність до верифікації (з явною підказкою "Verify by emoji")
+- повідомлення про запит верифікації
+- повідомлення про готовність до верифікації (з явною підказкою «Verify by emoji»)
- повідомлення про початок і завершення верифікації
-- деталі SAS (emoji і десяткові значення), коли вони доступні
+- подробиці SAS (emoji і десяткові значення), коли вони доступні
-Вхідні запити на верифікацію від іншого Matrix client відстежуються і автоматично приймаються OpenClaw.
-Для сценаріїв self-verification OpenClaw також автоматично запускає SAS, коли стає доступною верифікація через emoji, і підтверджує свій бік.
-Для запитів на верифікацію від іншого Matrix user/device OpenClaw автоматично приймає запит, а потім чекає, поки SAS продовжиться у звичайному режимі.
-Вам усе одно потрібно порівняти emoji або десятковий SAS у вашому Matrix client і підтвердити там "They match", щоб завершити верифікацію.
+Вхідні запити на верифікацію від іншого клієнта Matrix відстежуються й автоматично приймаються OpenClaw.
+Для сценаріїв самоверифікації OpenClaw також автоматично запускає SAS-процес, коли стає доступна верифікація через emoji, і підтверджує свій бік.
+Для запитів на верифікацію від іншого користувача/пристрою Matrix OpenClaw автоматично приймає запит, а потім чекає, поки SAS-процес продовжиться звичайним чином.
+Щоб завершити верифікацію, вам усе одно потрібно порівняти emoji або десятковий SAS у своєму клієнті Matrix і підтвердити там «They match».
-OpenClaw не приймає сліпо дублікати власноруч ініційованих сценаріїв. Під час startup не створюється новий запит, якщо self-verification request уже очікує.
+OpenClaw не приймає автоматично бездумно дубльовані процеси, ініційовані самим собою. Startup пропускає створення нового запиту, якщо запит на самоверифікацію вже очікує на виконання.
-Повідомлення протоколу/системи верифікації не передаються в конвеєр чату агента, тож вони не призводять до `NO_REPLY`.
+Протокольні/системні повідомлення верифікації не пересилаються до конвеєра чату агента, тому вони не створюють `NO_REPLY`.
### Гігієна пристроїв
-Старі пристрої Matrix, якими керував OpenClaw, можуть накопичуватися в обліковому записі й ускладнювати розуміння довіри в зашифрованих кімнатах.
-Перелічіть їх за допомогою:
+Старі пристрої Matrix, керовані OpenClaw, можуть накопичуватися в обліковому записі й ускладнювати розуміння довіри в зашифрованих кімнатах.
+Переглянути їх можна так:
```bash
openclaw matrix devices list
```
-Видаліть застарілі пристрої Matrix, якими керував OpenClaw, за допомогою:
+Видалити застарілі пристрої Matrix, керовані OpenClaw, можна так:
```bash
openclaw matrix devices prune-stale
@@ -655,53 +656,53 @@ openclaw matrix devices prune-stale
### Відновлення Direct Room
-Якщо стан direct-message виходить із синхронізації, OpenClaw може отримати застарілі мапінги `m.direct`, які вказують на старі окремі кімнати замість живого DM. Перевірте поточне зіставлення для співрозмовника за допомогою:
+Якщо стан direct message виходить із синхронізації, OpenClaw може отримати застарілі зіставлення `m.direct`, які вказують на старі solo rooms замість живого DM. Перевірити поточне зіставлення для співрозмовника можна так:
```bash
openclaw matrix direct inspect --user-id @alice:example.org
```
-Виправте його за допомогою:
+Відновити його можна так:
```bash
openclaw matrix direct repair --user-id @alice:example.org
```
-Відновлення зберігає логіку, специфічну для Matrix, усередині плагіна:
+Відновлення зберігає Matrix-специфічну логіку всередині плагіна:
-- воно надає перевагу суворому DM 1:1, який уже відображено в `m.direct`
-- інакше повертається до будь-якого поточно приєднаного суворого DM 1:1 із цим користувачем
-- якщо здорового DM не існує, створює нову direct room і переписує `m.direct`, щоб вона вказувала на неї
+- воно надає перевагу суворому DM 1:1, який уже зіставлено в `m.direct`
+- інакше воно переходить до будь-якого поточного приєднаного суворого DM 1:1 з цим користувачем
+- якщо справного DM не існує, воно створює нову direct room і переписує `m.direct`, щоб вона вказувала на неї
-Сценарій відновлення не видаляє старі кімнати автоматично. Він лише обирає здоровий DM і оновлює мапінг, щоб нові надсилання Matrix, сповіщення про верифікацію та інші direct-message сценарії знову спрямовувалися до правильної кімнати.
+Сценарій відновлення не видаляє старі кімнати автоматично. Він лише вибирає справний DM і оновлює зіставлення, щоб нові надсилання Matrix, повідомлення про верифікацію та інші direct-message сценарії знову були націлені на правильну кімнату.
## Треди
-Matrix підтримує нативні треди Matrix як для автоматичних відповідей, так і для надсилань через message-tool.
+Matrix підтримує вбудовані треди Matrix як для автоматичних відповідей, так і для надсилань через message tool.
-- `dm.sessionScope: "per-user"` (за замовчуванням) зберігає маршрутизацію Matrix DM із прив’язкою до відправника, тож кілька кімнат DM можуть ділити одну сесію, якщо вони визначаються як той самий співрозмовник.
-- `dm.sessionScope: "per-room"` ізолює кожну кімнату Matrix DM у власний ключ сесії, водночас і далі використовуючи звичайну автентифікацію DM та перевірки allowlist.
-- Явні прив’язки розмов Matrix усе одно мають пріоритет над `dm.sessionScope`, тому прив’язані кімнати й треди зберігають свою вибрану цільову сесію.
-- `threadReplies: "off"` залишає відповіді на верхньому рівні й зберігає вхідні threaded messages у батьківській сесії.
+- `dm.sessionScope: "per-user"` (за замовчуванням) зберігає маршрутизацію DM Matrix у межах відправника, тому кілька DM-кімнат можуть спільно використовувати одну сесію, якщо вони розв’язуються до того самого співрозмовника.
+- `dm.sessionScope: "per-room"` ізолює кожну DM-кімнату Matrix у власний ключ сесії, водночас зберігаючи звичайні перевірки автентифікації та allowlist для DM.
+- Явні прив’язки розмов Matrix усе одно мають вищий пріоритет над `dm.sessionScope`, тому прив’язані кімнати й треди зберігають вибрану цільову сесію.
+- `threadReplies: "off"` зберігає відповіді на верхньому рівні та залишає вхідні повідомлення з тредів у батьківській сесії.
- `threadReplies: "inbound"` відповідає всередині треду лише тоді, коли вхідне повідомлення вже було в цьому треді.
-- `threadReplies: "always"` зберігає відповіді в кімнаті в треді, що починається від повідомлення-тригера, і маршрутизує цю розмову через відповідну сесію з прив’язкою до треду від першого повідомлення-тригера.
+- `threadReplies: "always"` зберігає відповіді в кімнаті в треді, прив’язаному до повідомлення-тригера, і маршрутизує цю розмову через відповідну сесію з областю треду від першого повідомлення-тригера.
- `dm.threadReplies` перевизначає налаштування верхнього рівня лише для DM. Наприклад, ви можете ізолювати треди в кімнатах, залишивши DM плоскими.
-- Вхідні threaded messages включають кореневе повідомлення треду як додатковий контекст для агента.
-- Надсилання через message-tool тепер автоматично успадковують поточний тред Matrix, коли ціллю є та сама кімната або той самий DM-користувач, якщо не задано явний `threadId`.
-- Повторне використання цілі DM-користувача в тій самій сесії спрацьовує лише тоді, коли метадані поточної сесії підтверджують того самого DM-співрозмовника в тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації з областю користувача.
-- Коли OpenClaw бачить, що Matrix DM room конфліктує з іншою DM room у межах тієї самої спільної Matrix DM session, він публікує одноразове `m.notice` у цій кімнаті з escape hatch `/focus`, якщо прив’язки тредів увімкнено, і з підказкою `dm.sessionScope`.
-- Runtime-прив’язки тредів підтримуються для Matrix. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язаний до треду `/acp spawn` тепер працюють у кімнатах і DM Matrix.
-- `/focus` у Matrix room/DM верхнього рівня створює новий тред Matrix і прив’язує його до цільової сесії, коли `threadBindings.spawnSubagentSessions=true`.
-- Запуск `/focus` або `/acp spawn --thread here` всередині наявного треду Matrix натомість прив’язує цей поточний тред.
+- Вхідні повідомлення з тредів включають кореневе повідомлення треду як додатковий контекст агента.
+- Надсилання через message tool тепер автоматично успадковують поточний тред Matrix, коли ціль — та сама кімната або той самий користувач DM, якщо явно не вказано `threadId`.
+- Повторне використання DM-цілі того самого користувача в межах тієї самої сесії спрацьовує лише тоді, коли поточні метадані сесії підтверджують того самого співрозмовника DM в тому самому обліковому записі Matrix; інакше OpenClaw повертається до звичайної маршрутизації в межах користувача.
+- Коли OpenClaw бачить, що DM-кімната Matrix конфліктує з іншою DM-кімнатою в тій самій спільній сесії DM Matrix, він публікує одноразове `m.notice` у цій кімнаті з аварійним шляхом `/focus`, якщо прив’язки тредів увімкнено, і з підказкою `dm.sessionScope`.
+- Прив’язки тредів у runtime підтримуються для Matrix. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язаний до треду `/acp spawn` тепер працюють у кімнатах і DM Matrix.
+- Верхньорівневий `/focus` у кімнаті/DM Matrix створює новий тред Matrix і прив’язує його до цільової сесії, коли `threadBindings.spawnSubagentSessions=true`.
+- Виконання `/focus` або `/acp spawn --thread here` усередині наявного треду Matrix натомість прив’язує цей поточний тред.
-## Прив’язки розмов ACP
+## ACP conversation bindings
Кімнати Matrix, DM і наявні треди Matrix можна перетворити на довговічні робочі простори ACP без зміни поверхні чату.
Швидкий сценарій для оператора:
-- Виконайте `/acp spawn codex --bind here` всередині Matrix DM, кімнати або наявного треду, яким хочете продовжувати користуватися.
-- У Matrix DM або кімнаті верхнього рівня поточний DM/кімната залишається поверхнею чату, а майбутні повідомлення маршрутизуються до створеної сесії ACP.
+- Виконайте `/acp spawn codex --bind here` у Matrix DM, кімнаті або наявному треді, який хочете й далі використовувати.
+- У верхньорівневому Matrix DM або кімнаті поточний DM/кімната залишається поверхнею чату, а майбутні повідомлення маршрутизуються до створеної сесії ACP.
- Усередині наявного треду Matrix `--bind here` прив’язує цей поточний тред на місці.
- `/new` і `/reset` скидають ту саму прив’язану сесію ACP на місці.
- `/acp close` закриває сесію ACP і видаляє прив’язку.
@@ -709,11 +710,11 @@ Matrix підтримує нативні треди Matrix як для авто
Примітки:
- `--bind here` не створює дочірній тред Matrix.
-- `threadBindings.spawnAcpSessions` потрібен лише для `/acp spawn --thread auto|here`, де OpenClaw має створити або прив’язати дочірній тред Matrix.
+- `threadBindings.spawnAcpSessions` потрібен лише для `/acp spawn --thread auto|here`, коли OpenClaw потрібно створити або прив’язати дочірній тред Matrix.
### Конфігурація прив’язки тредів
-Matrix успадковує глобальні значення за замовчуванням із `session.threadBindings`, а також підтримує перевизначення для окремого каналу:
+Matrix успадковує глобальні значення за замовчуванням із `session.threadBindings`, а також підтримує перевизначення для каналу:
- `threadBindings.enabled`
- `threadBindings.idleHours`
@@ -721,27 +722,27 @@ Matrix успадковує глобальні значення за замов
- `threadBindings.spawnSubagentSessions`
- `threadBindings.spawnAcpSessions`
-Прапорці spawn для thread-bound у Matrix є opt-in:
+Прапорці створення для тредів Matrix вмикаються лише за бажанням:
-- Установіть `threadBindings.spawnSubagentSessions: true`, щоб дозволити `/focus` верхнього рівня створювати та прив’язувати нові треди Matrix.
+- Установіть `threadBindings.spawnSubagentSessions: true`, щоб дозволити верхньорівневому `/focus` створювати й прив’язувати нові треди Matrix.
- Установіть `threadBindings.spawnAcpSessions: true`, щоб дозволити `/acp spawn --thread auto|here` прив’язувати сесії ACP до тредів Matrix.
## Реакції
-Matrix підтримує вихідні дії з реакціями, вхідні сповіщення про реакції та вхідні ack reactions.
+Matrix підтримує вихідні дії з реакціями, вхідні сповіщення про реакції та вхідні реакції-підтвердження.
-- Інструментарій вихідних реакцій контролюється через `channels["matrix"].actions.reactions`.
+- Інструменти для вихідних реакцій контролюються через `channels["matrix"].actions.reactions`.
- `react` додає реакцію до певної події Matrix.
-- `reactions` перелічує поточне зведення реакцій для певної події Matrix.
+- `reactions` показує поточний підсумок реакцій для певної події Matrix.
- `emoji=""` видаляє власні реакції облікового запису бота на цій події.
-- `remove: true` видаляє з облікового запису бота лише реакцію з указаним emoji.
+- `remove: true` видаляє лише вказану emoji-реакцію з облікового запису бота.
-Область ack reactions визначається в такому порядку:
+Область дії реакцій-підтверджень визначається в стандартному для OpenClaw порядку:
- `channels["matrix"].accounts..ackReaction`
- `channels["matrix"].ackReaction`
- `messages.ackReaction`
-- fallback до emoji ідентичності агента
+- резервний emoji ідентичності агента
Область дії ack reaction визначається в такому порядку:
@@ -757,31 +758,31 @@ Matrix підтримує вихідні дії з реакціями, вхід
Поточна поведінка:
-- `reactionNotifications: "own"` передає додані події `m.reaction`, коли вони спрямовані на повідомлення Matrix, створені ботом.
+- `reactionNotifications: "own"` пересилає додані події `m.reaction`, коли вони націлені на повідомлення Matrix, створені ботом.
- `reactionNotifications: "off"` вимикає системні події реакцій.
-- Видалення реакцій досі не синтезуються в системні події, тому що Matrix представляє їх як redaction-и, а не як окремі видалення `m.reaction`.
+- Видалення реакцій усе ще не синтезується в системні події, тому що Matrix подає їх як редагування, а не як окремі видалення `m.reaction`.
## Контекст історії
-- `channels.matrix.historyLimit` визначає, скільки останніх повідомлень кімнати включається як `InboundHistory`, коли повідомлення кімнати Matrix активує агента.
-- Використовується fallback до `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути.
-- Історія кімнати Matrix — лише для кімнати. DM і далі використовують звичайну історію сесії.
-- Історія кімнати Matrix є pending-only: OpenClaw буферизує повідомлення кімнати, які ще не викликали відповідь, а потім робить snapshot цього вікна, коли надходить згадка або інший тригер.
-- Поточне повідомлення-тригер не включається в `InboundHistory`; воно залишається в основному вхідному тілі для цього ходу.
-- Повторні спроби для тієї самої події Matrix повторно використовують оригінальний snapshot історії замість зміщення вперед до новіших повідомлень кімнати.
+- `channels.matrix.historyLimit` керує тим, скільки останніх повідомлень кімнати включається як `InboundHistory`, коли повідомлення Matrix у кімнаті запускає агента.
+- Якщо значення не задано, використовується `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути.
+- Історія кімнат Matrix обмежується самою кімнатою. DM і далі використовують звичайну історію сесії.
+- Історія кімнати Matrix працює в режимі pending-only: OpenClaw буферизує повідомлення кімнати, які ще не викликали відповіді, а потім робить snapshot цього вікна, коли надходить згадка чи інший тригер.
+- Поточне повідомлення-тригер не включається до `InboundHistory`; воно залишається в основному тілі вхідного повідомлення для цього ходу.
+- Повторні спроби для тієї самої події Matrix повторно використовують початковий snapshot історії замість зміщення вперед до новіших повідомлень кімнати.
## Видимість контексту
-Matrix підтримує спільний контроль `contextVisibility` для додаткового контексту кімнати, як-от отриманий текст відповіді, корені тредів і незавершена історія.
+Matrix підтримує спільний контроль `contextVisibility` для додаткового контексту кімнати, як-от отриманий текст відповіді, корені тредів і очікувана історія.
-- `contextVisibility: "all"` — значення за замовчуванням. Додатковий контекст зберігається як отримано.
+- `contextVisibility: "all"` — значення за замовчуванням. Додатковий контекст зберігається в отриманому вигляді.
- `contextVisibility: "allowlist"` фільтрує додатковий контекст до відправників, дозволених активними перевірками allowlist кімнати/користувача.
-- `contextVisibility: "allowlist_quote"` працює як `allowlist`, але все одно зберігає одну явну цитовану відповідь.
+- `contextVisibility: "allowlist_quote"` працює як `allowlist`, але все одно зберігає одну явну процитовану відповідь.
-Це налаштування впливає на видимість додаткового контексту, а не на те, чи може саме вхідне повідомлення викликати відповідь.
-Авторизація тригера, як і раніше, походить із `groupPolicy`, `groups`, `groupAllowFrom` і налаштувань політики DM.
+Це налаштування впливає на видимість додаткового контексту, а не на те, чи може саме вхідне повідомлення запустити відповідь.
+Авторизація тригера, як і раніше, визначається через `groupPolicy`, `groups`, `groupAllowFrom` і налаштування політики DM.
-## Приклад політики для DM і кімнат
+## Приклад політики DM і кімнат
```json5
{
@@ -804,7 +805,7 @@ Matrix підтримує спільний контроль `contextVisibility`
}
```
-Див. [Groups](/uk/channels/groups) щодо керування згадками й поведінки allowlist.
+Див. [Групи](/uk/channels/groups) щодо обмеження за згадуваннями та поведінки allowlist.
Приклад pairing для Matrix DM:
@@ -813,51 +814,51 @@ openclaw pairing list matrix
openclaw pairing approve matrix
```
-Якщо непідтверджений користувач Matrix продовжує писати вам до схвалення, OpenClaw повторно використовує той самий pending pairing code і може знову надіслати нагадування після короткого cooldown замість створення нового коду.
+Якщо непідтверджений користувач Matrix продовжує писати вам до схвалення, OpenClaw повторно використовує той самий очікуваний код pairing і може знову надіслати відповідь-нагадування після короткого cooldown замість створення нового коду.
-Див. [Pairing](/uk/channels/pairing) для спільного сценарію pairing у DM і структури сховища.
+Див. [Pairing](/uk/channels/pairing) щодо спільного сценарію pairing для DM і структури зберігання.
-## Погодження exec
+## Схвалення exec
-Matrix може діяти як клієнт погодження exec для облікового запису Matrix.
+Matrix може виступати клієнтом схвалення exec для облікового запису Matrix.
- `channels.matrix.execApprovals.enabled`
-- `channels.matrix.execApprovals.approvers` (необов’язково; fallback до `channels.matrix.dm.allowFrom`)
+- `channels.matrix.execApprovals.approvers` (необов’язково; якщо не задано, використовується `channels.matrix.dm.allowFrom`)
- `channels.matrix.execApprovals.target` (`dm` | `channel` | `both`, за замовчуванням: `dm`)
- `channels.matrix.execApprovals.agentFilter`
- `channels.matrix.execApprovals.sessionFilter`
-Approvers мають бути Matrix user ID, наприклад `@owner:example.org`. Matrix автоматично вмикає нативні exec approvals, коли `enabled` не задано або дорівнює `"auto"` і можна визначити принаймні одного approver, або з `execApprovals.approvers`, або з `channels.matrix.dm.allowFrom`. Установіть `enabled: false`, щоб явно вимкнути Matrix як нативний клієнт погодження. Інакше запити на погодження переходять до інших налаштованих маршрутів погодження або до fallback policy для exec approval.
+Схвалювачами мають бути Matrix user ID, наприклад `@owner:example.org`. Matrix автоматично вмикає вбудовані схвалення exec, коли `enabled` не задано або дорівнює `"auto"` і можна розв’язати принаймні одного схвалювача — або з `execApprovals.approvers`, або з `channels.matrix.dm.allowFrom`. Установіть `enabled: false`, щоб явно вимкнути Matrix як вбудований клієнт схвалення. Інакше запити на схвалення повертаються до інших налаштованих маршрутів схвалення або до резервної політики схвалення exec.
-Нативна маршрутизація Matrix наразі стосується лише exec:
+Сьогодні вбудована маршрутизація Matrix стосується лише exec:
-- `channels.matrix.execApprovals.*` керує нативною маршрутизацією DM/channel лише для exec approvals.
-- Погодження плагінів і далі використовують спільний `/approve` у тому ж чаті плюс будь-яке налаштоване пересилання `approvals.plugin`.
-- Matrix усе ще може повторно використовувати `channels.matrix.dm.allowFrom` для авторизації погоджень плагінів, коли може безпечно визначити approver-ів, але не надає окремого нативного шляху fanout DM/channel для погоджень плагінів.
+- `channels.matrix.execApprovals.*` керує вбудованою маршрутизацією DM/каналу лише для схвалень exec.
+- Схвалення плагінів усе ще використовують спільний `/approve` у тому самому чаті плюс будь-яке налаштоване перенаправлення `approvals.plugin`.
+- Matrix усе ще може повторно використовувати `channels.matrix.dm.allowFrom` для авторизації схвалення плагінів, коли може безпечно визначити схвалювачів, але не надає окремого вбудованого шляху fanout DM/каналу для схвалень плагінів.
Правила доставки:
-- `target: "dm"` надсилає запити на погодження в DM approver-ів
-- `target: "channel"` надсилає запит назад у вихідну кімнату Matrix або DM
-- `target: "both"` надсилає в DM approver-ів і у вихідну кімнату Matrix або DM
+- `target: "dm"` надсилає запити на схвалення в DM схвалювачів
+- `target: "channel"` надсилає запит назад у вихідну кімнату або DM Matrix
+- `target: "both"` надсилає в DM схвалювачів і у вихідну кімнату або DM Matrix
-Запити на погодження Matrix ініціалізують shortcut-реакції на основному повідомленні погодження:
+Підказки схвалення Matrix додають скорочення через реакції до основного повідомлення зі схваленням:
- `✅` = дозволити один раз
-- `❌` = відхилити
-- `♾️` = дозволити завжди, якщо таке рішення дозволене ефективною політикою exec
+- `❌` = заборонити
+- `♾️` = дозволити завжди, якщо таке рішення дозволено ефективною політикою exec
-Approver-и можуть реагувати на це повідомлення або використовувати fallback slash-команди: `/approve allow-once`, `/approve allow-always` або `/approve deny`.
+Схвалювачі можуть реагувати на це повідомлення або використовувати резервні slash-команди: `/approve allow-once`, `/approve allow-always` або `/approve deny`.
-Лише визначені approver-и можуть дозволяти або відхиляти. Доставка в канал включає текст команди, тому вмикайте `channel` або `both` лише в довірених кімнатах.
+Лише розв’язані схвалювачі можуть дозволяти або забороняти. Доставка в канал включає текст команди, тому вмикайте `channel` або `both` лише в довірених кімнатах.
-Запити на погодження Matrix повторно використовують спільний core approval planner. Нативна поверхня Matrix — це лише транспорт для exec approvals: маршрутизація кімнат/DM і поведінка надсилання/оновлення/видалення повідомлень.
+Підказки схвалення Matrix повторно використовують спільний базовий planner схвалень. Вбудована Matrix-специфічна поверхня — це лише transport для схвалень exec: маршрутизація кімнат/DM і поведінка send/update/delete повідомлень.
-Перевизначення для окремого облікового запису:
+Перевизначення для облікового запису:
- `channels.matrix.accounts..execApprovals`
-Пов’язана документація: [Exec approvals](/uk/tools/exec-approvals)
+Пов’язана документація: [Схвалення exec](/uk/tools/exec-approvals)
## Приклад із кількома обліковими записами
@@ -890,18 +891,18 @@ Approver-и можуть реагувати на це повідомлення
```
Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для іменованих облікових записів, якщо обліковий запис не перевизначає їх.
-Ви можете обмежити успадковані записи кімнат одним обліковим записом Matrix за допомогою `groups..account` (або legacy `rooms..account`).
+Ви можете обмежити успадкований запис кімнати одним обліковим записом Matrix через `groups..account` (або застарілий `rooms..account`).
Записи без `account` залишаються спільними для всіх облікових записів Matrix, а записи з `account: "default"` і далі працюють, коли обліковий запис за замовчуванням налаштовано безпосередньо на верхньому рівні `channels.matrix.*`.
-Часткові спільні значення автентифікації за замовчуванням самі по собі не створюють окремий неявний обліковий запис за замовчуванням. OpenClaw синтезує верхньорівневий обліковий запис `default` лише тоді, коли цей обліковий запис має актуальну автентифікацію (`homeserver` плюс `accessToken`, або `homeserver` плюс `userId` і `password`); іменовані облікові записи все одно можуть залишатися доступними через `homeserver` плюс `userId`, коли пізніше автентифікація задовольняється кешованими обліковими даними.
-Якщо Matrix уже має рівно один іменований обліковий запис або `defaultAccount` вказує на наявний ключ іменованого облікового запису, просування від single-account до multi-account під час відновлення/налаштування зберігає цей обліковий запис замість створення нового запису `accounts.default`. У цей просунутий обліковий запис переміщуються лише ключі Matrix auth/bootstrap; спільні ключі політики доставки залишаються на верхньому рівні.
-Установіть `defaultAccount`, якщо хочете, щоб OpenClaw віддавав перевагу одному іменованому обліковому запису Matrix для неявної маршрутизації, probing і операцій CLI.
-Якщо ви налаштували кілька іменованих облікових записів, задайте `defaultAccount` або передавайте `--account ` для команд CLI, які покладаються на неявний вибір облікового запису.
+Часткові спільні значення автентифікації за замовчуванням самі по собі не створюють окремого неявного облікового запису за замовчуванням. OpenClaw синтезує верхньорівневий обліковий запис `default` лише тоді, коли цей обліковий запис за замовчуванням має свіжу автентифікацію (`homeserver` плюс `accessToken`, або `homeserver` плюс `userId` і `password`); іменовані облікові записи все одно можуть залишатися доступними для виявлення через `homeserver` плюс `userId`, коли кешовані облікові дані пізніше задовольняють вимоги автентифікації.
+Якщо Matrix уже має рівно один іменований обліковий запис або `defaultAccount` вказує на наявний ключ іменованого облікового запису, підвищення налаштування/відновлення від одного облікового запису до кількох зберігає цей обліковий запис замість створення нового запису `accounts.default`. У цей підвищений обліковий запис переміщуються лише ключі автентифікації/bootstrap Matrix; спільні ключі політики доставки залишаються на верхньому рівні.
+Установіть `defaultAccount`, якщо хочете, щоб OpenClaw надавав перевагу одному іменованому обліковому запису Matrix для неявної маршрутизації, probing і операцій CLI.
+Якщо ви налаштовуєте кілька іменованих облікових записів, установіть `defaultAccount` або передавайте `--account ` для команд CLI, що покладаються на неявний вибір облікового запису.
Передавайте `--account ` до `openclaw matrix verify ...` і `openclaw matrix devices ...`, якщо хочете перевизначити цей неявний вибір для однієї команди.
-## Приватні/LAN homeserver-и
+## Приватні/LAN homeserver
-За замовчуванням OpenClaw блокує приватні/внутрішні Matrix homeserver-и для захисту від SSRF, якщо ви
-явно не дозволите це для кожного облікового запису окремо.
+За замовчуванням OpenClaw блокує приватні/внутрішні Matrix homeserver для захисту від SSRF, якщо ви
+явно не дозволите це для кожного облікового запису.
Якщо ваш homeserver працює на localhost, LAN/Tailscale IP або внутрішньому імені хоста, увімкніть
`allowPrivateNetwork` для цього облікового запису Matrix:
@@ -928,12 +929,12 @@ openclaw matrix account add \
--access-token syt_ops_xxx
```
-Ця opt-in опція дозволяє лише довірені приватні/внутрішні цілі. Публічні homeserver-и без шифрування, наприклад
-`http://matrix.example.org:8008`, і далі блокуються. За можливості віддавайте перевагу `https://`.
+Ця згода дозволяє лише довірені приватні/внутрішні цілі. Публічні незашифровані homeserver, такі як
+`http://matrix.example.org:8008`, залишаються заблокованими. За можливості надавайте перевагу `https://`.
## Проксіювання трафіку Matrix
-Якщо вашому розгортанню Matrix потрібен явний вихідний HTTP(S) proxy, задайте `channels.matrix.proxy`:
+Якщо для вашого розгортання Matrix потрібен явний вихідний HTTP(S)-проксі, задайте `channels.matrix.proxy`:
```json5
{
@@ -947,12 +948,12 @@ openclaw matrix account add \
}
```
-Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням через `channels.matrix.accounts..proxy`.
-OpenClaw використовує той самий параметр proxy для runtime-трафіку Matrix і перевірок стану облікового запису.
+Іменовані облікові записи можуть перевизначати значення верхнього рівня через `channels.matrix.accounts..proxy`.
+OpenClaw використовує те саме налаштування проксі для трафіку Matrix у runtime і для probing стану облікових записів.
-## Визначення цілей
+## Розв’язання цілей
-Matrix приймає такі форми цілей скрізь, де OpenClaw просить указати ціль кімнати або користувача:
+Matrix приймає такі форми цілей усюди, де OpenClaw просить вказати ціль кімнати або користувача:
- Користувачі: `@user:server`, `user:@user:server` або `matrix:user:@user:server`
- Кімнати: `!room:server`, `room:!room:server` або `matrix:room:!room:server`
@@ -960,73 +961,73 @@ Matrix приймає такі форми цілей скрізь, де OpenClaw
Живий пошук у каталозі використовує обліковий запис Matrix, у який виконано вхід:
-- Пошук користувачів виконує запити до каталогу користувачів Matrix на цьому homeserver.
-- Пошук кімнат безпосередньо приймає явні ID кімнат і псевдоніми, а потім переходить до пошуку серед назв приєднаних кімнат цього облікового запису.
-- Пошук за назвами приєднаних кімнат є best-effort. Якщо назву кімнати не вдається визначити як ID або псевдонім, вона ігнорується під час runtime-розв’язання allowlist.
+- Пошук користувачів звертається до каталогу користувачів Matrix на цьому homeserver.
+- Пошук кімнат напряму приймає явні ID кімнат і псевдоніми, а потім у разі потреби переходить до пошуку назв приєднаних кімнат для цього облікового запису.
+- Пошук за назвами приєднаних кімнат є best-effort. Якщо назву кімнати не можна розв’язати в ID або псевдонім, під час розв’язання allowlist у runtime вона ігнорується.
-## Довідник конфігурації
+## Довідник із конфігурації
- `enabled`: увімкнути або вимкнути канал.
- `name`: необов’язкова мітка для облікового запису.
- `defaultAccount`: бажаний ID облікового запису, коли налаштовано кілька облікових записів Matrix.
- `homeserver`: URL homeserver, наприклад `https://matrix.example.org`.
-- `allowPrivateNetwork`: дозволити цьому обліковому запису Matrix підключатися до приватних/внутрішніх homeserver-ів. Увімкніть це, коли homeserver визначається як `localhost`, LAN/Tailscale IP або внутрішній хост, наприклад `matrix-synapse`.
-- `proxy`: необов’язковий URL HTTP(S) proxy для трафіку Matrix. Іменовані облікові записи можуть перевизначати верхньорівневе значення за замовчуванням власним `proxy`.
+- `allowPrivateNetwork`: дозволити цьому обліковому запису Matrix підключатися до приватних/внутрішніх homeserver. Увімкніть це, коли homeserver розв’язується в `localhost`, LAN/Tailscale IP або внутрішній хост, наприклад `matrix-synapse`.
+- `proxy`: необов’язковий URL HTTP(S)-проксі для трафіку Matrix. Іменовані облікові записи можуть перевизначати значення верхнього рівня власним `proxy`.
- `userId`: повний Matrix user ID, наприклад `@bot:example.org`.
-- `accessToken`: токен доступу для автентифікації на основі токена. Для `channels.matrix.accessToken` і `channels.matrix.accounts..accessToken` підтримуються значення plaintext і SecretRef у провайдерах env/file/exec. Див. [Secrets Management](/uk/gateway/secrets).
-- `password`: пароль для входу на основі пароля. Підтримуються значення plaintext і SecretRef.
+- `accessToken`: токен доступу для автентифікації на основі токена. Для `channels.matrix.accessToken` і `channels.matrix.accounts..accessToken` підтримуються як відкриті значення, так і значення SecretRef через провайдери env/file/exec. Див. [Керування секретами](/uk/gateway/secrets).
+- `password`: пароль для входу на основі пароля. Підтримуються як відкриті значення, так і значення SecretRef.
- `deviceId`: явний Matrix device ID.
- `deviceName`: відображувана назва пристрою для входу за паролем.
- `avatarUrl`: збережений URL власного аватара для синхронізації профілю та оновлень `set-profile`.
- `initialSyncLimit`: ліміт подій синхронізації під час запуску.
- `encryption`: увімкнути E2EE.
-- `allowlistOnly`: примусова поведінка лише за allowlist для DM і кімнат.
-- `allowBots`: дозволити повідомлення від інших налаштованих облікових записів OpenClaw Matrix (`true` або `"mentions"`).
+- `allowlistOnly`: примусова поведінка тільки за allowlist для DM і кімнат.
+- `allowBots`: дозволити повідомлення від інших налаштованих облікових записів Matrix OpenClaw (`true` або `"mentions"`).
- `groupPolicy`: `open`, `allowlist` або `disabled`.
- `contextVisibility`: режим видимості додаткового контексту кімнати (`all`, `allowlist`, `allowlist_quote`).
- `groupAllowFrom`: allowlist user ID для трафіку кімнат.
-- Записи `groupAllowFrom` мають бути повними Matrix user ID. Нерозпізнані імена ігноруються під час runtime.
-- `historyLimit`: максимальна кількість повідомлень кімнати для включення як контекст історії групи. Використовує fallback до `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути.
+- Записи `groupAllowFrom` мають бути повними Matrix user ID. Нерозв’язані імена ігноруються в runtime.
+- `historyLimit`: максимальна кількість повідомлень кімнати, які включаються як контекст історії групи. Якщо значення не задано, використовується `messages.groupChat.historyLimit`. Установіть `0`, щоб вимкнути.
- `replyToMode`: `off`, `first` або `all`.
- `markdown`: необов’язкова конфігурація рендерингу Markdown для вихідного тексту Matrix.
-- `streaming`: `off` (за замовчуванням), `partial`, `quiet`, `true` або `false`. `partial` і `true` вмикають оновлення чернеток із попереднім preview через звичайні текстові повідомлення Matrix. `quiet` використовує preview notices без сповіщень для self-hosted конфігурацій із push rules.
-- `blockStreaming`: `true` вмикає окремі повідомлення про прогрес для завершених блоків асистента, поки активний draft preview streaming.
+- `streaming`: `off` (за замовчуванням), `partial`, `quiet`, `true` або `false`. `partial` і `true` вмикають оновлення чернетки з попереднім переглядом звичайними текстовими повідомленнями Matrix. `quiet` використовує попередні тихі повідомлення для самохостингових сценаріїв із push-правилами.
+- `blockStreaming`: `true` вмикає окремі повідомлення про прогрес для завершених блоків асистента, поки активний потоковий попередній перегляд чернетки.
- `threadReplies`: `off`, `inbound` або `always`.
-- `threadBindings`: перевизначення для окремого каналу щодо маршрутизації та життєвого циклу сесій, прив’язаних до тредів.
-- `startupVerification`: режим автоматичного запиту self-verification під час запуску (`if-unverified`, `off`).
-- `startupVerificationCooldownHours`: cooldown перед повторною спробою автоматичних запитів верифікації під час запуску.
-- `textChunkLimit`: розмір chunk вихідного повідомлення.
+- `threadBindings`: перевизначення на рівні каналу для маршрутизації та життєвого циклу сесій, прив’язаних до тредів.
+- `startupVerification`: режим автоматичного запиту на самоверифікацію під час запуску (`if-unverified`, `off`).
+- `startupVerificationCooldownHours`: cooldown перед повторною спробою автоматичних запитів на верифікацію під час запуску.
+- `textChunkLimit`: розмір chunk для вихідних повідомлень.
- `chunkMode`: `length` або `newline`.
- `responsePrefix`: необов’язковий префікс повідомлення для вихідних відповідей.
- `ackReaction`: необов’язкове перевизначення ack reaction для цього каналу/облікового запису.
- `ackReactionScope`: необов’язкове перевизначення області ack reaction (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`).
- `reactionNotifications`: режим вхідних сповіщень про реакції (`own`, `off`).
-- `mediaMaxMb`: обмеження розміру медіа в МБ для обробки медіа Matrix. Застосовується до вихідного надсилання та обробки вхідних медіа.
-- `autoJoin`: політика автоматичного приєднання до запрошень (`always`, `allowlist`, `off`). За замовчуванням: `off`.
-- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` має значення `allowlist`. Псевдоніми визначаються як room ID під час обробки запрошення; OpenClaw не довіряє стану псевдоніма, який заявляє запрошена кімната.
+- `mediaMaxMb`: обмеження розміру медіа в МБ для обробки медіа в Matrix. Воно застосовується до вихідних надсилань і обробки вхідних медіа.
+- `autoJoin`: політика автоматичного приєднання за запрошенням (`always`, `allowlist`, `off`). За замовчуванням: `off`.
+- `autoJoinAllowlist`: кімнати/псевдоніми, дозволені, коли `autoJoin` має значення `allowlist`. Записи псевдонімів розв’язуються в ID кімнат під час обробки запрошення; OpenClaw не довіряє стану псевдоніма, заявленому запрошеною кімнатою.
- `dm`: блок політики DM (`enabled`, `policy`, `allowFrom`, `sessionScope`, `threadReplies`).
-- Записи `dm.allowFrom` мають бути повними Matrix user ID, якщо тільки ви вже не визначили їх через живий пошук у каталозі.
-- `dm.sessionScope`: `per-user` (за замовчуванням) або `per-room`. Використовуйте `per-room`, якщо хочете, щоб кожна кімната Matrix DM зберігала окремий контекст, навіть якщо співрозмовник той самий.
-- `dm.threadReplies`: перевизначення політики тредів лише для DM (`off`, `inbound`, `always`). Воно перевизначає верхньорівневе `threadReplies` як для розміщення відповідей, так і для ізоляції сесій у DM.
-- `execApprovals`: нативна доставка погоджень exec у Matrix (`enabled`, `approvers`, `target`, `agentFilter`, `sessionFilter`).
-- `execApprovals.approvers`: Matrix user ID, яким дозволено погоджувати exec-запити. Необов’язково, якщо `dm.allowFrom` уже визначає approver-ів.
+- Записи `dm.allowFrom` мають бути повними Matrix user ID, якщо тільки ви вже не розв’язали їх через живий пошук у каталозі.
+- `dm.sessionScope`: `per-user` (за замовчуванням) або `per-room`. Використовуйте `per-room`, якщо хочете, щоб кожна DM-кімната Matrix зберігала окремий контекст, навіть коли співрозмовник той самий.
+- `dm.threadReplies`: перевизначення політики тредів лише для DM (`off`, `inbound`, `always`). Воно перевизначає налаштування верхнього рівня `threadReplies` і для розміщення відповідей, і для ізоляції сесій у DM.
+- `execApprovals`: вбудована доставка схвалень exec у Matrix (`enabled`, `approvers`, `target`, `agentFilter`, `sessionFilter`).
+- `execApprovals.approvers`: Matrix user ID, яким дозволено схвалювати запити exec. Необов’язково, якщо `dm.allowFrom` уже визначає схвалювачів.
- `execApprovals.target`: `dm | channel | both` (за замовчуванням: `dm`).
-- `accounts`: іменовані перевизначення для окремих облікових записів. Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для цих записів.
-- `groups`: мапа політик для окремих кімнат. Віддавайте перевагу room ID або псевдонімам; нерозпізнані назви кімнат ігноруються під час runtime. Ідентичність сесії/групи після визначення використовує стабільний room ID, тоді як людськочитані мітки все ще походять із назв кімнат.
+- `accounts`: іменовані перевизначення для кожного облікового запису. Значення верхнього рівня `channels.matrix` діють як значення за замовчуванням для цих записів.
+- `groups`: карта політик для кожної кімнати. Надавайте перевагу ID кімнат або псевдонімам; нерозв’язані назви кімнат ігноруються в runtime. Ідентичність сесії/групи використовує стабільний ID кімнати після розв’язання, тоді як зрозумілі людині мітки, як і раніше, походять із назв кімнат.
- `groups..account`: обмежити один успадкований запис кімнати конкретним обліковим записом Matrix у конфігураціях із кількома обліковими записами.
-- `groups..allowBots`: перевизначення на рівні кімнати для відправників-ботів із конфігурації (`true` або `"mentions"`).
-- `groups..users`: allowlist відправників для окремої кімнати.
-- `groups..tools`: перевизначення allow/deny інструментів для окремої кімнати.
-- `groups..autoReply`: перевизначення керування згадками на рівні кімнати. `true` вимикає вимоги до згадок для цієї кімнати; `false` примусово вмикає їх знову.
+- `groups..allowBots`: перевизначення на рівні кімнати для відправників-налаштованих-ботів (`true` або `"mentions"`).
+- `groups..users`: allowlist відправників для кімнати.
+- `groups..tools`: перевизначення allow/deny інструментів для кімнати.
+- `groups..autoReply`: перевизначення обмеження згадуваннями на рівні кімнати. `true` вимикає вимоги до згадувань для цієї кімнати; `false` примусово вмикає їх знову.
- `groups..skills`: необов’язковий фільтр Skills на рівні кімнати.
- `groups..systemPrompt`: необов’язковий фрагмент system prompt на рівні кімнати.
-- `rooms`: legacy-псевдонім для `groups`.
-- `actions`: контроль доступу до інструментів для окремих дій (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`).
+- `rooms`: застарілий псевдонім для `groups`.
+- `actions`: обмеження інструментів за діями (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`).
## Пов’язане
-- [Channels Overview](/uk/channels) — усі підтримувані канали
+- [Огляд каналів](/uk/channels) — усі підтримувані канали
- [Pairing](/uk/channels/pairing) — автентифікація DM і сценарій pairing
-- [Groups](/uk/channels/groups) — поведінка групового чату й керування згадками
-- [Channel Routing](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень
-- [Security](/uk/gateway/security) — модель доступу та посилення захисту
+- [Групи](/uk/channels/groups) — поведінка групового чату та обмеження за згадуваннями
+- [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень
+- [Безпека](/uk/gateway/security) — модель доступу та посилення захисту
diff --git a/docs/uk/plugins/manifest.md b/docs/uk/plugins/manifest.md
index bc189c59c..f1007b34f 100644
--- a/docs/uk/plugins/manifest.md
+++ b/docs/uk/plugins/manifest.md
@@ -1,65 +1,65 @@
---
read_when:
- - Ви створюєте плагін OpenClaw
- - Вам потрібно постачати схему конфігурації плагіна або налагодити помилки валідації плагіна
-summary: Вимоги до маніфесту плагіна та JSON Schema (сувора валідація конфігурації)
-title: Маніфест плагіна
+ - Ви створюєте plugin для OpenClaw
+ - Вам потрібно постачати схему конфігурації plugin або налагодити помилки валідації plugin
+summary: Вимоги до маніфесту plugin + JSON Schema (сувора валідація конфігурації)
+title: Маніфест plugin
x-i18n:
- generated_at: "2026-04-05T23:26:52Z"
+ generated_at: "2026-04-06T00:20:44Z"
model: gpt-5.4
provider: openai
- source_hash: 5f7af9bcbdc958448e83d2bc96f0acb37017a10b3848343bae1ed5fd2fe4c082
+ source_hash: 89a940d54bd18bf60368addd09aeef47d53ca9b07714397e1c43083e01aac6b6
source_path: plugins/manifest.md
workflow: 15
---
-# Маніфест плагіна (openclaw.plugin.json)
+# Маніфест plugin (`openclaw.plugin.json`)
-Ця сторінка стосується лише **власного маніфесту плагіна OpenClaw**.
+Ця сторінка стосується лише **власного маніфесту plugin OpenClaw**.
-Сумісні макети пакетів описано в [Пакети плагінів](/uk/plugins/bundles).
+Для сумісних макетів пакетів див. [Пакети plugin](/uk/plugins/bundles).
Сумісні формати пакетів використовують інші файли маніфесту:
- Пакет Codex: `.codex-plugin/plugin.json`
-- Пакет Claude: `.claude-plugin/plugin.json` або типовий макет компонента Claude
+- Пакет Claude: `.claude-plugin/plugin.json` або стандартний макет компонентів Claude
без маніфесту
- Пакет Cursor: `.cursor-plugin/plugin.json`
-OpenClaw також автоматично виявляє ці макети пакетів, але вони не перевіряються
-на відповідність схемі `openclaw.plugin.json`, описаній тут.
+OpenClaw також автоматично виявляє ці макети пакетів, але вони не проходять валідацію
+за схемою `openclaw.plugin.json`, описаною тут.
-Для сумісних пакетів OpenClaw наразі зчитує метадані пакета, а також оголошені
-кореневі каталоги Skills, кореневі каталоги команд Claude, значення за замовчуванням `settings.json` пакета Claude,
-значення LSP за замовчуванням пакета Claude та підтримувані набори хуків, якщо макет відповідає очікуванням середовища виконання
-OpenClaw.
+Для сумісних пакетів OpenClaw наразі читає метадані пакета плюс оголошені
+корені Skills, корені команд Claude, значення за замовчуванням `settings.json` пакета Claude,
+значення за замовчуванням LSP пакета Claude і підтримувані набори хуків, коли макет відповідає
+очікуванням середовища виконання OpenClaw.
-Кожен власний плагін OpenClaw **має** постачатися з файлом `openclaw.plugin.json` у
-**корені плагіна**. OpenClaw використовує цей маніфест для валідації конфігурації
-**без виконання коду плагіна**. Відсутні або недійсні маніфести вважаються
-помилками плагіна та блокують валідацію конфігурації.
+Кожен власний plugin OpenClaw **повинен** постачати файл `openclaw.plugin.json` у
+**корені plugin**. OpenClaw використовує цей маніфест для валідації конфігурації
+**без виконання коду plugin**. Відсутні або недійсні маніфести розглядаються як
+помилки plugin і блокують валідацію конфігурації.
-Повний посібник по системі плагінів дивіться тут: [Плагіни](/uk/tools/plugin).
-Про власну модель можливостей і актуальні рекомендації щодо зовнішньої сумісності:
+Перегляньте повний посібник із системи plugin: [Plugins](/uk/tools/plugin).
+Для власної моделі можливостей і поточних рекомендацій щодо зовнішньої сумісності:
[Модель можливостей](/uk/plugins/architecture#public-capability-model).
## Що робить цей файл
-`openclaw.plugin.json` — це метадані, які OpenClaw зчитує до завантаження коду
-вашого плагіна.
+`openclaw.plugin.json` — це метадані, які OpenClaw читає перед завантаженням коду
+вашого plugin.
Використовуйте його для:
-- ідентифікації плагіна
+- ідентичності plugin
- валідації конфігурації
- метаданих автентифікації та онбордингу, які мають бути доступні без запуску
- середовища виконання плагіна
-- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження середовища виконання плагіна
-- метаданих володіння скороченими сімействами моделей, які мають автоматично активувати
- плагін до завантаження середовища виконання
-- статичних знімків володіння можливостями, що використовуються для вбудованої сумісної прив’язки та
- покриття контрактів
-- метаданих конфігурації каналів, які мають об’єднуватися в каталоги та поверхні валідації
+ середовища виконання plugin
+- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження середовища виконання plugin
+- скорочених метаданих належності до сімейств моделей, які мають автоматично активувати
+ plugin до завантаження середовища виконання
+- статичних знімків належності можливостей, що використовуються для сумісної обв’язки комплектних plugin і
+ перевірки контрактів
+- метаданих конфігурації, специфічних для каналу, які мають об’єднуватися в поверхні каталогу й валідації
без завантаження середовища виконання
- підказок для UI конфігурації
@@ -69,7 +69,7 @@ OpenClaw.
- оголошення точок входу коду
- метаданих встановлення npm
-Для цього використовуйте код плагіна та `package.json`.
+Це належить вашому коду plugin і `package.json`.
## Мінімальний приклад
@@ -135,54 +135,54 @@ OpenClaw.
## Довідник полів верхнього рівня
-| Поле | Обов’язкове | Тип | Що це означає |
+| Поле | Обов’язкове | Тип | Що воно означає |
| ----------------------------------- | ----------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `id` | Так | `string` | Канонічний ідентифікатор плагіна. Це ідентифікатор, який використовується в `plugins.entries.`. |
-| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього плагіна. |
-| `enabledByDefault` | Ні | `true` | Позначає вбудований плагін як увімкнений за замовчуванням. Не вказуйте це поле або встановлюйте будь-яке значення, відмінне від `true`, щоб плагін залишався вимкненим за замовчуванням. |
-| `legacyPluginIds` | Ні | `string[]` | Застарілі ідентифікатори, які нормалізуються до цього канонічного ідентифікатора плагіна. |
-| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Ідентифікатори провайдерів, які мають автоматично вмикати цей плагін, коли автентифікація, конфігурація або посилання на моделі згадують їх. |
-| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує винятковий тип плагіна, який використовується `plugins.slots.*`. |
-| `channels` | Ні | `string[]` | Ідентифікатори каналів, що належать цьому плагіну. Використовуються для виявлення та валідації конфігурації. |
-| `providers` | Ні | `string[]` | Ідентифікатори провайдерів, що належать цьому плагіну. |
-| `modelSupport` | Ні | `object` | Метадані скорочених сімейств моделей, що належать маніфесту та використовуються для автозавантаження плагіна до середовища виконання. |
-| `providerAuthEnvVars` | Ні | `Record` | Недорогі метадані змінних середовища для автентифікації провайдера, які OpenClaw може перевіряти без завантаження коду плагіна. |
-| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані варіантів автентифікації для засобів вибору під час онбордингу, визначення пріоритетного провайдера та простого зв’язування з прапорцями CLI. |
-| `contracts` | Ні | `object` | Статичний знімок вбудованих можливостей для speech, realtime transcription, realtime voice, media-understanding, image-generation, video-generation, web-fetch, web search і володіння інструментами. |
-| `channelConfigs` | Ні | `Record` | Метадані конфігурації каналів, що належать маніфесту та об’єднуються з поверхнями виявлення й валідації до завантаження середовища виконання. |
-| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня плагіна. |
-| `name` | Ні | `string` | Людинозрозуміла назва плагіна. |
-| `description` | Ні | `string` | Короткий опис, що показується на поверхнях плагіна. |
-| `version` | Ні | `string` | Інформаційна версія плагіна. |
-| `uiHints` | Ні | `Record` | Мітки UI, заповнювачі та підказки про чутливість для полів конфігурації. |
+| `id` | Так | `string` | Канонічний id plugin. Це id, який використовується в `plugins.entries.`. |
+| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього plugin. |
+| `enabledByDefault` | Ні | `true` | Позначає комплектний plugin як увімкнений за замовчуванням. Пропустіть його або встановіть будь-яке значення, відмінне від `true`, щоб plugin залишався вимкненим за замовчуванням. |
+| `legacyPluginIds` | Ні | `string[]` | Застарілі id, які нормалізуються до цього канонічного id plugin. |
+| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Id провайдерів, які мають автоматично вмикати цей plugin, коли автентифікація, конфігурація або посилання на моделі згадують їх. |
+| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує ексклюзивний тип plugin, який використовується в `plugins.slots.*`. |
+| `channels` | Ні | `string[]` | Id каналів, якими володіє цей plugin. Використовується для виявлення та валідації конфігурації. |
+| `providers` | Ні | `string[]` | Id провайдерів, якими володіє цей plugin. |
+| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, якими володіє маніфест і які використовуються для автозавантаження plugin до запуску середовища виконання. |
+| `providerAuthEnvVars` | Ні | `Record` | Недорогі метадані автентифікації провайдера через змінні середовища, які OpenClaw може перевіряти без завантаження коду plugin. |
+| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані варіантів автентифікації для селекторів онбордингу, визначення бажаного провайдера та простої обв’язки прапорців CLI. |
+| `contracts` | Ні | `object` | Статичний знімок можливостей комплектного plugin для мовлення, транскрипції в реальному часі, голосу в реальному часі, розуміння медіа, генерації зображень, генерації відео, web-fetch, вебпошуку та належності інструментів. |
+| `channelConfigs` | Ні | `Record` | Метадані конфігурації каналу, якими володіє маніфест і які об’єднуються в поверхні виявлення та валідації до завантаження середовища виконання. |
+| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня plugin. |
+| `name` | Ні | `string` | Людинозрозуміла назва plugin. |
+| `description` | Ні | `string` | Короткий опис, що показується в поверхнях plugin. |
+| `version` | Ні | `string` | Інформаційна версія plugin. |
+| `uiHints` | Ні | `Record` | Підказки UI для міток, заповнювачів і чутливості полів конфігурації. |
## Довідник `providerAuthChoices`
Кожен запис `providerAuthChoices` описує один варіант онбордингу або автентифікації.
-OpenClaw зчитує це до завантаження середовища виконання провайдера.
+OpenClaw читає це до завантаження середовища виконання провайдера.
-| Поле | Обов’язкове | Тип | Що це означає |
-| --------------------- | ----------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
-| `provider` | Так | `string` | Ідентифікатор провайдера, до якого належить цей варіант. |
-| `method` | Так | `string` | Ідентифікатор методу автентифікації, до якого слід диспетчеризувати. |
-| `choiceId` | Так | `string` | Стабільний ідентифікатор варіанта автентифікації, який використовується в онбордингу та потоках CLI. |
-| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо не вказано, OpenClaw використовує `choiceId` як запасний варіант. |
-| `choiceHint` | Ні | `string` | Короткий допоміжний текст для засобу вибору. |
-| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних засобах вибору, керованих асистентом. |
-| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант із засобів вибору асистента, але все ще дозволяє ручний вибір через CLI. |
-| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі ідентифікатори варіантів, які мають перенаправляти користувачів до цього варіанта-замінника. |
-| `groupId` | Ні | `string` | Необов’язковий ідентифікатор групи для групування пов’язаних варіантів. |
-| `groupLabel` | Ні | `string` | Мітка для користувача для цієї групи. |
-| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
-| `optionKey` | Ні | `string` | Внутрішній ключ параметра для простих потоків автентифікації з одним прапорцем. |
-| `cliFlag` | Ні | `string` | Назва прапорця CLI, наприклад `--openrouter-api-key`. |
-| `cliOption` | Ні | `string` | Повна форма параметра CLI, наприклад `--openrouter-api-key `. |
-| `cliDescription` | Ні | `string` | Опис, який використовується в довідці CLI. |
-| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | На яких поверхнях онбордингу має з’являтися цей варіант. Якщо не вказано, за замовчуванням це `["text-inference"]`. |
+| Поле | Обов’язкове | Тип | Що воно означає |
+| --------------------- | ----------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
+| `provider` | Так | `string` | Id провайдера, до якого належить цей варіант. |
+| `method` | Так | `string` | Id методу автентифікації, до якого виконуватиметься диспетчеризація. |
+| `choiceId` | Так | `string` | Стабільний id варіанта автентифікації, який використовується в онбордингу та потоках CLI. |
+| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо пропущено, OpenClaw використовує `choiceId`. |
+| `choiceHint` | Ні | `string` | Короткий допоміжний текст для селектора. |
+| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних селекторах, керованих помічником. |
+| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант від селекторів помічника, але все ще дозволяє ручний вибір через CLI. |
+| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі id варіантів, які мають перенаправляти користувачів до цього варіанта-заміни. |
+| `groupId` | Ні | `string` | Необов’язковий id групи для пов’язаних варіантів. |
+| `groupLabel` | Ні | `string` | Мітка для користувача для цієї групи. |
+| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
+| `optionKey` | Ні | `string` | Внутрішній ключ опції для простих потоків автентифікації з одним прапорцем. |
+| `cliFlag` | Ні | `string` | Назва прапорця CLI, наприклад `--openrouter-api-key`. |
+| `cliOption` | Ні | `string` | Повна форма опції CLI, наприклад `--openrouter-api-key `. |
+| `cliDescription` | Ні | `string` | Опис, який використовується в довідці CLI. |
+| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | У яких поверхнях онбордингу має відображатися цей варіант. Якщо пропущено, за замовчуванням це `["text-inference"]`. |
## Довідник `uiHints`
-`uiHints` — це мапа від назв полів конфігурації до невеликих підказок для рендерингу.
+`uiHints` — це мапа від назв полів конфігурації до невеликих підказок рендерингу.
```json
{
@@ -197,21 +197,21 @@ OpenClaw зчитує це до завантаження середовища в
}
```
-Кожна підказка поля може містити:
+Кожна підказка для поля може містити:
-| Поле | Тип | Що це означає |
+| Поле | Тип | Що воно означає |
| ------------- | ---------- | --------------------------------------- |
| `label` | `string` | Мітка поля для користувача. |
| `help` | `string` | Короткий допоміжний текст. |
| `tags` | `string[]` | Необов’язкові теги UI. |
| `advanced` | `boolean` | Позначає поле як розширене. |
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
-| `placeholder` | `string` | Текст заповнювача для полів форми. |
+| `placeholder` | `string` | Текст-заповнювач для полів форми. |
## Довідник `contracts`
-Використовуйте `contracts` лише для статичних метаданих володіння можливостями, які OpenClaw може
-зчитувати без імпорту середовища виконання плагіна.
+Використовуйте `contracts` лише для статичних метаданих належності можливостей, які OpenClaw може
+прочитати без імпорту середовища виконання plugin.
```json
{
@@ -231,21 +231,21 @@ OpenClaw зчитує це до завантаження середовища в
Кожен список необов’язковий:
-| Поле | Тип | Що це означає |
+| Поле | Тип | Що воно означає |
| -------------------------------- | ---------- | ------------------------------------------------------------ |
-| `speechProviders` | `string[]` | Ідентифікатори speech-провайдерів, що належать цьому плагіну. |
-| `realtimeTranscriptionProviders` | `string[]` | Ідентифікатори провайдерів realtime-transcription, що належать цьому плагіну. |
-| `realtimeVoiceProviders` | `string[]` | Ідентифікатори провайдерів realtime-voice, що належать цьому плагіну. |
-| `mediaUnderstandingProviders` | `string[]` | Ідентифікатори провайдерів media-understanding, що належать цьому плагіну. |
-| `imageGenerationProviders` | `string[]` | Ідентифікатори провайдерів image-generation, що належать цьому плагіну. |
-| `videoGenerationProviders` | `string[]` | Ідентифікатори провайдерів video-generation, що належать цьому плагіну. |
-| `webFetchProviders` | `string[]` | Ідентифікатори провайдерів web-fetch, що належать цьому плагіну. |
-| `webSearchProviders` | `string[]` | Ідентифікатори провайдерів web-search, що належать цьому плагіну. |
-| `tools` | `string[]` | Назви агентських інструментів, що належать цьому плагіну для перевірок вбудованих контрактів. |
+| `speechProviders` | `string[]` | Id провайдерів мовлення, якими володіє цей plugin. |
+| `realtimeTranscriptionProviders` | `string[]` | Id провайдерів транскрипції в реальному часі, якими володіє цей plugin. |
+| `realtimeVoiceProviders` | `string[]` | Id провайдерів голосу в реальному часі, якими володіє цей plugin. |
+| `mediaUnderstandingProviders` | `string[]` | Id провайдерів розуміння медіа, якими володіє цей plugin. |
+| `imageGenerationProviders` | `string[]` | Id провайдерів генерації зображень, якими володіє цей plugin. |
+| `videoGenerationProviders` | `string[]` | Id провайдерів генерації відео, якими володіє цей plugin. |
+| `webFetchProviders` | `string[]` | Id провайдерів web-fetch, якими володіє цей plugin. |
+| `webSearchProviders` | `string[]` | Id провайдерів вебпошуку, якими володіє цей plugin. |
+| `tools` | `string[]` | Назви інструментів агента, якими володіє цей plugin, для перевірок комплектних контрактів. |
## Довідник `channelConfigs`
-Використовуйте `channelConfigs`, коли плагіну каналу потрібні недорогі метадані конфігурації до
+Використовуйте `channelConfigs`, коли plugin каналу потребує недорогих метаданих конфігурації до
завантаження середовища виконання.
```json
@@ -275,18 +275,18 @@ OpenClaw зчитує це до завантаження середовища в
Кожен запис каналу може містити:
-| Поле | Тип | Що це означає |
-| ------------- | ------------------------ | -------------------------------------------------------------------------------------------- |
+| Поле | Тип | Що воно означає |
+| ------------- | ------------------------ | ---------------------------------------------------------------------------------------------- |
| `schema` | `object` | JSON Schema для `channels.`. Обов’язкова для кожного оголошеного запису конфігурації каналу. |
-| `uiHints` | `Record` | Необов’язкові мітки UI/заповнювачі/підказки чутливості для цього розділу конфігурації каналу. |
-| `label` | `string` | Мітка каналу, що об’єднується із засобами вибору та поверхнями інспекції, коли метадані середовища виконання ще не готові. |
-| `description` | `string` | Короткий опис каналу для поверхонь інспекції та каталогу. |
-| `preferOver` | `string[]` | Застарілі або нижчі за пріоритетом ідентифікатори плагінів, які цей канал має випереджати на поверхнях вибору. |
+| `uiHints` | `Record` | Необов’язкові підказки UI для міток/заповнювачів/чутливості для цього розділу конфігурації каналу. |
+| `label` | `string` | Мітка каналу, яка об’єднується в поверхнях вибору та інспекції, коли метадані середовища виконання ще не готові. |
+| `description` | `string` | Короткий опис каналу для поверхонь інспекції та каталогу. |
+| `preferOver` | `string[]` | Id застарілих або менш пріоритетних plugin, які цей канал має випереджати в поверхнях вибору. |
## Довідник `modelSupport`
-Використовуйте `modelSupport`, коли OpenClaw має виводити ваш плагін провайдера зі
-скорочених ідентифікаторів моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження середовища виконання плагіна.
+Використовуйте `modelSupport`, коли OpenClaw має визначати ваш plugin провайдера за
+скороченими id моделей, такими як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження середовища виконання plugin.
```json
{
@@ -299,73 +299,74 @@ OpenClaw зчитує це до завантаження середовища в
OpenClaw застосовує такий пріоритет:
-- явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать відповідному власнику
-- `modelPatterns` мають пріоритет над `modelPrefixes`
-- якщо збігаються один невбудований плагін і один вбудований плагін, перемагає невбудований
- плагін
+- явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать власнику
+- `modelPatterns` мають перевагу над `modelPrefixes`
+- якщо збігаються один некомплектний plugin і один комплектний plugin, перемагає некомплектний
+ plugin
- решта неоднозначностей ігнорується, доки користувач або конфігурація не вкаже провайдера
Поля:
-| Поле | Тип | Що це означає |
+| Поле | Тип | Що воно означає |
| --------------- | ---------- | -------------------------------------------------------------------------------- |
-| `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` зі скороченими ідентифікаторами моделей. |
-| `modelPatterns` | `string[]` | Джерела regex, що зіставляються зі скороченими ідентифікаторами моделей після видалення суфікса профілю. |
+| `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` зі скороченими id моделей. |
+| `modelPatterns` | `string[]` | Джерела regex, що зіставляються зі скороченими id моделей після видалення суфікса профілю. |
-Застарілі ключі можливостей верхнього рівня більше не рекомендовані. Використовуйте `openclaw doctor --fix`, щоб
+Застарілі ключі можливостей верхнього рівня не рекомендуються. Використовуйте `openclaw doctor --fix`, щоб
перемістити `speechProviders`, `realtimeTranscriptionProviders`,
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
`imageGenerationProviders`, `videoGenerationProviders`,
`webFetchProviders` і `webSearchProviders` до `contracts`; звичайне
завантаження маніфесту більше не розглядає ці поля верхнього рівня як
-володіння можливостями.
+належність можливостей.
## Маніфест порівняно з package.json
Ці два файли виконують різні завдання:
-| Файл | Для чого використовувати |
-| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
-| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки UI, які мають існувати до запуску коду плагіна |
-| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, який використовується для точок входу, обмежень встановлення, налаштування або метаданих каталогу |
+| Файл | Для чого використовувати |
+| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
+| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки UI, які мають існувати до запуску коду plugin |
+| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для точок входу, обмежень встановлення, налаштування або метаданих каталогу |
-Якщо ви не впевнені, куди має належати певний фрагмент метаданих, користуйтеся таким правилом:
+Якщо ви не впевнені, куди належить певний фрагмент метаданих, користуйтеся таким правилом:
-- якщо OpenClaw має знати це до завантаження коду плагіна, помістіть це в `openclaw.plugin.json`
+- якщо OpenClaw повинен знати це до завантаження коду plugin, помістіть це в `openclaw.plugin.json`
- якщо це стосується пакування, файлів точок входу або поведінки встановлення npm, помістіть це в `package.json`
-### Поля package.json, що впливають на виявлення
+### Поля package.json, які впливають на виявлення
-Деякі метадані плагіна до середовища виконання навмисно зберігаються в `package.json` у блоці
+Деякі метадані plugin до запуску середовища виконання навмисно зберігаються в `package.json` у блоці
`openclaw`, а не в `openclaw.plugin.json`.
Важливі приклади:
-| Поле | Що це означає |
-| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
-| `openclaw.extensions` | Оголошує точки входу власних плагінів. |
-| `openclaw.setupEntry` | Полегшена точка входу лише для налаштування, яка використовується під час онбордингу та відкладеного запуску каналу. |
-| `openclaw.channel` | Недорогі метадані каталогу каналів, такі як мітки, шляхи документації, псевдоніми та текст для вибору. |
-| `openclaw.channel.persistedAuthState` | Недорогі метадані перевірки збереженого стану автентифікації, які можуть відповісти на запитання «чи вже десь виконано вхід?» без завантаження повного середовища виконання каналу. |
-| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки щодо встановлення/оновлення для вбудованих і зовнішньо опублікованих плагінів. |
-| `openclaw.install.defaultChoice` | Пріоритетний шлях встановлення, коли доступно кілька джерел встановлення. |
-| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw із нижньою межею semver, наприклад `>=2026.3.22`. |
-| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення вбудованого плагіна, коли конфігурація недійсна. |
-| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналу лише для налаштування завантажуватися до повного плагіна каналу під час запуску. |
+| Поле | Що воно означає |
+| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
+| `openclaw.extensions` | Оголошує власні точки входу plugin. |
+| `openclaw.setupEntry` | Легка точка входу лише для налаштування, яка використовується під час онбордингу та відкладеного запуску каналу. |
+| `openclaw.channel` | Недорогі метадані каталогу каналів, як-от мітки, шляхи до документації, псевдоніми та текст для вибору. |
+| `openclaw.channel.configuredState` | Легкі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного середовища виконання каналу. |
+| `openclaw.channel.persistedAuthState` | Легкі метадані перевірки збереженого стану автентифікації, які можуть відповісти на запитання «чи вже десь виконано вхід?» без завантаження повного середовища виконання каналу. |
+| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки для встановлення/оновлення комплектних і зовнішньо опублікованих plugin. |
+| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
+| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw із semver-нижньою межею на кшталт `>=2026.3.22`. |
+| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення комплектного plugin, коли конфігурація недійсна. |
+| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє завантажувати поверхні каналу лише для налаштування до повного plugin каналу під час запуску. |
-`openclaw.install.minHostVersion` застосовується під час встановлення та завантаження
+`openclaw.install.minHostVersion` перевіряється під час встановлення та завантаження
реєстру маніфестів. Недійсні значення відхиляються; новіші, але коректні значення пропускають
-плагін на старіших хостах.
+plugin на старіших хостах.
-`openclaw.install.allowInvalidConfigRecovery` навмисно має вузьке застосування. Воно
-не робить довільні зламані конфігурації придатними для встановлення. Сьогодні воно лише дозволяє
-процесам встановлення відновлюватися після певних застарілих збоїв оновлення вбудованих плагінів, таких як
-відсутній шлях до вбудованого плагіна або застарілий запис `channels.` для того самого
-вбудованого плагіна. Непов’язані помилки конфігурації, як і раніше, блокують встановлення та спрямовують операторів
+`openclaw.install.allowInvalidConfigRecovery` є навмисно вузьким. Воно
+не робить довільні зламані конфігурації придатними до встановлення. Сьогодні воно лише дозволяє
+потокам встановлення відновлюватися після конкретних застарілих збоїв оновлення комплектних plugin, таких як
+відсутній шлях до комплектного plugin або застарілий запис `channels.` для того самого
+комплектного plugin. Непов’язані помилки конфігурації все одно блокують встановлення та спрямовують операторів
до `openclaw doctor --fix`.
-`openclaw.channel.persistedAuthState` — це метадані пакета для крихітного модуля
-перевірки:
+`openclaw.channel.persistedAuthState` — це метадані пакета для крихітного
+модуля перевірки:
```json
{
@@ -381,59 +382,80 @@ OpenClaw застосовує такий пріоритет:
}
```
-Використовуйте це, коли налаштуванню, doctor або потокам стану налаштованої системи потрібна недорога перевірка автентифікації
-у форматі так/ні до завантаження повного плагіна каналу. Цільовий експорт має бути невеликою
-функцією, яка лише читає збережений стан; не спрямовуйте її через повний
-barrel середовища виконання каналу.
+Використовуйте це, коли налаштування, doctor або потоки налаштованого стану потребують недорогої
+перевірки автентифікації типу так/ні до завантаження повного plugin каналу. Цільовий експорт має бути невеликою
+функцією, яка читає лише збережений стан; не спрямовуйте її через повний barrel середовища виконання
+каналу.
+
+`openclaw.channel.configuredState` використовує ту саму форму для недорогих перевірок
+налаштованого стану лише через env:
+
+```json
+{
+ "openclaw": {
+ "channel": {
+ "id": "telegram",
+ "configuredState": {
+ "specifier": "./configured-state",
+ "exportName": "hasTelegramConfiguredState"
+ }
+ }
+ }
+}
+```
+
+Використовуйте це, коли канал може відповісти про налаштований стан на основі env або інших невеликих
+невиконуваних вхідних даних. Якщо перевірка потребує повного визначення конфігурації або реального
+середовища виконання каналу, залиште цю логіку в хуку plugin `config.hasConfiguredState`.
## Вимоги до JSON Schema
-- **Кожен плагін має постачатися з JSON Schema**, навіть якщо він не приймає конфігурацію.
-- Порожня схема є припустимою (наприклад, `{ "type": "object", "additionalProperties": false }`).
-- Схеми перевіряються під час читання/запису конфігурації, а не під час виконання.
+- **Кожен plugin повинен постачати JSON Schema**, навіть якщо він не приймає конфігурацію.
+- Порожня схема допустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
+- Схеми проходять валідацію під час читання/запису конфігурації, а не під час виконання.
## Поведінка валідації
-- Невідомі ключі `channels.*` є **помилками**, якщо тільки ідентифікатор каналу не оголошено
- в маніфесті плагіна.
+- Невідомі ключі `channels.*` є **помилками**, якщо тільки id каналу не оголошено
+ маніфестом plugin.
- `plugins.entries.`, `plugins.allow`, `plugins.deny` і `plugins.slots.*`
- мають посилатися на **виявлювані** ідентифікатори плагінів. Невідомі ідентифікатори є **помилками**.
-- Якщо плагін встановлено, але його маніфест або схема зламані чи відсутні,
- валідація завершується помилкою, а Doctor повідомляє про помилку плагіна.
-- Якщо конфігурація плагіна існує, але плагін **вимкнено**, конфігурація зберігається, і
- в Doctor + журналах відображається **попередження**.
+ повинні посилатися на **доступні для виявлення** id plugin. Невідомі id є **помилками**.
+- Якщо plugin встановлено, але його маніфест або схема зламані чи відсутні,
+ валідація завершується помилкою, а Doctor повідомляє про помилку plugin.
+- Якщо конфігурація plugin існує, але plugin **вимкнено**, конфігурація зберігається, і
+ у Doctor + журналах з’являється **попередження**.
-Повну схему `plugins.*` дивіться в [Довіднику з конфігурації](/uk/gateway/configuration).
+Див. [Довідник із конфігурації](/uk/gateway/configuration) для повної схеми `plugins.*`.
## Примітки
-- Маніфест **обов’язковий для власних плагінів OpenClaw**, включно із завантаженням із локальної файлової системи.
-- Середовище виконання, як і раніше, окремо завантажує модуль плагіна; маніфест призначений лише для
+- Маніфест **обов’язковий для власних plugin OpenClaw**, включно із завантаженням із локальної файлової системи.
+- Середовище виконання все одно завантажує модуль plugin окремо; маніфест призначений лише для
виявлення + валідації.
-- Власні маніфести розбираються за допомогою JSON5, тому коментарі, кінцеві коми та
- ключі без лапок допускаються, якщо кінцеве значення все ще є об’єктом.
-- Завантажувач маніфеста зчитує лише задокументовані поля маніфеста. Уникайте додавання
- власних ключів верхнього рівня тут.
-- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок автентифікації, валідації маркерів змінних середовища
- та подібних поверхонь автентифікації провайдера, які не повинні запускати
- середовище виконання плагіна лише для перевірки назв змінних середовища.
-- `providerAuthChoices` — це недорогий шлях метаданих для засобів вибору варіантів автентифікації,
- визначення `--auth-choice`, зіставлення пріоритетного провайдера та простої реєстрації прапорців CLI
- до завантаження середовища виконання провайдера. Для метаданих майстра під час виконання,
- яким потрібен код провайдера, дивіться
+- Власні маніфести аналізуються за допомогою JSON5, тому коментарі, завершальні коми та
+ ключі без лапок допускаються, якщо кінцеве значення все одно є об’єктом.
+- Завантажувач маніфесту читає лише документовані поля маніфесту. Уникайте додавання
+ власних ключів верхнього рівня сюди.
+- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок автентифікації, валідації
+ env-маркерів та подібних поверхонь автентифікації провайдера, які не повинні запускати
+ середовище виконання plugin лише для перевірки назв env.
+- `providerAuthChoices` — це недорогий шлях метаданих для селекторів варіантів автентифікації,
+ визначення `--auth-choice`, зіставлення бажаного провайдера та простої реєстрації прапорців CLI
+ під час онбордингу до завантаження середовища виконання провайдера. Для метаданих
+ майстра під час виконання, які потребують коду провайдера, див.
[Хуки середовища виконання провайдера](/uk/plugins/architecture#provider-runtime-hooks).
-- Виняткові типи плагінів вибираються через `plugins.slots.*`.
+- Ексклюзивні типи plugin вибираються через `plugins.slots.*`.
- `kind: "memory"` вибирається через `plugins.slots.memory`.
- `kind: "context-engine"` вибирається через `plugins.slots.contextEngine`
- (типово: вбудований `legacy`).
+ (за замовчуванням: вбудований `legacy`).
- `channels`, `providers` і `skills` можна не вказувати, якщо
- плагіну вони не потрібні.
-- Якщо ваш плагін залежить від native-модулів, задокументуйте кроки збирання та всі
+ plugin їх не потребує.
+- Якщо ваш plugin залежить від власних модулів, задокументуйте кроки збірки та всі
вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts`
- `pnpm rebuild `).
-## Пов’язане
+## Пов’язані матеріали
-- [Створення плагінів](/uk/plugins/building-plugins) — початок роботи з плагінами
-- [Архітектура плагінів](/uk/plugins/architecture) — внутрішня архітектура
-- [Огляд SDK](/uk/plugins/sdk-overview) — довідник по Plugin SDK
+- [Створення Plugins](/uk/plugins/building-plugins) — початок роботи з plugins
+- [Архітектура Plugin](/uk/plugins/architecture) — внутрішня архітектура
+- [Огляд SDK](/uk/plugins/sdk-overview) — довідник з Plugin SDK
diff --git a/docs/uk/providers/models.md b/docs/uk/providers/models.md
index 9c96f8a28..5df67d9ab 100644
--- a/docs/uk/providers/models.md
+++ b/docs/uk/providers/models.md
@@ -1,22 +1,21 @@
---
read_when:
- - Ви хочете вибрати провайдера моделей
- - Ви хочете швидкі приклади налаштування автентифікації LLM і вибору моделі
+ - Ви хочете вибрати провайдера моделі
+ - Вам потрібні приклади швидкого налаштування для автентифікації LLM і вибору моделі
summary: Провайдери моделей (LLM), які підтримує OpenClaw
title: Швидкий старт для провайдерів моделей
x-i18n:
- generated_at: "2026-04-05T18:14:22Z"
+ generated_at: "2026-04-06T00:19:36Z"
model: gpt-5.4
provider: openai
- source_hash: bc98c65af5737b2c820f4da3304118c2b449d8f0cd363d73922f81087331e93d
+ source_hash: 4836c7baa0a5af6b01c1369ebe2fdc6032d50d306dd10e2dbb778c6fce1384c4
source_path: providers/models.md
workflow: 15
---
# Провайдери моделей
-OpenClaw може використовувати багато провайдерів LLM. Виберіть один, пройдіть автентифікацію, а потім задайте
-модель за замовчуванням у форматі `provider/model`.
+OpenClaw може використовувати багато провайдерів LLM. Виберіть один, пройдіть автентифікацію, а потім задайте модель за замовчуванням як `provider/model`.
## Швидкий старт (два кроки)
@@ -29,33 +28,36 @@ OpenClaw може використовувати багато провайдер
}
```
-## Підтримувані провайдери (стартовий набір)
+## Підтримувані провайдери (початковий набір)
-- [Anthropic (API + Claude CLI)](/providers/anthropic)
-- [Amazon Bedrock](/providers/bedrock)
-- [BytePlus (International)](/uk/concepts/model-providers#byteplus-international)
-- [Chutes](/providers/chutes)
-- [Cloudflare AI Gateway](/providers/cloudflare-ai-gateway)
-- [Fireworks](/providers/fireworks)
-- [GLM models](/providers/glm)
-- [MiniMax](/providers/minimax)
-- [Mistral](/providers/mistral)
-- [Moonshot AI (Kimi + Kimi Coding)](/providers/moonshot)
-- [OpenAI (API + Codex)](/providers/openai)
-- [OpenCode (Zen + Go)](/providers/opencode)
-- [OpenRouter](/providers/openrouter)
-- [Qianfan](/providers/qianfan)
-- [Qwen](/providers/qwen)
-- [StepFun](/providers/stepfun)
-- [Synthetic](/providers/synthetic)
-- [Vercel AI Gateway](/providers/vercel-ai-gateway)
-- [Venice (Venice AI)](/providers/venice)
-- [xAI](/providers/xai)
-- [Z.AI](/providers/zai)
+- [Alibaba Model Studio](/uk/providers/alibaba)
+- [Anthropic (API + Claude CLI)](/uk/providers/anthropic)
+- [Amazon Bedrock](/uk/providers/bedrock)
+- [BytePlus (міжнародний)](/uk/concepts/model-providers#byteplus-international)
+- [Chutes](/uk/providers/chutes)
+- [Cloudflare AI Gateway](/uk/providers/cloudflare-ai-gateway)
+- [fal](/uk/providers/fal)
+- [Fireworks](/uk/providers/fireworks)
+- [Моделі GLM](/uk/providers/glm)
+- [MiniMax](/uk/providers/minimax)
+- [Mistral](/uk/providers/mistral)
+- [Moonshot AI (Kimi + Kimi Coding)](/uk/providers/moonshot)
+- [OpenAI (API + Codex)](/uk/providers/openai)
+- [OpenCode (Zen + Go)](/uk/providers/opencode)
+- [OpenRouter](/uk/providers/openrouter)
+- [Qianfan](/uk/providers/qianfan)
+- [Qwen](/uk/providers/qwen)
+- [Runway](/uk/providers/runway)
+- [StepFun](/uk/providers/stepfun)
+- [Synthetic](/uk/providers/synthetic)
+- [Vercel AI Gateway](/uk/providers/vercel-ai-gateway)
+- [Venice (Venice AI)](/uk/providers/venice)
+- [xAI](/uk/providers/xai)
+- [Z.AI](/uk/providers/zai)
-## Додаткові bundled-варіанти провайдерів
+## Додаткові вбудовані варіанти провайдерів
-- `anthropic-vertex` - неявна підтримка Anthropic у Google Vertex, коли доступні облікові дані Vertex; окремий варіант автентифікації під час onboarding не потрібен
+- `anthropic-vertex` - неявна підтримка Anthropic у Google Vertex, якщо доступні облікові дані Vertex; окремий вибір автентифікації під час онбордингу не потрібен
- `copilot-proxy` - локальний міст VS Code Copilot Proxy; використовуйте `openclaw onboard --auth-choice copilot-proxy`
-Повний каталог провайдерів (xAI, Groq, Mistral тощо) і розширене налаштування див. у [Model providers](/uk/concepts/model-providers).
+Повний каталог провайдерів (xAI, Groq, Mistral тощо) і розширену конфігурацію див. у [Провайдери моделей](/uk/concepts/model-providers).
diff --git a/docs/uk/providers/runway.md b/docs/uk/providers/runway.md
index 82b4b3665..3622102c1 100644
--- a/docs/uk/providers/runway.md
+++ b/docs/uk/providers/runway.md
@@ -1,22 +1,22 @@
---
read_when:
- Ви хочете використовувати генерацію відео Runway в OpenClaw
- - Вам потрібне налаштування ключа API/env для Runway
+ - Вам потрібне налаштування ключа API / змінної середовища для Runway
- Ви хочете зробити Runway типовим провайдером відео
summary: Налаштування генерації відео Runway в OpenClaw
title: Runway
x-i18n:
- generated_at: "2026-04-05T23:52:09Z"
+ generated_at: "2026-04-06T00:19:38Z"
model: gpt-5.4
provider: openai
- source_hash: f86c0777841cde5b265bba5d6b3dd8fd05fa433ddd0f678860d8bfaa1b7483c5
+ source_hash: 87092da3f1a3cb137b0a3dffe1241a5a3d84eb29fa7c3a6b1df9c2871f1c80b6
source_path: providers/runway.md
workflow: 15
---
# Runway
-OpenClaw постачається з вбудованим провайдером `runway` для хостованої генерації відео.
+OpenClaw постачається з вбудованим провайдером `runway` для хостингової генерації відео.
- Провайдер: `runway`
- Автентифікація: `RUNWAYML_API_SECRET` (канонічний; `RUNWAY_API_KEY` також працює)
@@ -48,11 +48,13 @@ openclaw onboard --auth-choice runway-api-key
Вбудований провайдер генерації відео `runway` типово використовує `runway/gen4.5`.
-- Режими: text-to-video, image-to-video з одним зображенням і video-to-video з одним відео
+- Режими: text-to-video, single-image image-to-video та single-video video-to-video
- Виконання: асинхронне надсилання завдання + опитування через `GET /v1/tasks/{id}`
-- Локальні посилання на зображення/відео: підтримуються через URI даних
-- Поточне застереження щодо video-to-video: наразі OpenClaw вимагає `runway/gen4_aleph` для відеовходів
-- Поточне застереження щодо text-to-video: наразі OpenClaw підтримує `16:9` і `9:16` для запусків лише з текстом
+- Сесії агента: `video_generate` запускає фонове завдання, а пізніші виклики в межах тієї самої сесії тепер повертають статус активного завдання замість створення дубльованого запуску
+- Перевірка статусу: `video_generate action=status`
+- Локальні посилання на зображення/відео: підтримуються через data URI
+- Поточне застереження для video-to-video: OpenClaw наразі вимагає `runway/gen4_aleph` для відеовходів
+- Поточне застереження для text-to-video: OpenClaw наразі надає `16:9` і `9:16` для запусків лише з текстом
Щоб використовувати Runway як типовий провайдер відео:
diff --git a/docs/uk/tools/video-generation.md b/docs/uk/tools/video-generation.md
index 298511bcb..781f7816f 100644
--- a/docs/uk/tools/video-generation.md
+++ b/docs/uk/tools/video-generation.md
@@ -1,29 +1,29 @@
---
read_when:
- - Створення відео через агента
- - Налаштування провайдерів і моделей генерації відео
+ - Генерація відео через агента
+ - Налаштування провайдерів і моделей для генерації відео
- Розуміння параметрів інструмента video_generate
summary: Створюйте відео за допомогою налаштованих провайдерів, таких як Alibaba, OpenAI, Google, Qwen, MiniMax і Runway
title: Генерація відео
x-i18n:
- generated_at: "2026-04-06T00:04:16Z"
+ generated_at: "2026-04-06T00:20:03Z"
model: gpt-5.4
provider: openai
- source_hash: 64e95077eed9cbf28566de38ea31a0fd547e7d7013ed7093cb82a7774656d570
+ source_hash: 9917245069c39676a7e33afe4800d9c528300e8489a35a28aa6c0356d65b2282
source_path: tools/video-generation.md
workflow: 15
---
# Генерація відео
-Інструмент `video_generate` дає змогу агенту створювати відео за допомогою ваших налаштованих провайдерів. У сеансах агента OpenClaw запускає генерацію відео як фонове завдання, відстежує її в журналі завдань, а потім знову пробуджує агента, коли кліп готовий, щоб агент міг опублікувати готове відео назад у вихідний канал.
+Інструмент `video_generate` дає змогу агенту створювати відео за допомогою ваших налаштованих провайдерів. У сеансах агента OpenClaw запускає генерацію відео як фонове завдання, відстежує її в журналі завдань, а потім знову активує агента, коли кліп буде готовий, щоб агент міг надіслати завершене відео назад в оригінальний канал.
-Інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви не бачите `video_generate` в інструментах вашого агента, налаштуйте `agents.defaults.videoGenerationModel` або задайте API-ключ провайдера.
+Інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви не бачите `video_generate` серед інструментів вашого агента, налаштуйте `agents.defaults.videoGenerationModel` або задайте API-ключ провайдера.
-У сеансах агента `video_generate` повертається одразу з id завдання/run id. Фактичне завдання провайдера продовжується у фоновому режимі. Коли воно завершується, OpenClaw пробуджує той самий сеанс внутрішньою подією завершення, щоб агент міг надіслати звичайне подальше повідомлення разом із вкладенням згенерованого відео.
+У сеансах агента `video_generate` одразу повертає id завдання/run id. Фактичне завдання провайдера продовжується у фоновому режимі. Коли воно завершується, OpenClaw надсилає в той самий сеанс внутрішню подію завершення, щоб агент міг надіслати звичайне подальше повідомлення разом із вкладенням згенерованого відео.
## Швидкий старт
@@ -43,26 +43,26 @@ x-i18n:
}
```
-3. Попросіть агента: _"Згенеруй 5-секундне кінематографічне відео з дружнім лобстером, який катається на серфі на заході сонця."_
+3. Попросіть агента: _"Згенеруй 5-секундне кінематографічне відео дружнього омара, який катається на серфі на заході сонця."_
-Агент викликає `video_generate` автоматично. Дозвільний список інструментів не потрібен — інструмент увімкнений за замовчуванням, коли доступний провайдер.
+Агент викликає `video_generate` автоматично. Додавати його до списку дозволених інструментів не потрібно — його ввімкнено за замовчуванням, коли провайдер доступний.
-Для прямих синхронних контекстів без запуску агента на основі сеансу інструмент усе одно переходить до вбудованої генерації та повертає фінальний шлях до медіафайлу в результаті інструмента.
+Для прямих синхронних контекстів без запуску агента на основі сеансу інструмент однаково повертається до вбудованої генерації та повертає фінальний шлях до медіафайлу в результаті інструмента.
## Підтримувані провайдери
-| Провайдер | Модель за замовчуванням | Опорні вхідні дані | API-ключ |
-| --------- | ------------------------------ | ------------------ | ---------------------------------------------------------- |
-| Alibaba | `wan2.6-t2v` | Так, віддалені URL | `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY`, `QWEN_API_KEY` |
-| BytePlus | `seedance-1-0-lite-t2v-250428` | 1 зображення | `BYTEPLUS_API_KEY` |
-| fal | `fal-ai/minimax/video-01-live` | 1 зображення | `FAL_KEY` |
-| Google | `veo-3.1-fast-generate-preview` | 1 зображення або 1 відео | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
-| MiniMax | `MiniMax-Hailuo-2.3` | 1 зображення | `MINIMAX_API_KEY` |
-| OpenAI | `sora-2` | 1 зображення або 1 відео | `OPENAI_API_KEY` |
-| Qwen | `wan2.6-t2v` | Так, віддалені URL | `QWEN_API_KEY`, `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY` |
-| Runway | `gen4.5` | 1 зображення або 1 відео | `RUNWAYML_API_SECRET`, `RUNWAY_API_KEY` |
-| Together | `Wan-AI/Wan2.2-T2V-A14B` | 1 зображення | `TOGETHER_API_KEY` |
-| xAI | `grok-imagine-video` | 1 зображення або 1 відео | `XAI_API_KEY` |
+| Провайдер | Модель за замовчуванням | Вхідні референси | API-ключ |
+| --------- | ------------------------------- | ----------------- | ---------------------------------------------------------- |
+| Alibaba | `wan2.6-t2v` | Так, віддалені URL | `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY`, `QWEN_API_KEY` |
+| BytePlus | `seedance-1-0-lite-t2v-250428` | 1 зображення | `BYTEPLUS_API_KEY` |
+| fal | `fal-ai/minimax/video-01-live` | 1 зображення | `FAL_KEY` |
+| Google | `veo-3.1-fast-generate-preview` | 1 зображення або 1 відео | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
+| MiniMax | `MiniMax-Hailuo-2.3` | 1 зображення | `MINIMAX_API_KEY` |
+| OpenAI | `sora-2` | 1 зображення або 1 відео | `OPENAI_API_KEY` |
+| Qwen | `wan2.6-t2v` | Так, віддалені URL | `QWEN_API_KEY`, `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY` |
+| Runway | `gen4.5` | 1 зображення або 1 відео | `RUNWAYML_API_SECRET`, `RUNWAY_API_KEY` |
+| Together | `Wan-AI/Wan2.2-T2V-A14B` | 1 зображення | `TOGETHER_API_KEY` |
+| xAI | `grok-imagine-video` | 1 зображення або 1 відео | `XAI_API_KEY` |
Використовуйте `action: "list"`, щоб переглянути доступні провайдери та моделі під час виконання:
@@ -72,33 +72,36 @@ x-i18n:
## Параметри інструмента
-| Параметр | Тип | Опис |
-| ---------------- | -------- | -------------------------------------------------------------------------------------- |
-| `prompt` | string | Запит для генерації відео (обов’язковий для `action: "generate"`) |
-| `action` | string | `"generate"` (за замовчуванням) або `"list"` для перегляду провайдерів |
-| `model` | string | Перевизначення провайдера/моделі, наприклад `qwen/wan2.6-t2v` |
-| `image` | string | Шлях або URL одного опорного зображення |
-| `images` | string[] | Кілька опорних зображень (до 5) |
-| `video` | string | Шлях або URL одного опорного відео |
-| `videos` | string[] | Кілька опорних відео (до 4) |
-| `size` | string | Підказка щодо розміру, якщо провайдер це підтримує |
-| `aspectRatio` | string | Співвідношення сторін: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
-| `resolution` | string | Підказка щодо роздільної здатності: `480P`, `720P` або `1080P` |
-| `durationSeconds`| number | Цільова тривалість у секундах. OpenClaw може округлити її до найближчого значення, яке підтримує провайдер |
-| `audio` | boolean | Увімкнути згенерований звук, якщо провайдер це підтримує |
-| `watermark` | boolean | Увімкнути або вимкнути водяні знаки провайдера, якщо підтримується |
-| `filename` | string | Підказка щодо імені вихідного файлу |
+| Параметр | Тип | Опис |
+| ---------------- | -------- | ------------------------------------------------------------------------------------------------- |
+| `prompt` | string | Запит для генерації відео (обов’язковий для `action: "generate"`) |
+| `action` | string | `"generate"` (типово), `"status"` для поточного завдання сеансу або `"list"` для перегляду провайдерів |
+| `model` | string | Перевизначення провайдера/моделі, наприклад `qwen/wan2.6-t2v` |
+| `image` | string | Шлях або URL одного референсного зображення |
+| `images` | string[] | Кілька референсних зображень (до 5) |
+| `video` | string | Шлях або URL одного референсного відео |
+| `videos` | string[] | Кілька референсних відео (до 4) |
+| `size` | string | Підказка щодо розміру, якщо провайдер це підтримує |
+| `aspectRatio` | string | Співвідношення сторін: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
+| `resolution` | string | Підказка щодо роздільної здатності: `480P`, `720P` або `1080P` |
+| `durationSeconds` | number | Цільова тривалість у секундах. OpenClaw може округлити її до найближчого значення, підтримуваного провайдером |
+| `audio` | boolean | Увімкнути генерацію аудіо, якщо провайдер це підтримує |
+| `watermark` | boolean | Увімкнути або вимкнути водяний знак провайдера, якщо підтримується |
+| `filename` | string | Підказка щодо імені вихідного файлу |
-Не всі провайдери підтримують усі параметри. Непідтримувані необов’язкові перевизначення ігноруються в межах можливого та повертаються в результаті інструмента як попередження. Жорсткі обмеження можливостей, як-от надто велика кількість опорних вхідних даних, усе ще призводять до помилки до надсилання. Коли провайдер або модель підтримує лише дискретний набір тривалостей відео, OpenClaw округлює `durationSeconds` до найближчого підтримуваного значення та повідомляє нормалізовану тривалість у результаті інструмента.
+Не всі провайдери підтримують усі параметри. Непідтримувані необов’язкові перевизначення ігноруються в міру можливості та повертаються в результаті інструмента як попередження. Жорсткі обмеження можливостей, як-от надто велика кількість референсних вхідних даних, усе ж спричиняють помилку до надсилання. Коли провайдер або модель підтримує лише дискретний набір тривалостей відео, OpenClaw округлює `durationSeconds` до найближчого підтримуваного значення та повідомляє нормалізовану тривалість у результаті інструмента.
## Асинхронна поведінка
-- Запуски агента на основі сеансу: `video_generate` створює фонове завдання, одразу повертає відповідь про запуск/завдання, а готове відео публікує пізніше в подальшому повідомленні агента.
-- Відстеження завдань: використовуйте `openclaw tasks list` / `openclaw tasks show `, щоб переглядати статуси генерації в черзі, у виконанні та кінцеві статуси.
-- Пробудження після завершення: OpenClaw вставляє внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати подальше повідомлення для користувача.
+- Запуски агента з підтримкою сеансів: `video_generate` створює фонове завдання, одразу повертає відповідь про запуск/завдання та пізніше надсилає готове відео в подальшому повідомленні агента.
+- Запобігання дублюванню: поки це фонове завдання все ще має стан `queued` або `running`, подальші виклики `video_generate` у тому самому сеансі повертають стан завдання замість запуску нової генерації.
+- Перевірка стану: використовуйте `action: "status"`, щоб переглянути активне відеозавдання, пов’язане з поточним сеансом, без запуску нового.
+- Відстеження завдань: використовуйте `openclaw tasks list` / `openclaw tasks show `, щоб переглядати статуси queued, running і terminal для генерації.
+- Активація після завершення: OpenClaw вставляє внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати видиме для користувача подальше повідомлення.
+- Підказка для запиту: пізніші користувацькі/ручні ходи в тому самому сеансі отримують невелику підказку під час виконання, коли завдання відео вже виконується, щоб модель не викликала `video_generate` повторно навмання.
- Резервний режим без сеансу: прямі/локальні контексти без реального сеансу агента все одно виконуються вбудовано та повертають фінальний результат відео в тому самому ході.
-## Конфігурація
+## Налаштування
### Вибір моделі
@@ -115,35 +118,35 @@ x-i18n:
}
```
-### Порядок вибору провайдерів
+### Порядок вибору провайдера
-Під час генерації відео OpenClaw пробує провайдерів у такому порядку:
+Під час генерації відео OpenClaw намагається використати провайдерів у такому порядку:
1. Параметр **`model`** з виклику інструмента (якщо агент його вказує)
-2. **`videoGenerationModel.primary`** із конфігурації
+2. **`videoGenerationModel.primary`** з конфігурації
3. **`videoGenerationModel.fallbacks`** у заданому порядку
-4. **Автовиявлення** — використовує лише типові налаштування провайдерів, підкріплені автентифікацією:
- - спочатку поточний провайдер за замовчуванням
+4. **Автовизначення** — використовує лише типові значення провайдерів, підкріплені автентифікацією:
+ - спочатку поточний типовий провайдер
- решта зареєстрованих провайдерів генерації відео в порядку id провайдера
-Якщо провайдер не спрацьовує, автоматично пробується наступний кандидат. Якщо не спрацьовують усі, помилка містить відомості про кожну спробу.
+Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо завершується помилкою все, помилка містить подробиці про кожну спробу.
## Примітки щодо провайдерів
-- Alibaba використовує асинхронну кінцеву точку відео DashScope / Model Studio і наразі вимагає віддалені URL `http(s)` для опорних ресурсів.
-- Google використовує Gemini/Veo і підтримує один опорний вхід у вигляді зображення або відео.
-- MiniMax, Together, BytePlus і fal наразі підтримують один опорний вхід у вигляді зображення.
-- OpenAI використовує нативну кінцеву точку відео і наразі за замовчуванням використовує `sora-2`.
-- Qwen підтримує опорні зображення/відео, але вхідна відеокінцева точка DashScope наразі вимагає віддалені URL `http(s)` для цих опорних даних.
-- Runway використовує нативний API асинхронних завдань з опитуванням `GET /v1/tasks/{id}` і наразі за замовчуванням використовує `gen4.5`.
-- xAI використовує нативний API відео xAI і підтримує сценарії text-to-video, image-to-video та віддалене редагування/розширення відео.
-- fal використовує потік відео fal на основі черги для довготривалих завдань замість одного блокувального запиту інференсу.
+- Alibaba використовує асинхронний відеоендпойнт DashScope / Model Studio і наразі вимагає віддалених URL `http(s)` для референсних ресурсів.
+- Google використовує Gemini/Veo і підтримує одне референсне зображення або відео.
+- MiniMax, Together, BytePlus і fal наразі підтримують одне референсне зображення.
+- OpenAI використовує нативний відеоендпойнт і наразі типово використовує `sora-2`.
+- Qwen підтримує референсні зображення/відео, але вихідний відеоендпойнт DashScope наразі вимагає для них віддалені URL `http(s)`.
+- Runway використовує нативний API асинхронних завдань з опитуванням `GET /v1/tasks/{id}` і наразі типово використовує `gen4.5`.
+- xAI використовує нативний API відео xAI і підтримує сценарії text-to-video, image-to-video, а також віддалене редагування/подовження відео.
+- fal використовує чергу fal для відео завдань із тривалим виконанням замість одного блокувального запиту інференсу.
-## Опорні вхідні дані Qwen
+## Референсні входи Qwen
-Вбудований провайдер Qwen підтримує text-to-video, а також режими з опорними зображеннями/відео, але вхідна відеокінцева точка DashScope наразі вимагає **віддалені URL `http(s)`** для опорних вхідних даних. Шляхи до локальних файлів і вивантажені буфери відхиляються одразу, а не тихо ігноруються.
+Вбудований провайдер Qwen підтримує text-to-video, а також режими з референсними зображеннями/відео, але вихідний відеоендпойнт DashScope наразі вимагає **віддалені URL `http(s)`** для референсних вхідних даних. Локальні шляхи до файлів і завантажені буфери відхиляються одразу, а не тихо ігноруються.
-## Пов’язане
+## Пов’язані матеріали
- [Огляд інструментів](/uk/tools) — усі доступні інструменти агента
- [Фонові завдання](/uk/automation/tasks) — відстеження завдань для відокремлених запусків `video_generate`
@@ -154,6 +157,6 @@ x-i18n:
- [Qwen](/uk/providers/qwen) — налаштування та обмеження, специфічні для Qwen
- [Runway](/uk/providers/runway) — налаштування Runway і поточні примітки щодо моделей/вхідних даних
- [Together AI](/uk/providers/together) — налаштування провайдера Together Wan
-- [xAI](/uk/providers/xai) — налаштування відеопровайдера Grok
-- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults) — конфігурація `videoGenerationModel`
+- [xAI](/uk/providers/xai) — налаштування провайдера відео Grok
+- [Довідник з конфігурації](/uk/gateway/configuration-reference#agent-defaults) — конфігурація `videoGenerationModel`
- [Моделі](/uk/concepts/models) — конфігурація моделей і резервне перемикання