chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-24 21:17:25 +00:00
parent 760cae3d80
commit 14c70bed7c

View File

@ -1,39 +1,41 @@
---
read_when:
- Ви хочете, щоб агент OpenClaw приєднався до дзвінка Google Meet
- Ви налаштовуєте Chrome, Node Chrome або Twilio як транспорт Google Meet
summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими параметрами голосового зв’язку в реальному часі'
- Ви хочете, щоб агент OpenClaw приєднався до виклику Google Meet
- Ви хочете, щоб агент OpenClaw створив новий виклик Google Meet
- Ви налаштовуєте Chrome, вузол Chrome або Twilio як транспорт Google Meet
summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими налаштуваннями голосу в реальному часі'
title: Плагін Google Meet
x-i18n:
generated_at: "2026-04-24T19:55:51Z"
generated_at: "2026-04-24T21:15:37Z"
model: gpt-5.4
provider: openai
source_hash: 08d1bc95465cc1a6063d5ef6707babf69d16f7f244bd4a9e88a28e3f7a62b2f9
source_hash: 8c109e07170601a81f1802bcfb1477d82ff22d69966f73c7811d4c158a1854d7
source_path: plugins/google-meet.md
workflow: 15
---
Підтримка учасника Google Meet для OpenClaw — Plugin є навмисно явним за дизайном:
Підтримка учасників Google Meet для OpenClaw — плагін навмисно зроблено явним:
- Він приєднується лише за явною URL-адресою `https://meet.google.com/...`.
- Голосовий режим `realtime` є типовим режимом.
- Голосовий режим у реальному часі може звертатися назад до повного агента OpenClaw, коли потрібні глибші міркування або інструменти.
- Агенти вибирають поведінку приєднання за допомогою `mode`: використовуйте `realtime` для живого прослуховування/відповіді голосом або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту реального часу.
- Автентифікація починається з персонального Google OAuth або вже виконаного входу в профіль Chrome.
- Він приєднується лише до явного URL `https://meet.google.com/...`.
- Він може створити новий простір Meet через API Google Meet, а потім приєднатися за поверненим URL.
- `realtime` — це типовий режим голосу.
- Голос у режимі реального часу може повертатися до повного агента OpenClaw, коли потрібні глибше міркування або інструменти.
- Агенти вибирають поведінку приєднання через `mode`: використовуйте `realtime` для живого прослуховування/відповіді голосом або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту реального часу.
- Автентифікація починається як особистий Google OAuth або вже виконаний вхід у профіль Chrome.
- Автоматичного оголошення згоди немає.
- Типовим аудіобекендом Chrome є `BlackHole 2ch`.
- Chrome може працювати локально або на підключеному вузлі host.
- Twilio приймає номер для дзвінка плюс необов’язковий PIN або послідовність DTMF.
- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших сценаріїв агентської телеконференції.
- Типовий аудіобекенд Chrome — `BlackHole 2ch`.
- Chrome може працювати локально або на під’єднаному вузлі.
- Twilio приймає номер для дозвону та необов’язковий PIN або послідовність DTMF.
- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших сценаріїв телеконференцій агента.
## Швидкий старт
Установіть локальні аудіозалежності та налаштуйте постачальника голосу в реальному часі для бекенда. OpenAI є типовим; Google Gemini Live також працює з `realtime.provider: "google"`:
Установіть локальні аудіозалежності та налаштуйте постачальника голосу реального часу для бекенду. Типовим є OpenAI; Google Gemini Live також працює з `realtime.provider: "google"`:
```bash
brew install blackhole-2ch sox
export OPENAI_API_KEY=sk-...
# or
# або
export GEMINI_API_KEY=...
```
@ -71,7 +73,9 @@ command -v rec play
openclaw googlemeet setup
```
Вивід налаштування призначений для читання агентом. Він повідомляє про профіль Chrome, аудіоміст, прив’язку до Node, відкладений вступ у режимі реального часу, а також, коли налаштовано делегування Twilio, чи готові Plugin `voice-call` і облікові дані Twilio. Будь-яку перевірку `ok: false` слід вважати блокувальним фактором перед тим, як просити агента приєднатися. Використовуйте `openclaw googlemeet setup --json` для скриптів або машинозчитуваного виводу.
Вивід налаштування призначено для читання агентом. Він повідомляє про профіль Chrome, аудіоміст, закріплення вузла, відкладений вступ у режимі реального часу та, якщо налаштовано делегування Twilio, чи готові плагін `voice-call` і облікові дані Twilio.
Вважайте будь-яку перевірку `ok: false` блокером, перш ніж просити агента приєднатися.
Для скриптів або машинозчитуваного виводу використовуйте `openclaw googlemeet setup --json`.
Приєднайтеся до зустрічі:
@ -90,18 +94,42 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij
}
```
Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це не запускає двонапрямний міст моделі реального часу, тому він не відповідатиме голосом у зустрічі.
Створіть нову зустріч, а потім приєднайтеся до неї:
Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або граф типу Loopback; одного пристрою BlackHole достатньо для першого smoke test, але може бути луна.
```bash
openclaw googlemeet create
openclaw googlemeet join https://meet.google.com/new-abcd-xyz --transport chrome-node
```
Або скажіть агенту: «Створи Google Meet, приєднайся до нього з голосом у режимі реального часу і надішли мені посилання». Агент має викликати `google_meet` з `action: "create"`, скопіювати повернений `meetingUri`, а потім викликати `google_meet` з `action: "join"` і цим URL.
```json
{
"action": "create"
}
```
```json
{
"action": "join",
"url": "https://meet.google.com/new-abcd-xyz",
"transport": "chrome-node",
"mode": "realtime"
}
```
Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це не запускає двобічний міст моделі реального часу, тому вона не буде відповідати голосом у зустрічі.
Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або граф у стилі Loopback; одного пристрою BlackHole достатньо для першого smoke-тесту, але він може створювати відлуння.
### Локальний Gateway + Parallels Chrome
Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть вузол host у VM. Один раз увімкніть у VM вбудований Plugin, щоб вузол рекламував команду Chrome:
Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть вузол у VM. Увімкніть вбудований плагін у VM один раз, щоб вузол рекламував команду Chrome:
Що де працює:
- Host Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, постачальник реального часу та конфігурація Plugin Google Meet.
- Parallels macOS VM: CLI/вузол host OpenClaw, Google Chrome, SoX, BlackHole 2ch і профіль Chrome з виконаним входом у Google.
- Хост Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, постачальник режиму реального часу та конфігурація плагіна Google Meet.
- macOS VM у Parallels: CLI/node host OpenClaw, Google Chrome, SoX, BlackHole 2ch і профіль Chrome з виконаним входом у Google.
- Не потрібно у VM: служба Gateway, конфігурація агента, ключ OpenAI/GPT або налаштування постачальника моделі.
Установіть залежності у VM:
@ -129,20 +157,20 @@ command -v rec play
openclaw plugins enable google-meet
```
Запустіть вузол host у VM:
Запустіть вузол у VM:
```bash
openclaw node run --host <gateway-host> --port 18789 --display-name parallels-macos
```
Якщо `<gateway-host>` — це IP-адреса LAN і ви не використовуєте TLS, вузол відхилить незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі:
Якщо `<gateway-host>` — це IP-адреса LAN і ви не використовуєте TLS, вузол відхиляє незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі:
```bash
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
openclaw node run --host <gateway-lan-ip> --port 18789 --display-name parallels-macos
```
Використовуйте ту саму змінну середовища під час встановлення вузла як LaunchAgent:
Використовуйте ту саму змінну середовища, коли встановлюєте вузол як LaunchAgent:
```bash
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
@ -152,20 +180,20 @@ openclaw node restart
`OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` — це змінна середовища процесу, а не параметр `openclaw.json`. `openclaw node install` зберігає її в середовищі LaunchAgent, якщо вона присутня в команді встановлення.
Схваліть вузол з host Gateway:
Підтвердьте вузол із хоста Gateway:
```bash
openclaw devices list
openclaw devices approve <requestId>
```
Підтвердьте, що Gateway бачить вузол і що він рекламує і `googlemeet.chrome`, і можливість браузера/`browser.proxy`:
Підтвердьте, що Gateway бачить вузол і що він рекламує як `googlemeet.chrome`, так і можливість браузера/`browser.proxy`:
```bash
openclaw nodes status
```
Маршрутизуйте Meet через цей вузол на host Gateway:
Спрямуйте Meet через цей вузол на хості Gateway:
```json5
{
@ -195,7 +223,7 @@ openclaw nodes status
}
```
Тепер приєднуйтесь звичайним способом з host Gateway:
Тепер приєднуйтеся як зазвичай із хоста Gateway:
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij
@ -203,53 +231,54 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij
або попросіть агента використати інструмент `google_meet` з `transport: "chrome-node"`.
Для smoke test однією командою, який створює або повторно використовує сеанс, промовляє відому фразу та виводить стан сеансу:
Для smoke-тесту однією командою, який створює або повторно використовує сеанс, вимовляє відому фразу та виводить стан сеансу:
```bash
openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij
```
Якщо профіль браузера не має виконаного входу, Meet очікує допуску від host або Chrome потребує дозволу на мікрофон/камеру, результат join/test-speech повідомляє `manualActionRequired: true` з `manualActionReason` і `manualActionMessage`. Агенти мають припинити повторні спроби приєднання, повідомити оператору це повідомлення й повторити спробу лише після завершення ручної дії в браузері.
Якщо в профілі браузера не виконано вхід, Meet очікує допуску хостом або Chrome потребує дозволу на мікрофон/камеру, результат join/test-speech повідомляє `manualActionRequired: true` разом із `manualActionReason` і `manualActionMessage`. Агенти мають припинити повторні спроби приєднання, повідомити це повідомлення оператору й повторити спробу лише після завершення ручної дії в браузері.
Якщо `chromeNode.node` пропущено, OpenClaw автоматично вибирає вузол лише тоді, коли рівно один підключений вузол рекламує і `googlemeet.chrome`, і керування браузером. Якщо підключено кілька сумісних вузлів, установіть `chromeNode.node` на id вузла, display name або віддалену IP-адресу.
Якщо `chromeNode.node` пропущено, OpenClaw виконує автовибір лише тоді, коли рівно один підключений вузол рекламує і `googlemeet.chrome`, і керування браузером. Якщо підключено кілька придатних вузлів, установіть `chromeNode.node` на id вузла, відображуване ім’я або віддалену IP-адресу.
Поширені перевірки збоїв:
Поширені перевірки помилок:
- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, схваліть pairing і переконайтеся, що у VM було виконано `openclaw plugins enable google-meet` і `openclaw plugins enable browser`. Також підтвердьте, що host Gateway дозволяє обидві команди вузла через `gateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"]`.
- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, підтвердьте сполучення та переконайтеся, що у VM було виконано `openclaw plugins enable google-meet` і `openclaw plugins enable browser`. Також підтвердьте, що хост Gateway дозволяє обидві команди вузла через `gateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"]`.
- `BlackHole 2ch audio device not found on the node`: установіть `blackhole-2ch` у VM і перезавантажте VM.
- Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера всередині VM або залиште встановленим `chrome.guestName` для гостьового приєднання. Автоматичне гостьове приєднання використовує автоматизацію браузера OpenClaw через browser proxy вузла; переконайтеся, що конфігурація браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявної сесії.
- Дубльовані вкладки Meet: залиште увімкненим `chrome.reuseExistingTab: true`. OpenClaw активує наявну вкладку для тієї самої URL-адреси Meet перед відкриттям нової.
- Немає аудіо: у Meet маршрутизуйте мікрофон/динамік через шлях віртуального аудіопристрою, який використовує OpenClaw; для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або маршрутизацію типу Loopback.
- Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера всередині VM або залиште `chrome.guestName` встановленим для гостьового приєднання. Автоприєднання гостя використовує автоматизацію браузера OpenClaw через проксі браузера вузла; переконайтеся, що конфігурація браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявного сеансу.
- Дубльовані вкладки Meet: залиште ввімкненим `chrome.reuseExistingTab: true`. OpenClaw активує наявну вкладку для того самого URL Meet перед відкриттям нової.
- Немає аудіо: у Meet спрямовуйте аудіо мікрофона/динаміка через шлях віртуального аудіопристрою, який використовує OpenClaw; для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або маршрутизацію в стилі Loopback.
## Примітки щодо встановлення
Типовий режим реального часу Chrome використовує два зовнішні інструменти:
Типовий режим Chrome realtime використовує два зовнішні інструменти:
- `sox`: утиліта командного рядка для роботи з аудіо. Plugin використовує її команди `rec` і `play` для типового аудіомосту G.711 mu-law 8 кГц.
- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який можуть маршрутизуватися Chrome/Meet.
- `sox`: утиліта командного рядка для аудіо. Плагін використовує її команди `rec` і `play` для типового аудіомосту G.711 mu-law 8 кГц.
- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який Chrome/Meet можуть маршрутизувати аудіо.
OpenClaw не постачає та не розповсюджує жоден із цих пакетів. У документації користувачам пропонується встановлювати їх як залежності host через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole — GPL-3.0. Якщо ви збираєте інсталятор або appliance, що постачає BlackHole разом з OpenClaw, перегляньте умови ліцензування BlackHole від upstream або отримайте окрему ліцензію від 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/аудіо працюють на host Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на підключеному Node, наприклад у Parallels macOS VM.
Транспорт Chrome відкриває URL Meet у Google Chrome і приєднується як профіль Chrome, у якому виконано вхід. На macOS плагін перед запуском перевіряє наявність `BlackHole 2ch`.
Якщо налаштовано, він також запускає команду перевірки стану аудіомосту та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на хості Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на під’єднаному вузлі, наприклад у 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 — це строгий план набору, делегований плагіну Voice Call. Він не аналізує сторінки Meet, щоб витягти телефонні номери.
Використовуйте його, коли участь через Chrome недоступна або коли вам потрібен резервний варіант телефонного набору. Google Meet має надавати номер для підключення телефоном і PIN для зустрічі; OpenClaw не знаходить їх на сторінці Meet.
Використовуйте це, коли участь через Chrome недоступна або коли вам потрібен резервний варіант із телефонним дозвоном. Google Meet має показувати номер для телефонного дозвону та PIN для зустрічі; OpenClaw не визначає їх зі сторінки Meet.
Увімкніть Plugin Voice Call на host Gateway, а не на Chrome node:
Увімкніть плагін Voice Call на хості Gateway, а не на вузлі Chrome:
```json5
{
@ -260,7 +289,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome
enabled: true,
config: {
defaultTransport: "chrome-node",
// or set "twilio" if Twilio should be the default
// або встановіть "twilio", якщо Twilio має бути типовим
},
},
"voice-call": {
@ -282,7 +311,7 @@ export TWILIO_AUTH_TOKEN=...
export TWILIO_FROM_NUMBER=+15550001234
```
Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації Plugin не з’являються в уже запущеному процесі Gateway, доки його не буде перезавантажено.
Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації плагіна не з’являються в уже запущеному процесі Gateway, доки він не буде перезавантажений.
Потім перевірте:
@ -292,7 +321,7 @@ openclaw plugins list | grep -E 'google-meet|voice-call'
openclaw googlemeet setup
```
Коли делегування Twilio підключено, `googlemeet setup` містить успішні перевірки `twilio-voice-call-plugin` і `twilio-voice-call-credentials`.
Коли делегування Twilio налаштоване, `googlemeet setup` містить успішні перевірки `twilio-voice-call-plugin` і `twilio-voice-call-credentials`.
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
@ -301,7 +330,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
--pin 123456
```
Використовуйте `--dtmf-sequence`, коли зустріч вимагає користувацької послідовності:
Використовуйте `--dtmf-sequence`, коли зустріч потребує власної послідовності:
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
@ -312,15 +341,23 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
## OAuth і попередня перевірка
Доступ до Google Meet Media API спочатку використовує персональний OAuth client. Налаштуйте `oauth.clientId` і, за потреби, `oauth.clientSecret`, а потім виконайте:
Доступ до Google Meet Media API спочатку використовує особистий OAuth-клієнт. Налаштуйте
`oauth.clientId` і за потреби `oauth.clientSecret`, а потім виконайте:
```bash
openclaw googlemeet auth login --json
```
Команда виводить блок конфігурації `oauth` з refresh token. Вона використовує PKCE, callback localhost на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`.
Команда виводить блок конфігурації `oauth` з refresh token. Вона використовує PKCE,
локальний callback на `http://localhost:8085/oauth2callback` і ручний
потік копіювання/вставлення з `--manual`.
Як резервні варіанти приймаються такі змінні середовища:
Згода OAuth включає створення просторів Meet, доступ на читання просторів Meet і
доступ на читання медіаданих конференцій Meet. Якщо ви пройшли автентифікацію до того, як з’явилася
підтримка створення зустрічей, повторно виконайте `openclaw googlemeet auth login --json`, щоб
refresh token мав область доступу `meetings.space.created`.
Ці змінні середовища приймаються як резервні варіанти:
- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID`
- `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` або `GOOGLE_MEET_CLIENT_SECRET`
@ -331,32 +368,52 @@ 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
```
Запустіть попередню перевірку перед роботою з медіа:
Виконайте попередню перевірку перед роботою з медіа:
```bash
openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij
```
Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, принципал OAuth і учасники зустрічі зареєстровані в програмі Google Workspace Developer Preview Program для медіа-API Meet.
Створіть новий простір Meet з тією самою конфігурацією OAuth:
```bash
openclaw googlemeet create
```
Команда виводить нові `meeting uri` і `space`. Агенти можуть використовувати
інструмент `google_meet` з `action: "create"` для створення зустрічі, а потім викликати
`action: "join"` з поверненим `meetingUri`.
Створення простору Meet створює лише URL зустрічі. Транспорт Chrome або Chrome-node
усе одно потребує профілю Google Chrome з виконаним входом, щоб приєднатися через
браузер. Якщо в профілі виконано вихід, OpenClaw повідомляє
`manualActionRequired: true` і просить оператора завершити вхід у Google перед
повторною спробою приєднання.
Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud
project, OAuth principal і учасники зустрічі зареєстровані в програмі
Google Workspace Developer Preview Program для медіа-API Meet.
## Конфігурація
Поширений шлях Chrome у режимі реального часу потребує лише увімкненого Plugin, BlackHole, SoX і ключа постачальника голосу в реальному часі для бекенда. OpenAI є типовим; установіть `realtime.provider: "google"`, щоб використовувати Google Gemini Live:
Звичайному шляху Chrome realtime потрібні лише ввімкнений плагін, BlackHole, SoX
і ключ постачальника голосу реального часу для бекенду. Типовим є OpenAI; установіть
`realtime.provider: "google"`, щоб використовувати Google Gemini Live:
```bash
brew install blackhole-2ch sox
export OPENAI_API_KEY=sk-...
# or
# або
export GEMINI_API_KEY=...
```
Установіть конфігурацію Plugin у `plugins.entries.google-meet.config`:
Установіть конфігурацію плагіна в `plugins.entries.google-meet.config`:
```json5
{
@ -377,16 +434,24 @@ export GEMINI_API_KEY=...
- `defaultMode: "realtime"`
- `chromeNode.node`: необов’язковий id/ім’я/IP вузла для `chrome-node`
- `chrome.audioBackend: "blackhole-2ch"`
- `chrome.guestName: "OpenClaw Agent"`: ім’я, що використовується на екрані гостьового входу Meet без входу в систему
- `chrome.autoJoin: true`: заповнення імені гостя та натискання Join Now з найкращим зусиллям через автоматизацію браузера OpenClaw на `chrome-node`
- `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість відкриття дублікатів
- `chrome.waitForInCallMs: 20000`: чекати, поки вкладка Meet повідомить про перебування в дзвінку, перш ніж буде запущено вступ у режимі реального часу
- `chrome.audioInputCommand`: команда SoX `rec`, яка записує аудіо 8 кГц G.711 mu-law у stdout
- `chrome.audioOutputCommand`: команда SoX `play`, яка читає аудіо 8 кГц G.711 mu-law зі stdin
- `chrome.guestName: "OpenClaw Agent"`: ім’я, яке використовується на екрані
гостя Meet без входу
- `chrome.autoJoin: true`: заповнення імені гостя та натискання Join Now у
режимі best-effort через автоматизацію браузера OpenClaw на `chrome-node`
- `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість
відкриття дублікатів
- `chrome.waitForInCallMs: 20000`: чекати, доки вкладка Meet не повідомить про стан in-call,
перш ніж буде запущено вступ у режимі реального часу
- `chrome.audioInputCommand`: команда SoX `rec`, що записує аудіо G.711 mu-law 8 кГц
у stdout
- `chrome.audioOutputCommand`: команда SoX `play`, що читає аудіо G.711 mu-law 8 кГц
із stdin
- `realtime.provider: "openai"`
- `realtime.toolPolicy: "safe-read-only"`
- `realtime.instructions`: короткі усні відповіді, з `openclaw_agent_consult` для глибших відповідей
- `realtime.introMessage`: коротка усна перевірка готовності під час підключення мосту реального часу; установіть `""`, щоб приєднатися беззвучно
- `realtime.instructions`: короткі усні відповіді, з
`openclaw_agent_consult` для глибших відповідей
- `realtime.introMessage`: коротка усна перевірка готовності, коли міст
реального часу підключається; установіть `""`, щоб приєднуватися беззвучно
Необов’язкові перевизначення:
@ -406,7 +471,7 @@ export GEMINI_API_KEY=...
realtime: {
provider: "google",
toolPolicy: "owner",
introMessage: "Say exactly: I'm here.",
introMessage: "Скажи рівно: I'm here.",
providers: {
google: {
model: "gemini-2.5-flash-native-audio-preview-12-2025",
@ -432,7 +497,10 @@ export GEMINI_API_KEY=...
}
```
`voiceCall.enabled` типово має значення `true`; із транспортом Twilio він делегує фактичний PSTN-дзвінок і DTMF до Plugin Voice Call. Якщо `voice-call` не увімкнено, Google Meet усе ще може перевіряти й записувати план набору, але не може здійснити дзвінок Twilio.
`voiceCall.enabled` типово має значення `true`; з транспортом Twilio він делегує
фактичний PSTN-виклик і DTMF плагіну Voice Call. Якщо `voice-call` не
ввімкнено, Google Meet усе одно може перевірити й записати план набору, але не може
виконати виклик Twilio.
## Інструмент
@ -447,47 +515,67 @@ export GEMINI_API_KEY=...
}
```
Використовуйте `transport: "chrome"`, коли Chrome працює на host Gateway. Використовуйте `transport: "chrome-node"`, коли Chrome працює на підключеному Node, наприклад у Parallels VM. В обох випадках модель реального часу та `openclaw_agent_consult` працюють на host Gateway, тому облікові дані моделі залишаються там.
Використовуйте `transport: "chrome"`, коли Chrome працює на хості Gateway. Використовуйте
`transport: "chrome-node"`, коли Chrome працює на під’єднаному вузлі, наприклад у Parallels
VM. В обох випадках модель реального часу та `openclaw_agent_consult` працюють на
хості Gateway, тому облікові дані моделі залишаються там.
Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити id сеансу. Використовуйте `action: "speak"` з `sessionId` і `message`, щоб агент реального часу негайно заговорив. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, запустити відому фразу й повернути стан `inCall`, коли host Chrome може його повідомити. Використовуйте `action: "leave"`, щоб позначити сеанс як завершений.
Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити ID сеансу. Використовуйте
`action: "speak"` із `sessionId` і `message`, щоб змусити агента реального часу
говорити негайно. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс,
запустити відому фразу й повернути стан `inCall`, якщо хост Chrome може
його повідомити. Використовуйте `action: "leave"`, щоб позначити сеанс завершеним.
`status` містить стан Chrome, коли він доступний:
`status` включає стан Chrome, коли він доступний:
- `inCall`: Chrome, імовірно, перебуває всередині дзвінка Meet
- `micMuted`: стан мікрофона Meet з найкращим зусиллям
- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профілю браузера потрібен ручний вхід, допуск host Meet, дозволи, або виправлення керування браузером, перш ніж мовлення зможе працювати
- `inCall`: Chrome, імовірно, перебуває всередині виклику Meet
- `micMuted`: best-effort стан мікрофона Meet
- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профіль
браузера потребує ручного входу, допуску хостом Meet, дозволів або
виправлення керування браузером, перш ніж мовлення зможе працювати
- `providerConnected` / `realtimeReady`: стан голосового мосту реального часу
- `lastInputAt` / `lastOutputAt`: останнє аудіо, отримане мостом або надіслане до нього
- `lastInputAt` / `lastOutputAt`: час останнього аудіо, отриманого від мосту або надісланого до нього
```json
{
"action": "speak",
"sessionId": "meet_...",
"message": "Say exactly: I'm here and listening."
"message": "Скажи рівно: I'm here and listening."
}
```
## Консультація агента в режимі реального часу
Режим реального часу Chrome оптимізовано для живого голосового циклу. Постачальник голосу в реальному часі чує аудіо зустрічі й говорить через налаштований аудіоміст. Коли моделі реального часу потрібні глибші міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
Режим Chrome realtime оптимізовано для живого голосового циклу. Постачальник
голосу реального часу чує аудіо зустрічі та говорить через налаштований
аудіоміст. Коли моделі реального часу потрібні глибше міркування, актуальна
інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з контекстом нещодавнього транскрипту зустрічі та повертає стислу усну відповідь до голосового сеансу реального часу. Потім голосова модель може озвучити цю відповідь назад у зустріч.
Інструмент консультації у фоновому режимі запускає звичайного агента OpenClaw
із контекстом нещодавньої розшифровки зустрічі й повертає стислу усну відповідь
до голосового сеансу реального часу. Потім голосова модель може озвучити цю
відповідь назад у зустріч.
`realtime.toolPolicy` керує запуском консультації:
- `safe-read-only`: надавати інструмент консультації та обмежувати звичайного агента інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`.
- `owner`: надавати інструмент консультації та дозволяти звичайному агенту використовувати звичайну політику інструментів агента.
- `none`: не надавати інструмент консультації голосовій моделі реального часу.
- `safe-read-only`: показати інструмент консультації та обмежити звичайного агента
інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і
`memory_get`.
- `owner`: показати інструмент консультації та дозволити звичайному агенту використовувати
звичайну політику інструментів агента.
- `none`: не показувати інструмент консультації моделі голосу реального часу.
Ключ сеансу консультації має область дії в межах кожного сеансу Meet, тому подальші виклики консультації можуть повторно використовувати попередній контекст консультації під час тієї самої зустрічі.
Ключ сеансу консультації має область дії в межах одного сеансу Meet, тому
наступні виклики консультації можуть повторно використовувати попередній контекст
консультації під час тієї самої зустрічі.
Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до дзвінка:
Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до виклику:
```bash
openclaw googlemeet speak meet_... "Say exactly: I'm here and listening."
```
Для повного smoke test приєднання та мовлення:
Для повного smoke-тесту join-and-speak:
```bash
openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \
@ -495,9 +583,9 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \
--message "Say exactly: I'm here and listening."
```
## Контрольний список live test
## Контрольний список live-тесту
Використовуйте цю послідовність перед передаванням зустрічі агенту без нагляду:
Використовуйте цю послідовність перед передачею зустрічі агенту без нагляду:
```bash
openclaw googlemeet setup
@ -510,11 +598,12 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \
Очікуваний стан Chrome-node:
- `googlemeet setup` повністю зелений.
- `nodes status` показує, що вибраний вузол підключено.
- `nodes status` показує, що вибраний вузол підключений.
- Вибраний вузол рекламує і `googlemeet.chrome`, і `browser.proxy`.
- Вкладка Meet приєднується до дзвінка, а `test-speech` повертає стан Chrome з `inCall: true`.
- Вкладка Meet приєднується до виклику, а `test-speech` повертає стан Chrome з
`inCall: true`.
Для smoke test Twilio використовуйте зустріч, яка надає деталі телефонного підключення:
Для smoke-тесту Twilio використовуйте зустріч, яка показує деталі телефонного дозвону:
```bash
openclaw googlemeet setup
@ -526,27 +615,29 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
Очікуваний стан Twilio:
- `googlemeet setup` містить зелені перевірки `twilio-voice-call-plugin` і `twilio-voice-call-credentials`.
- `googlemeet setup` включає зелені перевірки `twilio-voice-call-plugin` і
`twilio-voice-call-credentials`.
- `voicecall` доступний у CLI після перезавантаження Gateway.
- Повернений сеанс має `transport: "twilio"` і `twilio.voiceCallId`.
- `googlemeet leave <sessionId>` завершує делегований голосовий дзвінок.
- `googlemeet leave <sessionId>` завершує делегований голосовий виклик.
## Усунення несправностей
### Агент не бачить інструмент Google Meet
Підтвердьте, що Plugin увімкнено в конфігурації Gateway, і перезавантажте Gateway:
Підтвердьте, що плагін увімкнено в конфігурації Gateway, і перезавантажте Gateway:
```bash
openclaw plugins list | grep google-meet
openclaw googlemeet setup
```
Якщо ви щойно змінили `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway. Запущений агент бачить лише ті інструменти Plugin, які зареєстровані поточним процесом Gateway.
Якщо ви щойно відредагували `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway.
Запущений агент бачить лише інструменти плагінів, зареєстровані поточним процесом Gateway.
### Немає підключеного вузла з підтримкою Google Meet
На host вузла виконайте:
На хості вузла виконайте:
```bash
openclaw plugins enable google-meet
@ -555,7 +646,7 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
openclaw node run --host <gateway-lan-ip> --port 18789 --display-name parallels-macos
```
На host Gateway схваліть вузол і перевірте команди:
На хості Gateway підтвердьте вузол і перевірте команди:
```bash
openclaw devices list
@ -563,7 +654,7 @@ openclaw devices approve <requestId>
openclaw nodes status
```
Вузол має бути підключений і містити `googlemeet.chrome` та `browser.proxy`.
Вузол має бути підключений і перелічувати `googlemeet.chrome` та `browser.proxy`.
Конфігурація Gateway має дозволяти ці команди вузла:
```json5
@ -578,38 +669,58 @@ openclaw nodes status
### Браузер відкривається, але агент не може приєднатися
Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він повідомляє `manualActionRequired: true`, покажіть оператору `manualActionMessage` і припиніть повторні спроби, доки дію в браузері не буде завершено.
Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він
повідомляє `manualActionRequired: true`, покажіть `manualActionMessage` оператору
та припиніть повторні спроби, доки дію в браузері не буде завершено.
Поширені ручні дії:
- Увійти в профіль Chrome.
- Допустити гостя з облікового запису host Meet.
- Допустити гостя з облікового запису хоста Meet.
- Надати Chrome дозволи на мікрофон/камеру.
- Закрити або виправити зависле діалогове вікно дозволів Meet.
- Закрити або виправити завислий діалог дозволів Meet.
### Не вдається створити зустріч
`googlemeet create` використовує endpoint `spaces.create` API Google Meet. Підтвердьте:
- налаштовано `oauth.clientId` і `oauth.refreshToken`, або наявні відповідні
змінні середовища `OPENCLAW_GOOGLE_MEET_*`.
- refresh token було створено після додавання підтримки create. Старі токени можуть
не мати області доступу `meetings.space.created`; повторно виконайте
`openclaw googlemeet auth login --json` і оновіть конфігурацію плагіна.
- Google Cloud project і OAuth principal мають право використовувати потрібні
області доступу API Google Meet.
### Агент приєднується, але не говорить
Перевірте шлях реального часу:
Перевірте шлях realtime:
```bash
openclaw googlemeet setup
openclaw googlemeet status
```
Використовуйте `mode: "realtime"` для прослуховування/відповіді голосом. `mode: "transcribe"` навмисно не запускає двонапрямний голосовий міст реального часу.
Використовуйте `mode: "realtime"` для прослуховування/відповіді голосом. `mode: "transcribe"` навмисно
не запускає двобічний голосовий міст реального часу.
Також перевірте:
- На host Gateway доступний ключ постачальника реального часу, наприклад `OPENAI_API_KEY` або `GEMINI_API_KEY`.
- `BlackHole 2ch` видно на host Chrome.
- `rec` і `play` існують на host Chrome.
- Мікрофон і динамік Meet маршрутизуються через віртуальний аудіошлях, який використовує OpenClaw.
- На хості Gateway доступний ключ постачальника режиму реального часу, наприклад
`OPENAI_API_KEY` або `GEMINI_API_KEY`.
- `BlackHole 2ch` видимий на хості Chrome.
- `rec` і `play` існують на хості Chrome.
- Мікрофон і динамік Meet маршрутизовано через віртуальний аудіошлях, який використовує
OpenClaw.
### Перевірки налаштування Twilio завершуються невдачею
### Не проходять перевірки налаштування Twilio
`twilio-voice-call-plugin` завершується невдачею, коли `voice-call` не дозволено або не увімкнено. Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте Gateway.
`twilio-voice-call-plugin` завершується помилкою, коли `voice-call` не дозволено або не ввімкнено.
Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте
Gateway.
`twilio-voice-call-credentials` завершується невдачею, коли в бекенді Twilio відсутні account SID, auth token або номер абонента. Установіть їх на host Gateway:
`twilio-voice-call-credentials` завершується помилкою, коли в бекенді Twilio бракує account
SID, auth token або номера абонента. Установіть це на хості Gateway:
```bash
export TWILIO_ACCOUNT_SID=AC...
@ -623,9 +734,10 @@ export TWILIO_FROM_NUMBER=+15550001234
openclaw googlemeet setup
```
### Дзвінок Twilio починається, але так і не входить у зустріч
### Виклик Twilio починається, але ніколи не входить у зустріч
Підтвердьте, що подія Meet надає деталі телефонного підключення. Передайте точний номер для підключення та PIN або користувацьку послідовність DTMF:
Підтвердьте, що подія Meet містить деталі телефонного дозвону. Передайте точний номер
для дозвону та PIN або власну послідовність DTMF:
```bash
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
@ -634,24 +746,34 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
--dtmf-sequence ww123456#
```
Використовуйте початковий `w` або коми в `--dtmf-sequence`, якщо постачальнику потрібна пауза перед введенням PIN.
Використовуйте початковий `w` або коми в `--dtmf-sequence`, якщо постачальнику потрібна пауза
перед введенням PIN.
## Примітки
Офіційний медіа-API Google Meet орієнтований на отримання, тому для мовлення в дзвінок Meet усе ще потрібен шлях учасника. Цей Plugin зберігає цю межу видимою: Chrome обробляє участь через браузер і локальну маршрутизацію аудіо; Twilio обробляє участь через телефонне підключення.
Офіційний media API Google Meet орієнтований на отримання, тому для мовлення у виклику Meet
усе одно потрібен шлях учасника. Цей плагін робить цю межу видимою:
Chrome відповідає за участь через браузер і локальну маршрутизацію аудіо; Twilio відповідає за
участь через телефонний дозвін.
Режиму реального часу Chrome потрібне одне з такого:
Режиму Chrome realtime потрібне одне з такого:
- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує мостом моделі реального часу та передає аудіо 8 кГц G.711 mu-law між цими командами та вибраним постачальником голосу реального часу.
- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона.
- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує
мостом моделі реального часу та передає аудіо G.711 mu-law 8 кГц між цими
командами й вибраним постачальником голосу реального часу.
- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним
аудіошляхом і має завершитися після запуску або перевірки свого демона.
Для чистого двобічного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв типу Loopback. Один спільний пристрій BlackHole може повертати голоси інших учасників луною назад у дзвінок.
Для чистого двобічного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі
віртуальні пристрої або граф віртуальних пристроїв у стилі Loopback. Один спільний
пристрій BlackHole може повертати в дзвінок відлуння інших учасників.
`googlemeet speak` запускає активний аудіоміст реального часу для сеансу Chrome.
`googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих через Plugin Voice Call, `leave` також завершує базовий голосовий дзвінок.
`googlemeet speak` запускає активний аудіоміст реального часу для сеансу
Chrome. `googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих
через плагін Voice Call, `leave` також завершує базовий голосовий виклик.
## Пов’язане
- [Plugin Voice Call](/uk/plugins/voice-call)
- [Плагін Voice Call](/uk/plugins/voice-call)
- [Режим розмови](/uk/nodes/talk)
- [Створення Plugin](/uk/plugins/building-plugins)
- [Створення плагінів](/uk/plugins/building-plugins)