Google Meet (Plugin)
Obsługa uczestnika Google Meet dla OpenClaw. Plugin jest celowo jawny:- Dołącza tylko do jawnego adresu URL
https://meet.google.com/.... - Głos
realtimejest trybem domyślnym. - Głos w czasie rzeczywistym może wywołać pełnego agenta OpenClaw, gdy potrzebne są głębsze rozumowanie lub narzędzia.
- Uwierzytelnianie zaczyna się od osobistego Google OAuth lub już zalogowanego profilu Chrome.
- Nie ma automatycznego komunikatu o zgodzie.
- Domyślnym backendem audio Chrome jest
BlackHole 2ch. - Chrome może działać lokalnie lub na sparowanym hoście Node.
- Twilio przyjmuje numer do połączenia oraz opcjonalny PIN lub sekwencję DTMF.
- Poleceniem CLI jest
googlemeet;meetjest zarezerwowane dla szerszych przepływów telekonferencyjnych agenta.
Szybki start
Zainstaluj lokalne zależności audio i skonfiguruj dostawcę głosu działającego w czasie rzeczywistym w backendzie. OpenAI jest domyślne; Google Gemini Live również działa zrealtime.provider: "google":
blackhole-2ch instaluje wirtualne urządzenie audio BlackHole 2ch. Instalator
Homebrew wymaga ponownego uruchomienia, zanim macOS udostępni to urządzenie:
google_meet:
BlackHole 2ch dla
ścieżki mikrofonu/głośnika używanej przez OpenClaw. Aby uzyskać czysty dźwięk dupleksowy, użyj
osobnych urządzeń wirtualnych lub grafu w stylu Loopback; pojedyncze urządzenie BlackHole
wystarcza do pierwszego testu smoke, ale może powodować echo.
Lokalny Gateway + Chrome w Parallels
Nie potrzebujesz pełnego OpenClaw Gateway ani klucza API modelu wewnątrz macOS VM tylko po to, aby VM był hostem dla Chrome. Uruchom Gateway i agenta lokalnie, a następnie uruchom hosta Node w VM. Włącz dołączony Plugin w VM jeden raz, aby Node ogłaszał polecenie Chrome: Co działa gdzie:- Host Gateway: OpenClaw Gateway, przestrzeń robocza agenta, klucze modelu/API, dostawca
realtimeoraz konfiguracja pluginu Google Meet. - Parallels macOS VM: CLI/host Node OpenClaw, Google Chrome, SoX, BlackHole 2ch oraz profil Chrome zalogowany do Google.
- Niepotrzebne w VM: usługa Gateway, konfiguracja agenta, klucz OpenAI/GPT ani konfiguracja dostawcy modelu.
BlackHole 2ch:
<gateway-host> jest adresem IP w LAN i nie używasz TLS, Node odrzuca
nieszyfrowany WebSocket, chyba że jawnie włączysz to dla tej zaufanej sieci prywatnej:
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 jest środowiskiem procesu, a nie ustawieniem
openclaw.json. openclaw node install zapisuje je w środowisku LaunchAgent,
gdy jest obecne w poleceniu instalacji.
Zatwierdź Node z hosta Gateway:
googlemeet.chrome:
google_meet z transport: "chrome-node".
Jeśli chromeNode.node zostanie pominięte, OpenClaw wybiera automatycznie tylko wtedy, gdy dokładnie jeden
połączony Node ogłasza googlemeet.chrome. Jeśli podłączonych jest kilka
obsługiwanych Node, ustaw chromeNode.node na identyfikator Node, nazwę wyświetlaną lub zdalny adres IP.
Typowe kontrole w przypadku błędów:
No connected Google Meet-capable node: uruchomopenclaw node runw VM, zatwierdź parowanie i upewnij się, że uruchomionoopenclaw plugins enable google-meetw VM. Potwierdź też, że host Gateway zezwala na polecenie Node przezgateway.nodes.allowCommands: ["googlemeet.chrome"].BlackHole 2ch audio device not found on the node: zainstalujblackhole-2chw VM i uruchom VM ponownie.- Chrome otwiera się, ale nie może dołączyć: zaloguj się do Chrome wewnątrz VM i potwierdź, że ten profil może ręcznie dołączyć do adresu URL Meet.
- Brak dźwięku: w Meet kieruj mikrofon/głośnik przez ścieżkę wirtualnego urządzenia audio używaną przez OpenClaw; użyj osobnych urządzeń wirtualnych lub routingu w stylu Loopback, aby uzyskać czysty dupleks audio.
Uwagi dotyczące instalacji
Domyślna konfiguracja Chromerealtime używa dwóch narzędzi zewnętrznych:
sox: narzędzie audio w wierszu poleceń. Plugin używa jego poleceńreciplaydla domyślnego mostka audio 8 kHz G.711 mu-law.blackhole-2ch: wirtualny sterownik audio dla macOS. Tworzy urządzenie audioBlackHole 2ch, przez które Chrome/Meet może kierować dźwięk.
LGPL-2.0-only AND GPL-2.0-only; BlackHole na GPL-3.0. Jeśli budujesz
instalator lub appliance, który dołącza BlackHole do OpenClaw, przejrzyj warunki licencyjne
BlackHole u źródła albo uzyskaj osobną licencję od Existential Audio.
Transporty
Chrome
Transport Chrome otwiera adres URL Meet w Google Chrome i dołącza jako zalogowany profil Chrome. W macOS Plugin sprawdza obecnośćBlackHole 2ch przed uruchomieniem.
Jeśli skonfigurowano, uruchamia też polecenie sprawdzania kondycji mostka audio oraz polecenie
startowe przed otwarciem Chrome. Użyj chrome, gdy Chrome/audio działa na hoście Gateway;
użyj chrome-node, gdy Chrome/audio działa na sparowanym Node, takim jak Parallels
macOS VM.
BlackHole 2ch nie jest zainstalowany, dołączenie kończy się błędem konfiguracji
zamiast cichego dołączenia bez ścieżki audio.
Twilio
Transport Twilio to ścisły plan wybierania delegowany do pluginu Voice Call. Nie parsuje stron Meet w poszukiwaniu numerów telefonów.--dtmf-sequence, gdy spotkanie wymaga niestandardowej sekwencji:
OAuth i wstępna kontrola
Dostęp do Google Meet Media API najpierw używa osobistego klienta OAuth. Skonfigurujoauth.clientId i opcjonalnie oauth.clientSecret, a następnie uruchom:
oauth z tokenem odświeżania. Używa PKCE,
wywołania zwrotnego localhost pod http://localhost:8085/oauth2callback oraz ręcznego
przepływu kopiuj/wklej z --manual.
Te zmienne środowiskowe są akceptowane jako wartości zapasowe:
OPENCLAW_GOOGLE_MEET_CLIENT_IDlubGOOGLE_MEET_CLIENT_IDOPENCLAW_GOOGLE_MEET_CLIENT_SECRETlubGOOGLE_MEET_CLIENT_SECRETOPENCLAW_GOOGLE_MEET_REFRESH_TOKENlubGOOGLE_MEET_REFRESH_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKENlubGOOGLE_MEET_ACCESS_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATlubGOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATOPENCLAW_GOOGLE_MEET_DEFAULT_MEETINGlubGOOGLE_MEET_DEFAULT_MEETINGOPENCLAW_GOOGLE_MEET_PREVIEW_ACKlubGOOGLE_MEET_PREVIEW_ACK
spaces/{id} przez spaces.get:
preview.enrollmentAcknowledged: true dopiero po potwierdzeniu, że Twój projekt Cloud,
podmiot OAuth i uczestnicy spotkania są zapisani do Google
Workspace Developer Preview Program dla interfejsów API mediów Meet.
Konfiguracja
Typowa ścieżka Chromerealtime wymaga tylko włączonego pluginu, BlackHole, SoX
oraz klucza dostawcy głosu działającego w czasie rzeczywistym w backendzie. OpenAI jest domyślne; ustaw
realtime.provider: "google", aby używać Google Gemini Live:
plugins.entries.google-meet.config:
defaultTransport: "chrome"defaultMode: "realtime"chromeNode.node: opcjonalny identyfikator/nazwa/adres IP Node dlachrome-nodechrome.audioBackend: "blackhole-2ch"chrome.audioInputCommand: polecenie SoXreczapisujące dźwięk 8 kHz G.711 mu-law na stdoutchrome.audioOutputCommand: polecenie SoXplayodczytujące dźwięk 8 kHz G.711 mu-law ze stdinrealtime.provider: "openai"realtime.toolPolicy: "safe-read-only"realtime.instructions: krótkie odpowiedzi mówione, zopenclaw_agent_consultdla głębszych odpowiedzirealtime.introMessage: krótki mówiony test gotowości po połączeniu mostkarealtime; ustaw na"", aby dołączyć po cichu
Narzędzie
Agenci mogą używać narzędziagoogle_meet:
transport: "chrome", gdy Chrome działa na hoście Gateway. Użyj
transport: "chrome-node", gdy Chrome działa na sparowanym Node, takim jak Parallels
VM. W obu przypadkach model realtime i openclaw_agent_consult działają na
hoście Gateway, więc poświadczenia modelu pozostają tam.
Użyj action: "status", aby wyświetlić aktywne sesje lub sprawdzić identyfikator sesji. Użyj
action: "speak" z sessionId i message, aby agent realtime
natychmiast coś powiedział. Użyj action: "leave", aby oznaczyć sesję jako zakończoną.
Konsultacja z agentem realtime
Tryb Chromerealtime jest zoptymalizowany pod kątem pętli głosowej na żywo. Dostawca głosu
działającego w czasie rzeczywistym słyszy dźwięk spotkania i mówi przez skonfigurowany mostek audio.
Gdy model realtime potrzebuje głębszego rozumowania, aktualnych informacji lub zwykłych
narzędzi OpenClaw, może wywołać openclaw_agent_consult.
Narzędzie konsultacji uruchamia w tle zwykłego agenta OpenClaw z kontekstem
ostatniej transkrypcji spotkania i zwraca zwięzłą odpowiedź mówioną do sesji głosowej
realtime. Model głosowy może następnie wypowiedzieć tę odpowiedź z powrotem na spotkaniu.
realtime.toolPolicy steruje przebiegiem konsultacji:
safe-read-only: udostępnij narzędzie konsultacji i ogranicz zwykłego agenta doread,web_search,web_fetch,x_search,memory_searchorazmemory_get.owner: udostępnij narzędzie konsultacji i pozwól zwykłemu agentowi używać normalnej polityki narzędzi agenta.none: nie udostępniaj narzędzia konsultacji modelowi głosowemurealtime.
Uwagi
Oficjalne media API Google Meet jest zorientowane na odbiór, więc mówienie podczas rozmowy Meet nadal wymaga ścieżki uczestnika. Ten Plugin zachowuje tę granicę jako widoczną: Chrome obsługuje udział z poziomu przeglądarki i lokalne routowanie audio; Twilio obsługuje udział przez połączenie telefoniczne. Tryb Chromerealtime wymaga jednego z poniższych:
chrome.audioInputCommandorazchrome.audioOutputCommand: OpenClaw zarządza mostkiem modelurealtimei przesyła dźwięk 8 kHz G.711 mu-law między tymi poleceniami a wybranym dostawcą głosurealtime.chrome.audioBridgeCommand: zewnętrzne polecenie mostka zarządza całą lokalną ścieżką audio i musi zakończyć działanie po uruchomieniu lub sprawdzeniu swojego demona.
googlemeet speak wyzwala aktywny mostek audio realtime dla sesji Chrome.
googlemeet leave zatrzymuje ten mostek. W przypadku sesji Twilio delegowanych
przez Plugin Voice Call, leave również rozłącza bazowe połączenie głosowe.