chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-24 05:28:43 +00:00
parent d129be8634
commit 7d73ab58d0
2 changed files with 178 additions and 185 deletions

View File

@ -1,138 +1,139 @@
---
read_when:
- Ви хочете, щоб перенесення пам’яті виконувалося автоматично
- Ви хочете, щоб підвищення пам’яті виконувалося автоматично
- Ви хочете зрозуміти, що робить кожна фаза Dreaming
- Ви хочете налаштувати консолідацію, не засмічуючи `MEMORY.md`
summary: Фонова консолідація пам’яті з фазами light, deep і REM, а також із Dream Diary
- Ви хочете налаштувати консолідування, не засмічуючи `MEMORY.md`
summary: Фонове консолідування пам’яті з легкими, глибокими та REM-фазами, а також Dream Diary
title: Dreaming
x-i18n:
generated_at: "2026-04-23T20:49:49Z"
generated_at: "2026-04-24T05:27:41Z"
model: gpt-5.4
provider: openai
source_hash: 7a2a399259e1ec9db52f761308686c7d6d377fd21528b77a9057fa690802c3db
source_hash: a3c0f6ff18ac78980be07452859ec79e9a5b2ebb513c69e38eb09eff66291395
source_path: concepts/dreaming.md
workflow: 15
---
Dreaming — це фонова система консолідації пам’яті в `memory-core`.
Вона допомагає OpenClaw переносити сильні короткочасні сигнали в довготривалу пам’ять,
зберігаючи цей процес зрозумілим і придатним для перевірки.
Dreaming — це фонова система консолідування пам’яті в `memory-core`.
Вона допомагає OpenClaw переносити сильні короткострокові сигнали в стійку пам’ять, водночас
зберігаючи процес зрозумілим і придатним для перевірки.
Dreaming є **опційною функцією** і за замовчуванням вимкнена.
Dreaming є **опціональним** і за замовчуванням вимкнений.
## Що записує dreaming
## Що записує Dreaming
Dreaming зберігає два типи результатів:
Dreaming підтримує два типи виводу:
- **Машинний стан** у `memory/.dreams/` (сховище recall, сигнали phase, checkpoints ingestion, locks).
- **Зрозумілий для людини результат** у `DREAMS.md` (або наявному `dreams.md`) і необов’язкових файлах звітів phase у `memory/dreaming/<phase>/YYYY-MM-DD.md`.
- **Стан машини** у `memory/.dreams/` (сховище recall, сигнали фаз, контрольні точки інжесту, блокування).
- **Людинозрозумілий вивід** у `DREAMS.md` (або наявному `dreams.md`) і необов’язкові файли звітів фаз у `memory/dreaming/<phase>/YYYY-MM-DD.md`.
Перенесення в довготривалу пам’ять, як і раніше, записує лише в `MEMORY.md`.
Довгострокове підвищення, як і раніше, записується лише в `MEMORY.md`.
## Модель phase
## Модель фаз
Dreaming використовує три кооперативні phase:
Dreaming використовує три взаємодіючі фази:
| Phase | Призначення | Довготривалий запис |
| ----- | ------------------------------------------ | ------------------- |
| Light | Сортування й підготовка нещодавнього короткочасного матеріалу | Ні |
| Deep | Оцінювання й перенесення довготривалих кандидатів | Так (`MEMORY.md`) |
| REM | Рефлексія над темами та повторюваними ідеями | Ні |
| Фаза | Призначення | Стійкий запис |
| ----- | ----------------------------------------- | ----------------- |
| Легка | Сортує та готує нещодавній короткостроковий матеріал | Ні |
| Глибока | Оцінює та підвищує стійких кандидатів | Так (`MEMORY.md`) |
| REM | Осмислює теми та повторювані ідеї | Ні |
Ці phase є внутрішніми деталями реалізації, а не окремими
Ці фази є внутрішніми деталями реалізації, а не окремими
користувацькими «режимами».
### Phase Light
### Легка фаза
Phase Light поглинає нещодавні щоденні сигнали пам’яті та сліди recall, видаляє дублікати
й готує рядки кандидатів.
Легка фаза інжестує нещодавні щоденні сигнали пам’яті та сліди recall, прибирає дублікати
й готує рядки-кандидати.
- Зчитує дані з короткочасного стану recall, нещодавніх щоденних файлів пам’яті та відредагованих session transcript, коли вони доступні.
- Записує керований блок `## Light Sleep`, коли сховище включає вбудований результат.
- Фіксує сигнали підсилення для подальшого ранжування deep.
- Читає зі стану короткострокового recall, нещодавніх щоденних файлів пам’яті та відредагованих транскриптів сесій, якщо вони доступні.
- Записує керований блок `## Light Sleep`, коли сховище містить вбудований вивід.
- Фіксує сигнали підкріплення для подальшого глибокого ранжування.
- Ніколи не записує в `MEMORY.md`.
### Phase Deep
### Глибока фаза
Phase Deep визначає, що стане довготривалою пам’яттю.
Глибока фаза визначає, що стане довгостроковою пам’яттю.
- Ранжує кандидатів за допомогою зваженого score і порогових перевірок.
- Ранжує кандидатів за допомогою зваженого скорингу та порогових перевірок.
- Вимагає проходження `minScore`, `minRecallCount` і `minUniqueQueries`.
- Повторно гідратує уривки з актуальних щоденних файлів перед записом, тому застарілі/видалені уривки пропускаються.
- Додає перенесені записи до `MEMORY.md`.
- Перед записом повторно завантажує фрагменти з актуальних щоденних файлів, тому застарілі або видалені фрагменти пропускаються.
- Додає підвищені записи до `MEMORY.md`.
- Записує підсумок `## Deep Sleep` у `DREAMS.md` і за потреби записує `memory/dreaming/deep/YYYY-MM-DD.md`.
### Phase REM
### REM-фаза
Phase REM витягує шаблони та рефлексивні сигнали.
REM-фаза витягує шаблони та рефлексивні сигнали.
- Формує підсумки тем і рефлексій із нещодавніх короткочасних слідів.
- Записує керований блок `## REM Sleep`, коли сховище включає вбудований результат.
- Фіксує сигнали підсилення REM, які використовуються ранжуванням deep.
- Формує підсумки тем і рефлексій із нещодавніх короткострокових слідів.
- Записує керований блок `## REM Sleep`, коли сховище містить вбудований вивід.
- Фіксує сигнали підкріплення REM, які використовуються для глибокого ранжування.
- Ніколи не записує в `MEMORY.md`.
## Поглинання session transcript
## Інжест транскриптів сесій
Dreaming може поглинати відредаговані session transcript у свій корпус dreaming. Коли
transcript доступні, вони подаються у phase light разом із щоденними
Dreaming може інжестувати відредаговані транскрипти сесій у корпус Dreaming. Коли
транскрипти доступні, вони подаються в легку фазу разом із щоденними
сигналами пам’яті та слідами recall. Особистий і чутливий вміст редагується
перед поглинанням.
перед інжестом.
## Dream Diary
Dreaming також веде наративний **Dream Diary** у `DREAMS.md`.
Після того як для кожної phase накопичується достатньо матеріалу, `memory-core` виконує best-effort фоновий
цикл subagent (використовуючи типову runtime model) і додає короткий запис щоденника.
Після того як для кожної фази назбирається достатньо матеріалу, `memory-core` запускає фоновий
підхід subagent у режимі best-effort (з використанням типової runtime-моделі)
і додає короткий запис щоденника.
Цей щоденник призначений для читання людиною в UI Dreams, а не як джерело перенесення.
Артефакти щоденника/звіту, згенеровані dreaming, виключаються з короткочасного
перенесення. Лише grounded уривки пам’яті можуть переноситися в
`MEMORY.md`.
Цей щоденник призначений для читання людиною в інтерфейсі Dreams, а не як джерело підвищення.
Артефакти щоденника/звіту, згенеровані Dreaming, виключаються з короткострокового
підвищення. До підвищення в
`MEMORY.md` можуть потрапити лише прив’язані до джерел фрагменти пам’яті.
Також існує grounded lane історичного backfill для перевірки та відновлення:
Також є прив’язана до джерел історична смуга backfill для перевірки та відновлення:
- `memory rem-harness --path ... --grounded` показує grounded-вивід щоденника з історичних нотаток `YYYY-MM-DD.md`.
- `memory rem-backfill --path ...` записує оборотні grounded-записи щоденника в `DREAMS.md`.
- `memory rem-backfill --path ... --stage-short-term` додає grounded довготривалих кандидатів до того самого short-term evidence store, який уже використовує звичайна phase deep.
- `memory rem-backfill --rollback` і `--rollback-short-term` видаляють ці staged backfill-артефакти, не зачіпаючи звичайні записи щоденника або активний короткочасний recall.
- `memory rem-harness --path ... --grounded` попередньо переглядає прив’язаний до джерел вивід щоденника з історичних нотаток `YYYY-MM-DD.md`.
- `memory rem-backfill --path ...` записує оборотні прив’язані до джерел записи щоденника в `DREAMS.md`.
- `memory rem-backfill --path ... --stage-short-term` поміщає прив’язаних до джерел стійких кандидатів у те саме сховище короткострокових доказів, яке вже використовує звичайна глибока фаза.
- `memory rem-backfill --rollback` і `--rollback-short-term` видаляють ці staged-артефакти backfill, не зачіпаючи звичайні записи щоденника або живий короткостроковий recall.
Control UI надає той самий процес backfill/reset щоденника, тож ви можете перевіряти
результати в scene Dreams, перш ніж вирішити, чи заслуговують grounded-кандидати
на перенесення. Scene також показує окремий grounded lane, щоб ви могли бачити,
які staged short-term записи походять з історичного replay, які перенесені
елементи були ініційовані grounded-проходом, і очищати лише grounded-only staged записи, не
торкаючись звичайного активного short-term стану.
Інтерфейс Control надає той самий процес backfill/скидання щоденника, щоб ви могли перевірити
результати в сцені Dreams, перш ніж вирішувати, чи заслуговують прив’язані до джерел кандидати
на підвищення. Сцена також показує окрему прив’язану до джерел смугу, щоб ви могли бачити,
які staged-короткострокові записи надійшли з історичного відтворення, які підвищені
елементи були спричинені прив’язкою до джерел, а також очищати лише staged-записи, що належать
лише до прив’язаних до джерел, не зачіпаючи звичайний живий короткостроковий стан.
## Сигнали ранжування deep
## Сигнали глибокого ранжування
Ранжування deep використовує шість зважених базових сигналів плюс підсилення phase:
Глибоке ранжування використовує шість зважених базових сигналів плюс підкріплення фаз:
| Сигнал | Вага | Опис |
| ------------------- | ---- | ------------------------------------------------- |
| Frequency | 0.24 | Скільки короткочасних сигналів накопичив запис |
| Relevance | 0.30 | Середня якість отримання для запису |
| Query diversity | 0.15 | Різні контексти запитів/днів, у яких він з’являвся |
| Recency | 0.15 | Score свіжості з часовим згасанням |
| Consolidation | 0.10 | Сила повторюваності впродовж кількох днів |
| Conceptual richness | 0.06 | Щільність concept-tag із уривка/шляху |
| Частота | 0.24 | Скільки короткострокових сигналів накопичив запис |
| Релевантність | 0.30 | Середня якість отримання для запису |
| Різноманітність запитів | 0.15 | Різні контексти запитів/днів, у яких він з’являвся |
| Нещодавність | 0.15 | Оцінка свіжості з часовим згасанням |
| Консолідація | 0.10 | Сила повторюваності протягом кількох днів |
| Концептуальна насиченість | 0.06 | Щільність concept-тегів за фрагментом/шляхом |
Попадання у phase Light і REM додають невелике підсилення зі згасанням за часом із
Влучання легкої та REM-фаз додають невелике підсилення із часовим згасанням із
`memory/.dreams/phase-signals.json`.
## Планування
## Розклад
Коли функцію ввімкнено, `memory-core` автоматично керує одним cron-завданням для повного проходу dreaming.
Кожен прохід запускає phase в такому порядку: light -> REM -> deep.
Коли цю функцію ввімкнено, `memory-core` автоматично керує одним Cron-завданням для повного
циклу Dreaming. Кожен цикл запускає фази по порядку: light -> REM -> deep.
Поведінка типового розкладу:
Типова поведінка частоти:
| Налаштування | Значення за замовчуванням |
| ------------------- | ------------------------- |
| `dreaming.frequency` | `0 3 * * *` |
| Налаштування | Типове значення |
| -------------------- | ----------- |
| `dreaming.frequency` | `0 3 * * *` |
## Швидкий старт
Увімкнення dreaming:
Увімкніть Dreaming:
```json
{
@ -150,7 +151,7 @@ Control UI надає той самий процес backfill/reset щоденн
}
```
Увімкнення dreaming із власним розкладом проходу:
Увімкніть Dreaming із власною частотою циклу:
```json
{
@ -181,7 +182,7 @@ Control UI надає той самий процес backfill/reset щоденн
## Робочий процес CLI
Використовуйте CLI перенесення для попереднього перегляду або ручного застосування:
Використовуйте підвищення через CLI для попереднього перегляду або ручного застосування:
```bash
openclaw memory promote
@ -190,64 +191,52 @@ openclaw memory promote --limit 5
openclaw memory status --deep
```
Ручний `memory promote` за замовчуванням використовує пороги phase deep, якщо їх не перевизначено
прапорцями CLI.
Ручний `memory promote` типово використовує пороги глибокої фази, якщо їх не перевизначено
через прапорці CLI.
Пояснити, чому конкретний кандидат буде або не буде перенесений:
Поясніть, чому конкретний кандидат буде або не буде підвищений:
```bash
openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
```
Попередньо переглянути REM reflections, candidate truths і результат deep promotion без
запису будь-чого:
Попередньо перегляньте REM-рефлексії, candidate truths і вивід глибокого підвищення, нічого
не записуючи:
```bash
openclaw memory rem-harness
openclaw memory rem-harness --json
```
## Ключові типові параметри
## Ключові типові значення
Усі налаштування знаходяться в `plugins.entries.memory-core.config.dreaming`.
Усі налаштування розміщені в `plugins.entries.memory-core.config.dreaming`.
| Ключ | Значення за замовчуванням |
| ----------- | ------------------------- |
| `enabled` | `false` |
| `frequency` | `0 3 * * *` |
| Ключ | Типове значення |
| ----------- | ----------- |
| `enabled` | `false` |
| `frequency` | `0 3 * * *` |
Політика phase, пороги та поведінка сховища — це внутрішні деталі реалізації
(а не користувацька конфігурація).
Політика фаз, пороги та поведінка сховища — це внутрішні деталі реалізації
(не користувацька конфігурація).
Повний перелік ключів див. у [довіднику конфігурації Memory](/uk/reference/memory-config#dreaming).
Повний список ключів див. у [довіднику з конфігурації Memory](/uk/reference/memory-config#dreaming).
## UI Dreams
## Інтерфейс Dreams
Коли функцію ввімкнено, вкладка **Dreams** у Gateway показує:
Коли функцію ввімкнено, вкладка Gateway **Dreams** показує:
- поточний стан увімкнення dreaming
- статус на рівні phase і наявність керованого sweep
- кількість short-term, grounded, signal і promoted-today
- поточний стан увімкнення Dreaming
- стан на рівні фаз і наявність керованого циклу
- кількість короткострокових, прив’язаних до джерел, сигнальних і підвищених за сьогодні записів
- час наступного запланованого запуску
- окремий grounded Scene lane для staged-записів історичного replay
- розгортуваний reader Dream Diary на основі `doctor.memory.dreamDiary`
## Усунення несправностей
### Dreaming ніколи не запускається (status показує blocked)
Керований dreaming cron спирається на heartbeat агента за замовчуванням. Якщо heartbeat не спрацьовує для цього агента, cron ставить системну подію в чергу, яку ніхто не обробляє, і dreaming мовчки не запускається. І `openclaw memory status`, і `/dreaming status` у такому разі покажуть `blocked` і вкажуть агента, чий heartbeat є причиною блокування.
Дві поширені причини:
- Інший агент оголошує явний блок `heartbeat:`. Коли будь-який запис у `agents.list` має власний блок `heartbeat`, heartbeat працює лише для цих агентів — значення за замовчуванням перестають застосовуватися до всіх інших, тож агент за замовчуванням може замовкнути. Перенесіть налаштування heartbeat до `agents.defaults.heartbeat` або додайте явний блок `heartbeat` для агента за замовчуванням. Див. [Область дії та пріоритет](/uk/gateway/heartbeat#scope-and-precedence).
- `heartbeat.every` дорівнює `0`, порожнє або не піддається розбору. Cron не має інтервалу, за яким можна планувати, тому heartbeat фактично вимкнено. Установіть `every` на додатну тривалість, наприклад `30m`. Див. [Типові параметри](/uk/gateway/heartbeat#defaults).
- окрему смугу сцени з прив’язкою до джерел для staged-записів історичного відтворення
- розгортаний читач Dream Diary на основі `doctor.memory.dreamDiary`
## Пов’язане
- [Heartbeat](/uk/gateway/heartbeat)
- [Memory](/uk/concepts/memory)
- [Memory Search](/uk/concepts/memory-search)
- [memory CLI](/uk/cli/memory)
- [Довідник конфігурації Memory](/uk/reference/memory-config)
- [Пам’ять](/uk/concepts/memory)
- [Пошук у пам’яті](/uk/concepts/memory-search)
- [CLI memory](/uk/cli/memory)
- [Довідник з конфігурації Memory](/uk/reference/memory-config)

View File

@ -1,14 +1,14 @@
---
read_when:
- Ви хочете, щоб агент OpenClaw приєднався до дзвінка Google Meet
- Ви хочете, щоб агент OpenClaw приєднався до виклику Google Meet
- Ви налаштовуєте Chrome, вузол Chrome або Twilio як транспорт Google Meet
summary: 'Plugin Google Meet: приєднання до явних URL Meet через Chrome або Twilio з типовими параметрами для голосу в реальному часі'
summary: 'Plugin Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими налаштуваннями голосу в реальному часі'
title: Plugin Google Meet
x-i18n:
generated_at: "2026-04-24T05:21:37Z"
generated_at: "2026-04-24T05:27:41Z"
model: gpt-5.4
provider: openai
source_hash: 055419591c83130e64303f76af666da60d7623f358d1e2a1f2f9d8cf89f5ce85
source_hash: ab439b777e3043cc647a29e8e17b2794d14f48deceaadf8f81a014dd44583e23
source_path: plugins/google-meet.md
workflow: 15
---
@ -19,32 +19,32 @@ x-i18n:
Plugin є навмисно явним:
- Він приєднується лише за явним URL `https://meet.google.com/...`.
- Голос `realtime` є типовим режимом.
- Голос у режимі реального часу може повертатися до повноцінного агента OpenClaw, коли потрібні глибші міркування або інструменти.
- Він приєднується лише до явної URL-адреси `https://meet.google.com/...`.
- Голос у режимі `realtime` є режимом за замовчуванням.
- Голос у режимі realtime може звертатися назад до повного агента OpenClaw, коли потрібні глибші міркування або інструменти.
- Автентифікація починається з особистого Google OAuth або вже виконаного входу в профіль Chrome.
- Автоматичного оголошення згоди немає.
- Типовим аудіобекендом Chrome є `BlackHole 2ch`.
- Chrome може працювати локально або на спареному вузлі.
- Twilio приймає номер для дозвону та необов’язкову PIN-код або DTMF-послідовність.
- Типовий аудіобекенд Chrome — `BlackHole 2ch`.
- Chrome може працювати локально або на спареному хості Node.
- Twilio приймає номер для дозвону та необов’язкову послідовність PIN або DTMF.
- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших робочих процесів телеконференцій агента.
## Швидкий старт
Установіть локальні аудіозалежності та переконайтеся, що постачальник realtime може використовувати OpenAI:
Установіть локальні аудіозалежності та переконайтеся, що провайдер realtime може використовувати OpenAI:
```bash
brew install blackhole-2ch sox
export OPENAI_API_KEY=sk-...
```
`blackhole-2ch` установлює віртуальний аудіопристрій `BlackHole 2ch`. Інсталятор Homebrew вимагає перезавантаження, перш ніж macOS зробить пристрій доступним:
`blackhole-2ch` установлює віртуальний аудіопристрій `BlackHole 2ch`. Інсталятор Homebrew вимагає перезавантаження, перш ніж macOS покаже цей пристрій:
```bash
sudo reboot
```
Після перезавантаження перевірте обидві частини:
Після перезавантаження перевірте обидві складові:
```bash
system_profiler SPAudioDataType | grep -i BlackHole
@ -87,17 +87,17 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij
}
```
Chrome приєднується як профіль Chrome із виконаним входом. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого дуплексного аудіо використовуйте окремі віртуальні пристрої або граф на кшталт Loopback; одного пристрою BlackHole достатньо для першого smoke-тесту, але може з’являтися ехо.
Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двостороннього аудіо використовуйте окремі віртуальні пристрої або граф у стилі Loopback; одного пристрою BlackHole достатньо для першого smoke-тесту, але може виникати луна.
### Локальний Gateway + Parallels Chrome
### Локальний Gateway + Chrome у Parallels
Вам **не потрібен** повний Gateway OpenClaw або ключ API моделі всередині macOS VM лише для того, щоб Chrome працював у VM. Запустіть Gateway і агент локально, а потім запустіть вузол у VM. Увімкніть вбудований Plugin у VM один раз, щоб вузол рекламував команду Chrome:
Вам **не** потрібні повний Gateway OpenClaw або API-ключ моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway та агента локально, а потім запустіть хост Node у VM. Один раз увімкніть вбудований Plugin у VM, щоб Node рекламував команду Chrome:
Що де працює:
- Хост Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, постачальник realtime та конфігурація Plugin Google Meet.
- macOS VM у Parallels: CLI/вузол OpenClaw, Google Chrome, SoX, BlackHole 2ch і профіль Chrome із виконаним входом у Google.
- Не потрібно у VM: служба Gateway, конфігурація агента, ключ OpenAI/GPT або налаштування постачальника моделі.
- Хост Gateway: Gateway OpenClaw, робочий простір агента, ключі моделі/API, провайдер realtime і конфігурація Plugin Google Meet.
- macOS VM у Parallels: CLI OpenClaw/хост Node, Google Chrome, SoX, BlackHole 2ch і профіль Chrome із виконаним входом у Google.
- Не потрібно у VM: сервіс Gateway, конфігурація агента, ключ OpenAI/GPT або налаштування провайдера моделі.
Установіть залежності у VM:
@ -105,7 +105,7 @@ Chrome приєднується як профіль Chrome із виконани
brew install blackhole-2ch sox
```
Перезавантажте VM після встановлення BlackHole, щоб macOS зробила `BlackHole 2ch` доступним:
Перезавантажте VM після встановлення BlackHole, щоб macOS показала `BlackHole 2ch`:
```bash
sudo reboot
@ -124,20 +124,20 @@ command -v rec play
openclaw plugins enable google-meet
```
Запустіть вузол у VM:
Запустіть хост Node у VM:
```bash
openclaw node run --host <gateway-host> --port 18789 --display-name parallels-macos
```
Якщо `<gateway-host>` — це LAN IP і ви не використовуєте TLS, вузол відхиляє незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі:
Якщо `<gateway-host>` — це LAN IP і ви не використовуєте TLS, Node відхиляє незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі:
```bash
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
openclaw node run --host <gateway-lan-ip> --port 18789 --display-name parallels-macos
```
Використовуйте ту саму змінну середовища, коли встановлюєте вузол як LaunchAgent:
Використовуйте ту саму змінну середовища під час встановлення Node як LaunchAgent:
```bash
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
@ -145,23 +145,28 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
openclaw node restart
```
Схваліть вузол із хоста Gateway:
Схваліть Node з хоста Gateway:
```bash
openclaw devices list
openclaw devices approve <requestId>
```
Підтвердьте, що Gateway бачить вузол і що він рекламує `googlemeet.chrome`:
Підтвердьте, що Gateway бачить Node і що він рекламує `googlemeet.chrome`:
```bash
openclaw nodes status
```
Спрямуйте Meet через цей вузол на хості Gateway:
Спрямуйте Meet через цей Node на хості Gateway:
```json5
{
gateway: {
nodes: {
allowCommands: ["googlemeet.chrome"],
},
},
plugins: {
entries: {
"google-meet": {
@ -178,48 +183,48 @@ openclaw nodes status
}
```
Тепер приєднуйтеся звичайним способом із хоста Gateway:
Тепер приєднуйтеся як звичайно з хоста Gateway:
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij
```
або попросіть агента використати інструмент `google_meet` з `transport: "chrome-node"`.
або попросіть агента використати інструмент `google_meet` із `transport: "chrome-node"`.
Якщо `chromeNode.node` пропущено, OpenClaw виконує автоматичний вибір лише тоді, коли рівно один підключений вузол рекламує `googlemeet.chrome`. Якщо підключено кілька придатних вузлів, установіть `chromeNode.node` на id вузла, відображуване ім’я або віддалену IP-адресу.
Якщо `chromeNode.node` пропущено, OpenClaw автоматично вибирає Node лише тоді, коли рівно один підключений Node рекламує `googlemeet.chrome`. Якщо підключено кілька сумісних Node, задайте `chromeNode.node` як id Node, відображуване ім’я або віддалену IP-адресу.
Поширені перевірки збоїв:
- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, схваліть спарювання та переконайтеся, що у VM було виконано `openclaw plugins enable google-meet`.
- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, схваліть спарювання та переконайтеся, що у VM було виконано `openclaw plugins enable google-meet`. Також підтвердьте, що хост Gateway дозволяє команду Node через `gateway.nodes.allowCommands: ["googlemeet.chrome"]`.
- `BlackHole 2ch audio device not found on the node`: установіть `blackhole-2ch` у VM і перезавантажте VM.
- Chrome відкривається, але не може приєднатися: увійдіть у Chrome всередині VM і підтвердьте, що цей профіль може вручну приєднатися до URL Meet.
- Немає аудіо: у Meet спрямовуйте мікрофон/динамік через шлях віртуального аудіопристрою, який використовує OpenClaw; використовуйте окремі віртуальні пристрої або маршрутизацію на кшталт Loopback для чистого дуплексного аудіо.
- Chrome відкривається, але не може приєднатися: увійдіть у Chrome всередині VM і підтвердьте, що цей профіль може вручну приєднатися за URL-адресою Meet.
- Немає звуку: у Meet спрямовуйте мікрофон/динамік через шлях віртуального аудіопристрою, який використовує OpenClaw; використовуйте окремі віртуальні пристрої або маршрутизацію у стилі Loopback для чистого двостороннього аудіо.
## Примітки щодо встановлення
Типовий режим Chrome realtime використовує два зовнішні інструменти:
Типовий режим realtime для Chrome використовує два зовнішні інструменти:
- `sox`: утиліта командного рядка для аудіо. Plugin використовує її команди `rec` і `play` для типового аудіомоста 8 kHz G.711 mu-law.
- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який Chrome/Meet може маршрутизувати аудіо.
- `sox`: утиліта командного рядка для роботи з аудіо. Plugin використовує її команди `rec` і `play` для типового аудіомоста 8 кГц G.711 mu-law.
- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який можна маршрутизувати Chrome/Meet.
OpenClaw не постачає та не розповсюджує жоден із цих пакетів у комплекті. У документації користувачам пропонується встановлювати їх як залежності хоста через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole — GPL-3.0. Якщо ви збираєте інсталятор або appliance, який постачає BlackHole разом з OpenClaw, перегляньте умови ліцензування BlackHole від початкового постачальника або отримайте окрему ліцензію від Existential Audio.
OpenClaw не постачає в комплекті та не розповсюджує жоден із цих пакетів. У документації користувачам пропонується встановити їх як залежності хоста через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole — GPL-3.0. Якщо ви збираєте інсталятор або appliance, що постачається з BlackHole разом з OpenClaw, перегляньте умови ліцензування BlackHole в оригінальному проєкті або отримайте окрему ліцензію від Existential Audio.
## Транспорти
### Chrome
Транспорт Chrome відкриває URL Meet у Google Chrome і приєднується як профіль Chrome із виконаним входом. У macOS Plugin перевіряє наявність `BlackHole 2ch` перед запуском. Якщо налаштовано, він також виконує команду перевірки працездатності аудіомоста та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на хості Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на спареному вузлі, наприклад у macOS VM Parallels.
Транспорт Chrome відкриває URL-адресу Meet у Google Chrome і приєднується як профіль Chrome, у якому виконано вхід. У macOS Plugin перед запуском перевіряє наявність `BlackHole 2ch`. Якщо налаштовано, він також запускає команду перевірки стану аудіомоста та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на хості Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на спареному Node, наприклад у macOS VM Parallels.
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome
openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome-node
```
Спрямовуйте аудіо мікрофона та динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого приєднання без аудіошляху.
Спрямуйте аудіо мікрофона й динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування, а не тихим приєднанням без аудіошляху.
### Twilio
Транспорт Twilio — це суворий план набору, делегований Plugin Voice Call. Він не аналізує сторінки Meet, щоб знайти телефонні номери.
Транспорт Twilio — це строгий план дозвону, делегований Plugin Voice Call. Він не аналізує сторінки Meet у пошуку телефонних номерів.
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
@ -237,17 +242,17 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
--dtmf-sequence ww123456#
```
## OAuth і preflight
## OAuth і попередня перевірка
Доступ до Google Meet Media API спочатку використовує особистий OAuth-клієнт. Налаштуйте `oauth.clientId` і за потреби `oauth.clientSecret`, а потім виконайте:
Доступ до Google Meet Media API спочатку використовує особистий OAuth-клієнт. Налаштуйте `oauth.clientId` і, за потреби, `oauth.clientSecret`, а потім виконайте:
```bash
openclaw googlemeet auth login --json
```
Команда виводить блок конфігурації `oauth` із токеном оновлення. Вона використовує PKCE, localhost callback на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`.
Команда виводить блок конфігурації `oauth` із токеном оновлення. Вона використовує PKCE, callback localhost на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`.
Ці змінні середовища приймаються як запасні варіанти:
Як резервні варіанти приймаються такі змінні середовища:
- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID`
- `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` або `GOOGLE_MEET_CLIENT_SECRET`
@ -258,30 +263,30 @@ openclaw googlemeet auth login --json
- `OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING` або `GOOGLE_MEET_DEFAULT_MEETING`
- `OPENCLAW_GOOGLE_MEET_PREVIEW_ACK` або `GOOGLE_MEET_PREVIEW_ACK`
Розв’яжіть URL Meet, код або `spaces/{id}` через `spaces.get`:
Розв’яжіть URL-адресу Meet, код або `spaces/{id}` через `spaces.get`:
```bash
openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij
```
Запустіть preflight перед роботою з медіа:
Перед роботою з медіа виконайте попередню перевірку:
```bash
openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij
```
Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, OAuth principal і учасники зустрічі зареєстровані в Google Workspace Developer Preview Program для Meet media APIs.
Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, суб’єкт OAuth і учасники зустрічі зареєстровані в Google Workspace Developer Preview Program для Meet media APIs.
## Конфігурація
Для поширеного шляху Chrome realtime потрібні лише увімкнений Plugin, BlackHole, SoX і ключ OpenAI:
Поширеному режиму realtime для Chrome потрібні лише увімкнений Plugin, BlackHole, SoX і ключ OpenAI:
```bash
brew install blackhole-2ch sox
export OPENAI_API_KEY=sk-...
```
Установіть конфігурацію Plugin у `plugins.entries.google-meet.config`:
Задайте конфігурацію Plugin у `plugins.entries.google-meet.config`:
```json5
{
@ -300,10 +305,10 @@ export OPENAI_API_KEY=sk-...
- `defaultTransport: "chrome"`
- `defaultMode: "realtime"`
- `chromeNode.node`: необов’язковий id/ім’я/IP вузла для `chrome-node`
- `chromeNode.node`: необов’язковий id/ім’я/IP Node для `chrome-node`
- `chrome.audioBackend: "blackhole-2ch"`
- `chrome.audioInputCommand`: команда SoX `rec`, що записує аудіо 8 kHz G.711 mu-law у stdout
- `chrome.audioOutputCommand`: команда SoX `play`, що читає аудіо 8 kHz G.711 mu-law зі stdin
- `chrome.audioInputCommand`: команда SoX `rec`, що записує аудіо 8 кГц G.711 mu-law у stdout
- `chrome.audioOutputCommand`: команда SoX `play`, що читає аудіо 8 кГц G.711 mu-law зі stdin
- `realtime.provider: "openai"`
- `realtime.toolPolicy: "safe-read-only"`
- `realtime.instructions`: короткі усні відповіді, з
@ -356,40 +361,39 @@ export OPENAI_API_KEY=sk-...
}
```
Використовуйте `transport: "chrome"`, коли Chrome працює на хості Gateway. Використовуйте `transport: "chrome-node"`, коли Chrome працює на спареному вузлі, наприклад у Parallels VM. В обох випадках модель realtime і `openclaw_agent_consult` працюють на хості Gateway, тому облікові дані моделі залишаються там.
Використовуйте `transport: "chrome"`, коли Chrome працює на хості Gateway. Використовуйте `transport: "chrome-node"`, коли Chrome працює на спареному Node, наприклад у Parallels VM. В обох випадках модель realtime і `openclaw_agent_consult` працюють на хості Gateway, тому облікові дані моделі залишаються там.
Використовуйте `action: "status"`, щоб перелічити активні сесії або переглянути ID сесії. Використовуйте `action: "leave"`, щоб позначити сесію як завершену.
Використовуйте `action: "status"`, щоб перелічити активні сесії або перевірити id сесії. Використовуйте `action: "leave"`, щоб позначити сесію як завершену.
## Консультація агента в режимі реального часу
## Консультація агента в realtime
Режим Chrome realtime оптимізовано для живого голосового циклу. Постачальник голосу realtime чує аудіо зустрічі та говорить через налаштований аудіоміст. Коли моделі realtime потрібні глибші міркування, поточна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
Режим realtime для Chrome оптимізовано для живого голосового циклу. Провайдер голосу realtime чує аудіо зустрічі та говорить через налаштований аудіоміст. Коли моделі realtime потрібні глибші міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з контекстом недавньої транскрипції зустрічі й повертає стислу усну відповідь до голосової сесії realtime. Потім голосова модель може озвучити цю відповідь назад у зустріч.
Інструмент consult запускає за лаштунками звичайного агента OpenClaw із контекстом недавньої стенограми зустрічі та повертає стислу усну відповідь до голосової сесії realtime. Потім голосова модель може озвучити цю відповідь назад у зустріч.
`realtime.toolPolicy` керує запуском консультації:
`realtime.toolPolicy` керує запуском consult:
- `safe-read-only`: надати інструмент консультації та обмежити звичайного агента інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`.
- `owner`: надати інструмент консультації та дозволити звичайному агенту використовувати звичайну політику інструментів агента.
- `none`: не надавати інструмент консультації голосовій моделі realtime.
- `safe-read-only`: надавати інструмент consult і обмежувати звичайного агента інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`.
- `owner`: надавати інструмент consult і дозволяти звичайному агенту використовувати звичайну політику інструментів агента.
- `none`: не надавати інструмент consult голосовій моделі realtime.
Ключ сесії консультації обмежено на рівні кожної сесії Meet, тому повторні виклики консультації можуть повторно використовувати попередній контекст консультації під час тієї самої зустрічі.
Ключ сесії consult має область дії в межах сесії Meet, тому подальші виклики consult можуть повторно використовувати попередній контекст consult протягом тієї самої зустрічі.
## Примітки
Офіційний media API Google Meet орієнтований на приймання, тому для мовлення в дзвінок Meet усе ще потрібен шлях участі як учасника. Цей Plugin зберігає цю межу видимою:
Chrome обробляє участь через браузер і локальну маршрутизацію аудіо; Twilio обробляє участь через телефонний дозвін.
Офіційний media API Google Meet орієнтований на отримання, тому для мовлення в дзвінок Meet усе ще потрібен шлях учасника. Цей Plugin зберігає цю межу видимою: Chrome обробляє участь через браузер і локальну маршрутизацію аудіо; Twilio обробляє участь через телефонний дозвін.
Режиму Chrome realtime потрібно одне з такого:
Режиму realtime для Chrome потрібен один із варіантів:
- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує мостом моделі realtime і передає аудіо 8 kHz G.711 mu-law між цими командами та вибраним постачальником голосу realtime.
- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона.
- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує мостом моделі realtime і передає аудіо 8 кГц G.711 mu-law між цими командами та вибраним провайдером голосу realtime.
- `chrome.audioBridgeCommand`: зовнішня команда моста керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона.
Для чистого дуплексного аудіо спрямовуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв на кшталт Loopback. Один спільний пристрій BlackHole може повертати голоси інших учасників назад у дзвінок.
Для чистого двостороннього аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв у стилі Loopback. Один спільний пристрій BlackHole може повертати голоси інших учасників назад у дзвінок.
`googlemeet leave` зупиняє аудіоміст realtime на основі пари команд для сесій Chrome. Для сесій Twilio, делегованих через Plugin Voice Call, він також завершує базовий голосовий виклик.
`googlemeet leave` зупиняє realtime аудіоміст пари команд для сесій Chrome. Для сесій Twilio, делегованих через Plugin Voice Call, він також завершує базовий голосовий виклик.
## Пов’язане
- [Plugin Voice call](/uk/plugins/voice-call)
- [Режим Talk](/uk/nodes/talk)
- [Plugin Voice Call](/uk/plugins/voice-call)
- [Режим розмови](/uk/nodes/talk)
- [Створення Plugin](/uk/plugins/building-plugins)