Google Meet-deelnemersondersteuning voor OpenClaw — de Plugin is expliciet ontworpen:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Hij neemt alleen deel via een expliciete
https://meet.google.com/...-URL. - Hij kan via de Google Meet API een nieuwe Meet-ruimte maken en vervolgens deelnemen aan de geretourneerde URL.
realtime-spraak is de standaardmodus.- Realtime-spraak kan terugkoppelen naar de volledige OpenClaw-agent wanneer diepere redenering of tools nodig zijn.
- Agents kiezen het deelneemgedrag met
mode: gebruikrealtimevoor live luisteren/terugpraten, oftranscribeom deel te nemen/de browser te bedienen zonder de realtime-spraakbrug. - Auth begint als persoonlijke Google OAuth of een al aangemeld Chrome-profiel.
- Er is geen automatische toestemmingsaankondiging.
- De standaard Chrome-audio-backend is
BlackHole 2ch. - Chrome kan lokaal draaien of op een gekoppelde Node-host.
- Twilio accepteert een inbelnummer plus optionele pincode of DTMF-reeks.
- De CLI-opdracht is
googlemeet;meetis gereserveerd voor bredere teleconferentieworkflows van agents.
Snel aan de slag
Installeer de lokale audio-afhankelijkheden en configureer een realtime-spraakprovider voor de backend. OpenAI is de standaard; Google Gemini Live werkt ook metrealtime.provider: "google":
blackhole-2ch installeert het virtuele audioapparaat BlackHole 2ch. Het
installatieprogramma van Homebrew vereist een herstart voordat macOS het apparaat beschikbaar maakt:
--mode transcribe; die modus slaat realtime-audiovereisten over omdat hij niet via de brug luistert of spreekt:
voice-call-Plugin en Twilio-referenties gereed zijn. Behandel elke ok: false-controle als een blokkade voor het gecontroleerde transport en de gecontroleerde modus voordat je een agent vraagt deel te nemen. Gebruik openclaw googlemeet setup --json voor scripts of machineleesbare uitvoer. Gebruik --transport chrome, --transport chrome-node of --transport twilio
om een specifiek transport vooraf te controleren voordat een agent het probeert.
Neem deel aan een vergadering:
google_meet-tool:
googlemeet create heeft twee paden:
- API-aanmaak: gebruikt wanneer Google Meet OAuth-referenties zijn geconfigureerd. Dit is het meest deterministische pad en is niet afhankelijk van de browser-UI-status.
- Browserfallback: gebruikt wanneer OAuth-referenties ontbreken. OpenClaw gebruikt de
gepinde Chrome-Node, opent
https://meet.google.com/new, wacht tot Google doorverwijst naar een echte URL met vergadercode en retourneert vervolgens die URL. Dit pad vereist dat het OpenClaw Chrome-profiel op de Node al bij Google is aangemeld. Browserautomatisering handelt Meets eigen eerste microfoonprompt af; die prompt wordt niet behandeld als een Google-aanmeldingsfout. Deelname- en aanmaakflows proberen ook een bestaand Meet-tabblad te hergebruiken voordat ze een nieuw tabblad openen. Matching negeert onschuldige URL-querystrings zoalsauthuser, zodat een agent-retry de al geopende vergadering zou moeten focussen in plaats van een tweede Chrome-tabblad te maken.
source-veld (api of browser) zodat agents
kunnen uitleggen welk pad is gebruikt. create neemt standaard deel aan de nieuwe vergadering en
retourneert joined: true plus de deelnamesessie. Gebruik
create --no-join op de CLI of geef "join": false door aan de tool om alleen de URL aan te maken.
Of zeg tegen een agent: “Maak een Google Meet, neem eraan deel met realtime-spraak en stuur
mij de link.” De agent zou google_meet moeten aanroepen met action: "create" en
vervolgens de geretourneerde meetingUri delen.
"mode": "transcribe" in. Dat start
de duplex realtime-modelbrug niet, vereist geen BlackHole of SoX,
en praat niet terug in de vergadering. Chrome-deelnames in deze modus vermijden ook
OpenClaw’s microfoon-/cameratoestemmingsverlening en vermijden het Meet-pad Use
microphone. Als Meet een audio-keuzescherm toont, probeert automatisering
het pad zonder microfoon en rapporteert anders een handmatige actie in plaats van
de lokale microfoon te openen.
Tijdens realtime-sessies bevat de google_meet-status de gezondheid van browser en audiobrug,
zoals inCall, manualActionRequired, providerConnected,
realtimeReady, audioInputActive, audioOutputActive, laatste invoer-/uitvoertijdstempels,
bytetellers en gesloten brugstatus. Als er een veilige Meet-paginaprompt
verschijnt, handelt browserautomatisering die af wanneer dat kan. Aanmelding, toelating door host en
browser-/OS-toestemmingsprompts worden gerapporteerd als handmatige actie met een reden en
bericht dat de agent kan doorgeven.
Lokale Chrome-deelnames gebruiken het aangemelde OpenClaw-browserprofiel. Realtime-modus
vereist BlackHole 2ch voor het microfoon-/speakerpad dat door OpenClaw wordt gebruikt. Gebruik
voor schone duplexaudio afzonderlijke virtuele apparaten of een Loopback-achtige grafiek; een
enkel BlackHole-apparaat is genoeg voor een eerste rooktest, maar kan echo veroorzaken.
Lokale Gateway + Parallels Chrome
Je hebt geen volledige OpenClaw Gateway of model-API-sleutel nodig in een macOS-VM alleen om de VM eigenaar van Chrome te maken. Draai de Gateway en agent lokaal en draai vervolgens een Node-host in de VM. Schakel de gebundelde Plugin eenmaal in op de VM zodat de Node de Chrome-opdracht adverteert: Wat waar draait:- Gateway-host: OpenClaw Gateway, agentwerkruimte, model-/API-sleutels, realtime provider en de Google Meet-Pluginconfiguratie.
- Parallels macOS-VM: OpenClaw CLI/Node-host, Google Chrome, SoX, BlackHole 2ch, en een Chrome-profiel dat is aangemeld bij Google.
- Niet nodig in de VM: Gateway-service, agentconfiguratie, OpenAI/GPT-sleutel of modelprovider-setup.
BlackHole 2ch beschikbaar maakt:
<gateway-host> een LAN-IP is en je geen TLS gebruikt, weigert de Node de
plaintext WebSocket tenzij je expliciet instemt voor dat vertrouwde privénetwerk:
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 is procesomgeving, geen
openclaw.json-instelling. openclaw node install slaat deze op in de LaunchAgent-omgeving
wanneer hij aanwezig is op de installatieopdracht.
Keur de Node goed vanaf de Gateway-host:
googlemeet.chrome
als browsercapability/browser.proxy adverteert:
google_meet-tool te gebruiken met transport: "chrome-node".
Voor een rooktest met één opdracht die een sessie maakt of hergebruikt, een bekende
zin uitspreekt en sessiegezondheid print:
manualActionRequired: true met manualActionReason en
manualActionMessage. Agents moeten stoppen met opnieuw proberen deel te nemen, dat exacte
bericht plus de huidige browserUrl/browserTitle rapporteren, en pas opnieuw proberen nadat de
handmatige browseractie is voltooid.
Als chromeNode.node is weggelaten, selecteert OpenClaw alleen automatisch wanneer precies één
verbonden Node zowel googlemeet.chrome als browserbediening adverteert. Als
meerdere geschikte Nodes zijn verbonden, stel dan chromeNode.node in op de Node-id,
weergavenaam of externe IP.
Veelvoorkomende foutcontroles:
Configured Google Meet node ... is not usable: offline: de gepinde Node is bekend bij de Gateway maar niet beschikbaar. Agents moeten die Node behandelen als diagnostische status, niet als bruikbare Chrome-host, en de setupblokkade rapporteren in plaats van terug te vallen op een ander transport, tenzij de gebruiker daarom vroeg.No connected Google Meet-capable node: startopenclaw node runin de VM, keur pairing goed en zorg ervoor datopenclaw plugins enable google-meetenopenclaw plugins enable browserin de VM zijn uitgevoerd. Bevestig ook dat de Gateway-host beide Node-opdrachten toestaat metgateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"].BlackHole 2ch audio device not found: installeerblackhole-2chop de host die wordt gecontroleerd en start opnieuw op voordat je lokale Chrome-audio gebruikt.BlackHole 2ch audio device not found on the node: installeerblackhole-2chin de VM en start de VM opnieuw op.- Chrome opent maar kan niet deelnemen: meld je aan bij het browserprofiel binnen de VM, of
houd
chrome.guestNameingesteld voor deelname als gast. Automatisch deelnemen als gast gebruikt OpenClaw- browserautomatisering via de Node-browserproxy; zorg dat de Node-browserconfiguratie wijst naar het profiel dat je wilt, bijvoorbeeldbrowser.defaultProfile: "user"of een benoemd bestaand-sessieprofiel. - Dubbele Meet-tabbladen: laat
chrome.reuseExistingTab: trueingeschakeld. OpenClaw activeert een bestaand tabblad voor dezelfde Meet-URL voordat het een nieuw tabblad opent, en browservergaderingsaanmaak hergebruikt een lopendhttps://meet.google.com/newof Google-accountprompttabblad voordat het een ander opent. - Geen audio: routeer in Meet microfoon/speaker via het virtuele audioapparaatpad dat door OpenClaw wordt gebruikt; gebruik afzonderlijke virtuele apparaten of Loopback-achtige routering voor schone duplexaudio.
Installatie-opmerkingen
De Chrome-realtime-standaard gebruikt twee externe tools:sox: audiohulpprogramma voor de opdrachtregel. De Plugin gebruikt expliciete CoreAudio apparaatopdrachten voor de standaard 24 kHz PCM16-audiobridge.blackhole-2ch: virtueel macOS-audiostuurprogramma. Het maakt hetBlackHole 2chaudioapparaat aan waar Chrome/Meet doorheen kan routeren.
LGPL-2.0-only AND GPL-2.0-only; BlackHole is GPL-3.0. Als je een
installatieprogramma of appliance bouwt die BlackHole met OpenClaw bundelt, controleer dan de
upstream licentievoorwaarden van BlackHole of verkrijg een afzonderlijke licentie van Existential Audio.
Transporten
Chrome
Chrome-transport opent de Meet-URL via OpenClaw-browserbesturing en neemt deel als het aangemelde OpenClaw-browserprofiel. Op macOS controleert de Plugin vóór het starten opBlackHole 2ch. Indien geconfigureerd voert deze ook een health-opdracht
voor de audiobridge en een opstartopdracht uit voordat Chrome wordt geopend. Gebruik chrome wanneer
Chrome/audio op de Gateway-host draait; gebruik chrome-node wanneer Chrome/audio draait
op een gekoppelde node, zoals een Parallels macOS-VM. Kies voor lokale Chrome het
profiel met browser.defaultProfile; chrome.browserProfile wordt doorgegeven aan
chrome-node-hosts.
BlackHole 2ch niet is geïnstalleerd, mislukt deelname met een setupfout
in plaats van stilzwijgend deel te nemen zonder audiopad.
Twilio
Twilio-transport is een strikt belplan dat is gedelegeerd aan de Voice Call Plugin. Het parseert geen Meet-pagina’s voor telefoonnummers. Gebruik dit wanneer deelname via Chrome niet beschikbaar is of wanneer je een telefonische inbelfallback wilt. Google Meet moet een telefonisch inbelnummer en pincode voor de vergadering tonen; OpenClaw ontdekt die niet via de Meet-pagina. Schakel de Voice Call Plugin in op de Gateway-host, niet op de Chrome-node:openclaw.json:
voice-call hebt ingeschakeld; wijzigingen in Plugin-configuratie
verschijnen pas in een al lopend Gateway-proces nadat het opnieuw is geladen.
Controleer daarna:
googlemeet setup geslaagde
controles voor twilio-voice-call-plugin en twilio-voice-call-credentials.
--dtmf-sequence wanneer de vergadering een aangepaste reeks nodig heeft:
OAuth en voorcontrole
OAuth is optioneel voor het maken van een Meet-link, omdatgooglemeet create kan terugvallen
op browserautomatisering. Configureer OAuth wanneer je officiële API-creatie,
space-resolutie of Meet Media API-voorcontroles wilt.
Google Meet API-toegang gebruikt gebruikers-OAuth: maak een Google Cloud OAuth-client,
vraag de vereiste scopes aan, autoriseer een Google-account en sla vervolgens het
resulterende vernieuwingstoken op in de Google Meet Plugin-configuratie of geef de
OPENCLAW_GOOGLE_MEET_*-omgevingsvariabelen op.
OAuth vervangt het Chrome-deelnamepad niet. Chrome- en Chrome-node-transporten
nemen nog steeds deel via een aangemeld Chrome-profiel, BlackHole/SoX en een verbonden
node wanneer je browserdeelname gebruikt. OAuth is alleen voor het officiële Google
Meet API-pad: vergaderruimtes maken, ruimtes oplossen en Meet Media API-
voorcontroles uitvoeren.
Google-referenties maken
In Google Cloud Console:- Maak of selecteer een Google Cloud-project.
- Schakel Google Meet REST API in voor dat project.
-
Configureer het OAuth-toestemmingsscherm.
- Intern is het eenvoudigst voor een Google Workspace-organisatie.
- Extern werkt voor persoonlijke/testopstellingen; terwijl de app in Testing staat, voeg je elk Google-account dat de app zal autoriseren toe als testgebruiker.
-
Voeg de scopes toe die OpenClaw aanvraagt:
https://www.googleapis.com/auth/meetings.space.createdhttps://www.googleapis.com/auth/meetings.space.readonlyhttps://www.googleapis.com/auth/meetings.conference.media.readonly
-
Maak een OAuth-client-ID.
- Applicatietype: Webtoepassing.
-
Geautoriseerde omleidings-URI:
- Kopieer de client-ID en het clientgeheim.
meetings.space.created is vereist door Google Meet spaces.create.
Met meetings.space.readonly kan OpenClaw Meet-URL’s/codes naar ruimtes oplossen.
meetings.conference.media.readonly is voor Meet Media API-voorcontrole en mediawerk;
Google kan Developer Preview-inschrijving vereisen voor daadwerkelijk Media API-gebruik.
Als je alleen browsergebaseerde Chrome-deelname nodig hebt, sla OAuth dan volledig over.
Het vernieuwingstoken aanmaken
Configureeroauth.clientId en optioneel oauth.clientSecret, of geef ze door als
omgevingsvariabelen, en voer vervolgens uit:
oauth-configuratieblok af met een vernieuwingstoken. Deze gebruikt PKCE,
localhost-callback op http://localhost:8085/oauth2callback en een handmatige
kopieer/plak-flow met --manual.
Voorbeelden:
oauth-object op onder de Google Meet Plugin-configuratie:
openclaw googlemeet auth login --json opnieuw uit zodat het vernieuwingstoken de scope meetings.space.created heeft.
OAuth controleren met doctor
Voer de OAuth-doctor uit wanneer je een snelle gezondheidscontrole zonder geheimen wilt:ok, configured,
tokenSource, expiresAt en controlemeldingen; het drukt het toegangstoken,
vernieuwingstoken of clientgeheim niet af.
Veelvoorkomende resultaten:
| Controle | Betekenis |
|---|---|
oauth-config | oauth.clientId plus oauth.refreshToken, of een gecachet toegangstoken, is aanwezig. |
oauth-token | Het gecachete toegangstoken is nog geldig, of het vernieuwingstoken heeft een nieuw toegangstoken aangemaakt. |
meet-spaces-get | Optionele --meeting-controle heeft een bestaande Meet-ruimte opgelost. |
meet-spaces-create | Optionele --create-space-controle heeft een nieuwe Meet-ruimte gemaakt. |
spaces.create aan te tonen, voer je de
controle met bijwerking voor maken uit:
--create-space maakt een wegwerp-Meet-URL. Gebruik dit wanneer je moet bevestigen
dat het Google Cloud-project de Meet API heeft ingeschakeld en dat het geautoriseerde
account de scope meetings.space.created heeft.
Om leestoegang voor een bestaande vergaderruimte aan te tonen:
doctor --oauth --meeting en resolve-space tonen leestoegang aan tot een bestaande
ruimte waartoe het geautoriseerde Google-account toegang heeft. Een 403 van deze controles
betekent meestal dat de Google Meet REST API is uitgeschakeld, dat het toegestemde vernieuwingstoken
de vereiste scope mist, of dat het Google-account geen toegang heeft tot die Meet-
ruimte. Een vernieuwingstokenfout betekent dat je openclaw googlemeet auth login --json opnieuw moet uitvoeren en het nieuwe oauth-blok moet opslaan.
Er zijn geen OAuth-referenties nodig voor de browserfallback. In die modus komt Google-
authenticatie van het aangemelde Chrome-profiel op de geselecteerde node, niet uit
OpenClaw-configuratie.
Deze omgevingsvariabelen worden als fallbacks geaccepteerd:
OPENCLAW_GOOGLE_MEET_CLIENT_IDofGOOGLE_MEET_CLIENT_IDOPENCLAW_GOOGLE_MEET_CLIENT_SECRETofGOOGLE_MEET_CLIENT_SECRETOPENCLAW_GOOGLE_MEET_REFRESH_TOKENofGOOGLE_MEET_REFRESH_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKENofGOOGLE_MEET_ACCESS_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATofGOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATOPENCLAW_GOOGLE_MEET_DEFAULT_MEETINGofGOOGLE_MEET_DEFAULT_MEETINGOPENCLAW_GOOGLE_MEET_PREVIEW_ACKofGOOGLE_MEET_PREVIEW_ACK
spaces/{id} op via spaces.get:
--meeting gebruiken artifacts en attendance standaard het nieuwste conferentierecord.
Geef --all-conference-records door wanneer je elk bewaard record voor die vergadering wilt.
Agenda-opzoeken kan de vergader-URL uit Google Calendar oplossen voordat
Meet-artefacten worden gelezen:
--today doorzoekt de primary agenda van vandaag naar een Calendar-afspraak met een
Google Meet-link. Gebruik --event <query> om te zoeken naar overeenkomende afspraaktekst, en
--calendar <id> voor een niet-primaire agenda. Agenda-opzoeking vereist een nieuwe
OAuth-login met de alleen-lezen-scope voor Calendar-afspraken.
calendar-events toont een voorbeeld van de overeenkomende Meet-afspraken en markeert de afspraak die
latest, artifacts, attendance of export zal kiezen.
Als je de id van het conferentierecord al weet, adresseer die dan direct:
artifacts retourneert metadata van conferentierecords plus metadata van deelnemers,
opnamen, transcripties, gestructureerde transcriptievermeldingen en smart-note-resources wanneer
Google die voor de vergadering beschikbaar stelt. Gebruik --no-transcript-entries om
het opzoeken van vermeldingen voor grote vergaderingen over te slaan. attendance werkt deelnemers uit naar
rijen met deelnemersessies, met tijden voor eerste/laatste waarneming, totale sessieduur,
vlaggen voor te laat/vroeg vertrek, en dubbele deelnemerresources samengevoegd op basis van aangemelde
gebruiker of weergavenaam. Geef --no-merge-duplicates door om onbewerkte deelnemerresources
gescheiden te houden, --late-after-minutes om detectie van te laat komen af te stemmen, en
--early-before-minutes om detectie van vroeg vertrek af te stemmen.
export schrijft een map met summary.md, attendance.csv,
transcript.md, artifacts.json, attendance.json en manifest.json.
manifest.json registreert de gekozen invoer, exportopties, conferentierecords,
uitvoerbestanden, aantallen, tokenbron, Calendar-afspraak wanneer die is gebruikt, en eventuele
waarschuwingen over gedeeltelijke ophaling. Geef --zip door om ook een draagbaar archief naast
de map te schrijven. Geef --include-doc-bodies door om gekoppelde transcript- en
smart-note-Google Docs-tekst via Google Drive files.export te exporteren; hiervoor is een
nieuwe OAuth-login nodig met de alleen-lezen-scope voor Drive Meet. Zonder
--include-doc-bodies bevatten exports alleen Meet-metadata en gestructureerde transcriptievermeldingen.
Als Google een gedeeltelijke artifactfout retourneert, zoals een fout bij het vermelden van smart-notes,
transcriptievermeldingen of Drive-documentinhoud, bewaren de samenvatting en
het manifest de waarschuwing in plaats van de hele export te laten mislukken.
Gebruik --dry-run om dezelfde artifact-/aanwezigheidsgegevens op te halen en de
manifest-JSON af te drukken zonder de map of ZIP te maken. Dat is nuttig voordat je
een grote export schrijft of wanneer een agent alleen aantallen, geselecteerde records en
waarschuwingen nodig heeft.
Agents kunnen dezelfde bundel ook maken via de google_meet-tool:
"dryRun": true in om alleen het exportmanifest te retourneren en bestandswrites over te slaan.
Voer de afgeschermde live smoke uit tegen een echte bewaarde vergadering:
OPENCLAW_LIVE_TEST=1schakelt afgeschermde livetests in.OPENCLAW_GOOGLE_MEET_LIVE_MEETINGverwijst naar een bewaarde Meet-URL, code ofspaces/{id}.OPENCLAW_GOOGLE_MEET_CLIENT_IDofGOOGLE_MEET_CLIENT_IDlevert de OAuth client-id.OPENCLAW_GOOGLE_MEET_REFRESH_TOKENofGOOGLE_MEET_REFRESH_TOKENlevert het vernieuwingstoken.- Optioneel:
OPENCLAW_GOOGLE_MEET_CLIENT_SECRET,OPENCLAW_GOOGLE_MEET_ACCESS_TOKENenOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATgebruiken dezelfde fallbacknamen zonder de prefixOPENCLAW_.
https://www.googleapis.com/auth/meetings.space.readonly en
https://www.googleapis.com/auth/meetings.conference.media.readonly nodig. Agenda-opzoeking
heeft https://www.googleapis.com/auth/calendar.events.readonly nodig. Export van
documentinhoud via Drive heeft
https://www.googleapis.com/auth/drive.meet.readonly nodig.
Maak een nieuwe Meet-ruimte:
meeting uri, bron en deelsessie af. Met OAuth
credentials gebruikt deze de officiële Google Meet-API. Zonder OAuth credentials
gebruikt deze het aangemelde browserprofiel van de vastgezette Chrome-node als fallback. Agents kunnen
de google_meet-tool gebruiken met action: "create" om in één stap te maken en deel te nemen.
Voor alleen URL-aanmaak geef je "join": false door.
Voorbeeld van JSON-uitvoer van de browserfallback:
google_meet-tool gestructureerde details in plaats van een platte tekenreeks:
manualActionRequired: true ziet, moet die de
manualActionMessage plus de browsernode-/tabcontext rapporteren en stoppen met het openen van nieuwe
Meet-tabs totdat de operator de browserstap voltooit.
Voorbeeld van JSON-uitvoer van API-aanmaak:
manualActionRequired: true of een
browserfallbackfout en vraagt het de operator de Google-login te voltooien voordat
opnieuw wordt geprobeerd.
Stel preview.enrollmentAcknowledged: true alleen in nadat je hebt bevestigd dat je Cloud
project, OAuth-principal en vergaderdeelnemers zijn ingeschreven voor het Google
Workspace Developer Preview Program voor Meet-media-API’s.
Config
Het gemeenschappelijke realtimepad via Chrome heeft alleen de Plugin ingeschakeld, BlackHole, SoX en een backend-realtime-spraakproviderkey nodig. OpenAI is de standaard; stelrealtime.provider: "google" in om Google Gemini Live te gebruiken:
plugins.entries.google-meet.config:
defaultTransport: "chrome"defaultMode: "realtime"chromeNode.node: optionele node-id/naam/IP voorchrome-nodechrome.audioBackend: "blackhole-2ch"chrome.guestName: "OpenClaw Agent": naam die wordt gebruikt op het Meet-gastscherm wanneer niet aangemeldchrome.autoJoin: true: best-effort invullen van gastnaam en klik op Nu deelnemen via OpenClaw-browserautomatisering opchrome-nodechrome.reuseExistingTab: true: activeer een bestaande Meet-tab in plaats van duplicaten te openenchrome.waitForInCallMs: 20000: wacht tot de Meet-tab meldt dat deze in een gesprek is voordat de realtime-intro wordt geactiveerdchrome.audioFormat: "pcm16-24khz": audioformaat voor opdrachtparen. Gebruik"g711-ulaw-8khz"alleen voor legacy/aangepaste opdrachtparen die nog steeds telefonieaudio uitsturen.chrome.audioInputCommand: SoX-opdracht die leest uit CoreAudioBlackHole 2chen audio schrijft inchrome.audioFormatchrome.audioOutputCommand: SoX-opdracht die audio leest inchrome.audioFormaten schrijft naar CoreAudioBlackHole 2chrealtime.provider: "openai"realtime.toolPolicy: "safe-read-only"realtime.instructions: korte gesproken antwoorden, metopenclaw_agent_consultvoor diepgaandere antwoordenrealtime.introMessage: korte gesproken gereedheidscontrole wanneer de realtimebridge verbindt; stel dit in op""om stil deel te nemenrealtime.agentId: optionele OpenClaw-agent-id vooropenclaw_agent_consult; standaard ismain
voiceCall.enabled is standaard true; met Twilio-transport delegeert het
het daadwerkelijke PSTN-gesprek en DTMF aan de Voice Call-Plugin. Als voice-call niet
is ingeschakeld, kan Google Meet het belplan nog steeds valideren en opnemen, maar kan het
het Twilio-gesprek niet plaatsen.
Tool
Agents kunnen degoogle_meet-tool gebruiken:
transport: "chrome" wanneer Chrome op de Gateway-host draait. Gebruik
transport: "chrome-node" wanneer Chrome draait op een gekoppelde node, zoals een Parallels
VM. In beide gevallen draaien het realtime model en openclaw_agent_consult op de
Gateway-host, zodat modelcredentials daar blijven.
Gebruik action: "status" om actieve sessies te tonen of een sessie-ID te inspecteren. Gebruik
action: "speak" met sessionId en message om de realtime agent
direct te laten spreken. Gebruik action: "test_speech" om de sessie te maken of te hergebruiken,
een bekende zin te activeren, en inCall-gezondheid te retourneren wanneer de Chrome-host dat kan
rapporteren. test_speech forceert altijd mode: "realtime" en faalt als wordt gevraagd
om in mode: "transcribe" te draaien, omdat sessies die alleen observeren bewust geen
spraak kunnen uitsturen. Het resultaat speechOutputVerified is gebaseerd op realtime audio-uitvoerbytes
die tijdens deze testaanroep toenemen, dus een hergebruikte sessie met oudere audio
telt niet als een nieuwe geslaagde spraakcontrole. Gebruik action: "leave" om
een sessie als beëindigd te markeren.
status bevat Chrome-gezondheid wanneer beschikbaar:
inCall: Chrome lijkt zich in het Meet-gesprek te bevindenmicMuted: best-effort Meet-microfoonstatusmanualActionRequired/manualActionReason/manualActionMessage: het browserprofiel heeft handmatige login, toelating door Meet-host, permissies of herstel van browserbesturing nodig voordat spraak kan werkenproviderConnected/realtimeReady: status van realtime-spraakbridgelastInputAt/lastOutputAt: laatste audio die is gezien vanuit of verzonden naar de bridge
Realtime agentconsult
De realtime modus van Chrome is geoptimaliseerd voor een live spraaklus. De realtime spraakprovider hoort de vergaderaudio en spreekt via de geconfigureerde audiobrug. Wanneer het realtime model diepere redenering, actuele informatie of normale OpenClaw tools nodig heeft, kan hetopenclaw_agent_consult aanroepen.
De consulttool voert achter de schermen de reguliere OpenClaw agent uit met recente transcriptcontext van de vergadering en retourneert een beknopt gesproken antwoord aan de realtime spraaksessie. Het spraakmodel kan dat antwoord vervolgens terugspreken in de vergadering. Het gebruikt dezelfde gedeelde realtime consulttool als Voice Call.
Standaard worden consults uitgevoerd tegen de main agent. Stel realtime.agentId in wanneer een Meet-lane een toegewezen OpenClaw agentwerkruimte, modelstandaarden, toolbeleid, geheugen en sessiegeschiedenis moet consulteren.
realtime.toolPolicy beheert de consultuitvoering:
safe-read-only: stel de consulttool beschikbaar en beperk de reguliere agent totread,web_search,web_fetch,x_search,memory_searchenmemory_get.owner: stel de consulttool beschikbaar en laat de reguliere agent het normale agenttoolbeleid gebruiken.none: stel de consulttool niet beschikbaar aan het realtime spraakmodel.
Checklist voor livetests
Gebruik deze volgorde voordat je een vergadering overdraagt aan een onbeheerde agent:googlemeet setupis volledig groen.googlemeet setupbevatchrome-node-connectedwanneer Chrome-node het standaardtransport is of een node is vastgezet.nodes statustoont dat de geselecteerde node verbonden is.- De geselecteerde node adverteert zowel
googlemeet.chromealsbrowser.proxy. - Het Meet-tabblad neemt deel aan het gesprek en
test-speechretourneert Chrome-gezondheid metinCall: true.
googlemeet setupbevat groene controles voortwilio-voice-call-pluginentwilio-voice-call-credentials.voicecallis beschikbaar in de CLI nadat de Gateway opnieuw is geladen.- De geretourneerde sessie heeft
transport: "twilio"en eentwilio.voiceCallId. googlemeet leave <sessionId>hangt het gedelegeerde spraakgesprek op.
Probleemoplossing
Agent kan de Google Meet-tool niet zien
Controleer of de Plugin is ingeschakeld in de Gateway-configuratie en laad de Gateway opnieuw:plugins.entries.google-meet hebt bewerkt, herstart of herlaad de Gateway. De actieve agent ziet alleen Plugin-tools die door het huidige Gateway-proces zijn geregistreerd.
Geen verbonden node met Google Meet-ondersteuning
Voer op de node-host uit:googlemeet.chrome plus browser.proxy vermelden. De Gateway-configuratie moet die node-opdrachten toestaan:
googlemeet setup faalt op chrome-node-connected of het Gateway-log gateway token mismatch meldt, installeer de node dan opnieuw of herstart deze met het huidige Gateway-token. Voor een LAN-Gateway betekent dit meestal:
Browser opent, maar agent kan niet deelnemen
Voergooglemeet test-speech uit en inspecteer de geretourneerde Chrome-gezondheid. Als deze manualActionRequired: true meldt, toon manualActionMessage aan de operator en stop met opnieuw proberen totdat de browseractie voltooid is.
Veelvoorkomende handmatige acties:
- Meld je aan bij het Chrome-profiel.
- Laat de gast toe vanuit het Meet-hostaccount.
- Geef Chrome microfoon-/camerarechten wanneer de native toestemmingsprompt van Chrome verschijnt.
- Sluit of herstel een vastgelopen Meet-machtigingsdialoog.
Vergadering aanmaken mislukt
googlemeet create gebruikt eerst het Google Meet API-eindpunt spaces.create wanneer OAuth-referenties zijn geconfigureerd. Zonder OAuth-referenties valt het terug op de vastgezette Chrome-nodebrowser. Controleer:
- Voor aanmaken via API:
oauth.clientIdenoauth.refreshTokenzijn geconfigureerd, of overeenkomendeOPENCLAW_GOOGLE_MEET_*omgevingsvariabelen zijn aanwezig. - Voor aanmaken via API: het vernieuwingstoken is uitgegeven nadat ondersteuning voor aanmaken is toegevoegd. Oudere tokens missen mogelijk de scope
meetings.space.created; voeropenclaw googlemeet auth login --jsonopnieuw uit en werk de Plugin-configuratie bij. - Voor browserfallback:
defaultTransport: "chrome-node"enchromeNode.nodewijzen naar een verbonden node metbrowser.proxyengooglemeet.chrome. - Voor browserfallback: het OpenClaw Chrome-profiel op die node is aangemeld bij Google en kan
https://meet.google.com/newopenen. - Voor browserfallback: nieuwe pogingen hergebruiken een bestaand
https://meet.google.com/newof een tabblad met Google-accountprompt voordat een nieuw tabblad wordt geopend. Als een agent een time-out krijgt, probeer de toolaanroep opnieuw in plaats van handmatig nog een Meet-tabblad te openen. - Voor browserfallback: als de tool
manualActionRequired: trueretourneert, gebruik dan de geretourneerdebrowser.nodeId,browser.targetId,browserUrlenmanualActionMessageom de operator te begeleiden. Probeer niet in een lus opnieuw totdat die actie voltooid is. - Voor browserfallback: als Meet “Do you want people to hear you in the meeting?” toont, laat het tabblad open. OpenClaw zou via browserautomatisering op Microfoon gebruiken moeten klikken of, voor fallback alleen voor aanmaken, op Doorgaan zonder microfoon, en blijven wachten op de gegenereerde Meet-URL. Als dat niet kan, moet de fout
meet-audio-choice-requiredvermelden, nietgoogle-login-required.
Agent neemt deel, maar praat niet
Controleer het realtime pad:mode: "realtime" voor luisteren/terugspreken. mode: "transcribe" start opzettelijk niet de duplex realtime spraakbrug. googlemeet test-speech controleert altijd het realtime pad en meldt of bridge-uitvoerbytes voor die aanroep zijn waargenomen. Als speechOutputVerified false is en speechOutputTimedOut true is, heeft de realtime provider de uiting mogelijk geaccepteerd, maar zag OpenClaw geen nieuwe uitvoerbytes de Chrome-audiobrug bereiken.
Controleer ook:
- Er is een realtime providersleutel beschikbaar op de Gateway-host, zoals
OPENAI_API_KEYofGEMINI_API_KEY. BlackHole 2chis zichtbaar op de Chrome-host.soxbestaat op de Chrome-host.- Meet-microfoon en -speaker worden gerouteerd via het virtuele audiopad dat OpenClaw gebruikt.
googlemeet doctor [session-id] print de sessie, node, in-call-status, reden voor handmatige actie, realtime providerverbinding, realtimeReady, audio-invoer-/uitvoeractiviteit, laatste audiotijdstempels, byte-tellers en browser-URL. Gebruik googlemeet status [session-id] wanneer je de ruwe JSON nodig hebt. Gebruik googlemeet doctor --oauth wanneer je Google Meet OAuth-vernieuwing moet verifiëren zonder tokens bloot te leggen; voeg --meeting of --create-space toe wanneer je ook een Google Meet API-bewijs nodig hebt.
Als een agent een time-out kreeg en je ziet dat er al een Meet-tabblad openstaat, inspecteer dat tabblad dan zonder een nieuw tabblad te openen:
recover_current_tab. Deze focust en inspecteert een bestaand Meet-tabblad voor het geselecteerde transport. Met chrome gebruikt deze lokale browserbesturing via de Gateway; met chrome-node gebruikt deze de geconfigureerde Chrome-node. Deze opent geen nieuw tabblad en maakt geen nieuwe sessie aan; deze rapporteert de huidige blokkade, zoals login, toelating, machtigingen of audio-keuzestatus. De CLI-opdracht praat met de geconfigureerde Gateway, dus de Gateway moet actief zijn; chrome-node vereist ook dat de Chrome-node verbonden is.
Twilio-setupcontroles falen
twilio-voice-call-plugin faalt wanneer voice-call niet is toegestaan of niet is ingeschakeld. Voeg het toe aan plugins.allow, schakel plugins.entries.voice-call in en herlaad de Gateway.
twilio-voice-call-credentials faalt wanneer in de Twilio-backend account-SID, auth-token of bellernummer ontbreekt. Stel deze in op de Gateway-host:
voicecall smoke controleert standaard alleen gereedheid. Voor een proefrun met een specifiek nummer:
--yes alleen toe wanneer je bewust een live uitgaand meldingsgesprek wilt plaatsen:
Twilio-gesprek start, maar komt nooit in de vergadering
Controleer of de Meet-gebeurtenis telefoongegevens voor inbellen beschikbaar maakt. Geef het exacte inbelnummer en de PIN of een aangepaste DTMF-reeks door:w of komma’s in --dtmf-sequence als de provider een pauze nodig heeft voordat de PIN wordt ingevoerd.
Notities
De officiële media-API van Google Meet is gericht op ontvangen, dus spreken in een Meet-gesprek heeft nog steeds een deelnemerspad nodig. Deze Plugin houdt die grens zichtbaar: Chrome verwerkt browserdeelname en lokale audioroutering; Twilio verwerkt deelname via telefonisch inbellen. De realtime modus van Chrome heeftBlackHole 2ch nodig plus een van beide:
chrome.audioInputCommandpluschrome.audioOutputCommand: OpenClaw beheert de realtime-modelbrug en leidt audio inchrome.audioFormattussen die opdrachten en de geselecteerde realtime-spraakprovider. Het standaard Chrome-pad is 24 kHz PCM16; 8 kHz G.711 mu-law blijft beschikbaar voor verouderde opdrachtparen.chrome.audioBridgeCommand: een externe brugopdracht beheert het volledige lokale audiopad en moet afsluiten nadat de daemon is gestart of gevalideerd.
googlemeet speak activeert de actieve realtime-audiobrug voor een Chrome-sessie. googlemeet leave stopt die brug. Voor Twilio-sessies die via de Voice Call-Plugin zijn gedelegeerd, hangt leave ook de onderliggende spraakoproep op.