Skip to main content
Das Plugin google-meet tritt im Namen eines OpenClaw-Agenten expliziten Meet-URLs bei. Sein Funktionsumfang ist bewusst eng gefasst:
  • Es tritt ausschließlich https://meet.google.com/...-URLs bei; es wählt sich niemals über eine selbst gefundene Telefonnummer in eine Besprechung ein.
  • googlemeet create kann über die Google Meet API (oder einen Browser-Fallback) eine neue Meet-URL erstellen und ihr standardmäßig beitreten.
  • Die Teilnahme über Chrome verwendet ein angemeldetes Chrome-Profil, optional auf einem gekoppelten Node. Bei der Teilnahme über Twilio wird über das Plugin für Sprachanrufe eine Telefonnummer samt PIN/DTMF gewählt; eine Meet-URL kann damit nicht direkt angewählt werden.
  • mode: "agent" (Standard) transkribiert die Sprache der Teilnehmenden mit einem Echtzeit-Provider, leitet sie an den konfigurierten OpenClaw-Agenten weiter und gibt die Antwort mit der regulären OpenClaw-Sprachausgabe wieder. Mit mode: "bidi" antwortet ein Echtzeit-Sprachmodell direkt. mode: "transcribe" tritt nur zur Beobachtung ohne Sprachantwort bei.
  • Beim Beitritt des Plugins zu einem Anruf erfolgt keine automatische Einwilligungsansage.
  • Der CLI-Befehl lautet googlemeet; meet ist umfassenderen Workflows für Agententelefonkonferenzen vorbehalten.

Schnellstart

Installieren Sie das Plugin und die lokalen Audioabhängigkeiten und legen Sie anschließend einen Schlüssel für einen Echtzeit-Provider fest. OpenAI ist der standardmäßige Transkriptions-Provider für den Modus agent; Google Gemini Live ist als Sprach-Provider für den Modus bidi verfügbar:
blackhole-2ch installiert das virtuelle Audiogerät BlackHole 2ch, über das Chrome das Audio leitet. Das Homebrew-Installationsprogramm erfordert einen Neustart, bevor macOS das Gerät bereitstellt:
Überprüfen Sie nach dem Neustart beide Komponenten:
Das Plugin ist nach der Installation standardmäßig aktiviert. Fügen Sie nur dann einen Eintrag hinzu, wenn Sie es anpassen möchten:
Führen Sie openclaw plugins disable google-meet aus, wenn das Plugin nicht aktiv sein soll. Überprüfen Sie die Einrichtung und treten Sie anschließend bei:
Die Ausgabe von setup ist für Agenten lesbar und berücksichtigt Modus und Transport: Sie meldet das Chrome-Profil, die Bindung an einen Node und bei Echtzeitbeitritten über Chrome die BlackHole-/SoX-Audiobrücke sowie die Prüfung der verzögerten Einführung. Bei Beitritten nur zur Beobachtung werden die Echtzeitvoraussetzungen übersprungen:
Wenn die Twilio-Delegierung konfiguriert ist, meldet setup außerdem, ob voice-call, die Twilio-Anmeldedaten und die öffentliche Webhook-Erreichbarkeit bereit sind. Behandeln Sie jede Prüfung mit dem Ergebnis ok: false für den jeweiligen Transport und Modus als Blocker, bevor ein Agent beitritt. Verwenden Sie --json für eine maschinenlesbare Ausgabe und --transport chrome|chrome-node|twilio, um einen bestimmten Transport vorab zu prüfen:
Alternativ kann ein Agent über das Tool google_meet beitreten:
Auf Gateway-Hosts ohne macOS bleibt google_meet für Artefakt-, Kalender-, Einrichtungs-, Transkriptions-, Twilio- und chrome-node-Aktionen sichtbar. Die lokale Sprachantwort über Chrome (transport: "chrome" mit mode: "agent" oder "bidi") wird jedoch blockiert, bevor sie die Audiobrücke erreicht, da dieser Pfad derzeit von BlackHole 2ch unter macOS abhängt. Verwenden Sie stattdessen mode: "transcribe", die Twilio-Einwahl oder einen macOS-Host chrome-node.

Eine Besprechung erstellen

create verfügt über zwei Pfade, die im Feld source des Ergebnisses angegeben werden:
  • api: Wird verwendet, wenn OAuth-Anmeldedaten für Google Meet konfiguriert sind. Deterministisch; unabhängig vom Zustand der Browseroberfläche.
  • browser: Wird ohne OAuth-Anmeldedaten verwendet. OpenClaw öffnet https://meet.google.com/new auf dem festgelegten Chrome-Node und wartet darauf, dass Google zu einer echten URL mit Besprechungscode weiterleitet; das OpenClaw-Chrome-Profil auf diesem Node muss bereits bei Google angemeldet sein. Sowohl beim Beitreten als auch beim Erstellen wird zunächst ein vorhandener Meet-Tab (oder ein laufender .../new- bzw. Google-Konto-Aufforderungs-Tab) wiederverwendet, bevor ein neuer geöffnet wird. Beim Tab-Abgleich werden unproblematische Abfragezeichenfolgen wie authuser ignoriert.
create tritt standardmäßig bei und gibt joined: true sowie die Beitrittssitzung zurück. Übergeben Sie --no-join (CLI) oder "join": false (Tool), um nur die URL zu erstellen. Legen Sie für über die API erstellte Räume eine explizite Zugriffsrichtlinie fest, anstatt den Standardwert des Google-Kontos zu übernehmen:
Dies gilt nur für über die API erstellte Räume, daher muss OAuth konfiguriert sein. Wenn Sie sich authentifiziert haben, bevor diese Option verfügbar war, führen Sie openclaw googlemeet auth login --json erneut aus, nachdem Sie den Scope meetings.space.settings zu Ihrem OAuth-Zustimmungsbildschirm hinzugefügt haben. Wenn der Browser-Fallback durch eine Google-Anmeldung oder eine Meet-Berechtigungsanforderung blockiert wird, gibt das Tool manualActionRequired: true mit manualActionReason, manualActionMessage und browser.nodeId/browser.targetId/browserUrl zurück. Melden Sie diese Nachricht und öffnen Sie keine weiteren Meet-Tabs, bis die bedienende Person den Schritt im Browser abgeschlossen hat.

Beitritt nur zur Beobachtung

Setzen Sie "mode": "transcribe", um die bidirektionale Echtzeitbrücke zu überspringen (keine BlackHole-/SoX-Anforderung, keine Sprachantwort). Chrome-Beitritte im Transkriptionsmodus überspringen außerdem die Erteilung der OpenClaw-Mikrofon-/Kameraberechtigung sowie den Meet-Pfad Use microphone. Wenn Meet den Zwischendialog zur Audioauswahl anzeigt, versucht die Automatisierung zuerst Continue without microphone. Verwaltete Chrome-Transporte installieren in jedem Modus nach Möglichkeit einen Meet-Untertitelbeobachter, damit dauerhafte Notizen verfügbar sind, ohne den Live-Konsultationspfad des Agenten zu ändern. googlemeet status --json und googlemeet doctor melden captioning, captionsEnabledAttempted, transcriptLines, lastCaptionAt, lastCaptionSpeaker, lastCaptionText sowie einen recentTranscript-Nachlauf. Lesen Sie für das begrenzte Sitzungstranskript den exakt verfolgten Meet-Tab aus:
Der Beobachter bewahrt höchstens 2.000 abgeschlossene Untertitelzeilen auf der Meet-Seite auf. Sichtbarer, fortschreitender Text verbleibt im Status-Nachlauf zur Systemintegrität, bis die Untertitelzeile abgeschlossen ist. Daher kann das Speichern von nextIndex eine spätere Texterweiterung nicht überspringen; beim Verlassen werden sichtbare Zeilen vor dem Snapshot abgeschlossen. droppedLines meldet die am Anfang verlorenen Zeilen, wenn die Obergrenze überschritten wird. Der begrenzte googlemeet transcript-Nachlauf bewahrt weiterhin nur die vier zuletzt beendeten Sitzungen auf und wird mit dem Gateway zurückgesetzt. Unabhängig davon hängt OpenClaw während der gesamten Besprechung abgeschlossene Untertitelzeilen an die gemeinsame Zustandsdatenbank an und schreibt beim Verlassen eine abgeleitete Zusammenfassung. Verwenden Sie openclaw transcripts, um diese dauerhaften Notizen anzuzeigen oder zu exportieren. Automatische Notizen sind standardmäßig aktiviert. Setzen Sie transcripts.enabled: false, um dauerhafte Notizen global zu deaktivieren; der explizite Modus transcribe stellt weiterhin nur seinen begrenzten Live-Nachlauf bereit. Twilio-Beitritte verfügen nicht über den Untertitelstream des Browsers und werden über diesen Pfad nicht erfasst. Für eine Ja/Nein-Abhörprüfung:
Der Befehl tritt im Transkriptionsmodus bei, wartet auf neue Bewegungen bei Untertiteln oder Transkripten und gibt listenVerified, listenTimedOut, Felder für manuelle Aktionen sowie den aktuellen Untertitelzustand zurück.

Zustand der Echtzeitsitzung

Während Sitzungen mit Sprachantwort meldet der Status google_meet den Zustand von Chrome und der Audiobrücke: inCall, manualActionRequired, providerConnected, realtimeReady, audioInputActive, audioOutputActive, Zeitstempel der letzten Ein- und Ausgabe, Bytezähler sowie den Zustand der geschlossenen Brücke. Verwaltete Chrome-Sitzungen geben die Einführungs-/Testphrase erst aus, nachdem der Zustand inCall: true gemeldet wurde; andernfalls wird speechReady: false ausgegeben und der Sprechversuch blockiert, statt ohne Hinweis wirkungslos zu bleiben. Lokale Chrome-Beitritte erfolgen über das angemeldete OpenClaw-Browserprofil und benötigen BlackHole 2ch für den Mikrofon-/Lautsprecherpfad. Ein einzelnes BlackHole-Gerät genügt für einen ersten Funktionstest, kann jedoch ein Echo erzeugen. Verwenden Sie separate virtuelle Geräte oder eine Loopback-ähnliche Verschaltung für sauberes bidirektionales Audio.

Lokales Gateway und Chrome unter Parallels

Innerhalb einer macOS-VM sind weder ein vollständiges Gateway noch ein Modell-API-Schlüssel erforderlich, wenn sie lediglich Chrome bereitstellen soll. Führen Sie das Gateway und den Agenten lokal und einen Node-Host in der VM aus. Installieren Sie die VM-Abhängigkeiten, starten Sie neu und überprüfen Sie die Installation:
Installieren Sie das Plugin in der VM, wo es standardmäßig aktiviert ist, und starten Sie den Node-Host:
Wenn <gateway-host> eine LAN-IP-Adresse ohne TLS ist, lassen Sie dies für das vertrauenswürdige private Netzwerk ausdrücklich zu:
Verwenden Sie beim Installieren als LaunchAgent dasselbe Flag. Es handelt sich um eine Prozessumgebungsvariable, die in der LaunchAgent-Umgebung gespeichert wird, wenn sie beim Installationsbefehl vorhanden ist, und nicht um eine openclaw.json-Einstellung:
Genehmigen Sie den Node auf dem Gateway-Host und bestätigen Sie anschließend, dass er sowohl googlemeet.chrome als auch die Browserfunktion/browser.proxy ankündigt:
Leiten Sie Meet über diesen Node:
Treten Sie nun wie gewohnt vom Gateway-Host aus bei:
Für einen Funktionstest mit einem einzigen Befehl, der eine Sitzung erstellt oder wiederverwendet, eine bekannte Phrase ausgibt und den Sitzungszustand anzeigt:
Während des Echtzeit-Beitritts trägt die Browserautomatisierung den Gastnamen ein, klickt auf Join/Ask to join und bestätigt die beim ersten Start angezeigte Meet-Aufforderung „Use microphone“ (oder „Continue without microphone“ beim Beitritt im reinen Beobachtungsmodus und bei der rein browserbasierten Besprechungserstellung). Wenn das Profil abgemeldet ist, Meet auf die Zulassung durch den Host wartet, Chrome eine Mikrofon-/Kameraberechtigung benötigt oder Meet bei einer nicht beantworteten Aufforderung hängen bleibt, meldet das Ergebnis manualActionRequired: true mit manualActionReason und manualActionMessage. Beenden Sie die Wiederholungsversuche, melden Sie diese Nachricht zusammen mit browserUrl/browserTitle und versuchen Sie es erst erneut, nachdem die manuelle Aktion abgeschlossen wurde. Wenn chromeNode.node ausgelassen wird, trifft OpenClaw nur dann automatisch eine Auswahl, wenn genau ein verbundener Node sowohl googlemeet.chrome als auch Browsersteuerung anbietet. Legen Sie chromeNode.node (Node-ID, Anzeigename oder Remote-IP) fest, wenn mehrere geeignete Nodes verbunden sind.

Häufige Fehlerprüfungen

Installationshinweise

Die standardmäßige Chrome-Antwortfunktion verwendet zwei externe Werkzeuge, die OpenClaw weder bündelt noch weiterverteilt. Installieren Sie sie über Homebrew als Host-Abhängigkeiten:
  • sox: Befehlszeilen-Audiowerkzeug. Das Plugin führt für die standardmäßige 24-kHz-PCM16-Audiobrücke explizite CoreAudio-Gerätebefehle aus.
  • blackhole-2ch: Virtueller macOS-Audiotreiber, der das Gerät BlackHole 2ch bereitstellt, über das Chrome/Meet geleitet wird.
SoX ist unter LGPL-2.0-only AND GPL-2.0-only lizenziert; BlackHole unter GPL-3.0. Wenn Sie ein Installationsprogramm oder eine Appliance erstellen, das bzw. die BlackHole mit OpenClaw bündelt, prüfen Sie die Lizenzierung des BlackHole-Upstream-Projekts oder erwerben Sie eine separate Lizenz von Existential Audio.

Transporte

Chrome

Öffnet die Meet-URL über die OpenClaw-Browsersteuerung und tritt mit dem angemeldeten OpenClaw-Browserprofil bei. Unter macOS prüft das Plugin vor dem Start auf BlackHole 2ch und führt, sofern konfiguriert, einen Befehl zur Zustandsprüfung/zum Start der Audiobrücke aus, bevor Chrome geöffnet wird. Wählen Sie für lokales Chrome das Profil mit browser.defaultProfile; chrome.browserProfile wird stattdessen an chrome-node-Hosts übergeben.
Mikrofon-/Lautsprecheraudio von Chrome wird über die lokale OpenClaw-Audiobrücke geleitet. Wenn BlackHole 2ch nicht installiert ist, schlägt der Beitritt mit einem Einrichtungsfehler fehl, statt ohne Audiopfad beizutreten.

Twilio

Ein strikter, an das Voice-Call-Plugin delegierter Wählplan. Meet-Seiten werden nicht nach Telefonnummern durchsucht; Google Meet muss für die Besprechung eine telefonische Einwahlnummer und PIN bereitstellen. Aktivieren Sie Voice Call auf dem Gateway-Host, nicht auf dem Chrome-Node:
Stellen Sie die Twilio-Anmeldedaten über die Umgebung bereit, damit Geheimnisse nicht in openclaw.json gespeichert werden:
Verwenden Sie stattdessen realtime.provider: "openai" mit OPENAI_API_KEY, wenn OpenAI der Echtzeit-Sprach-Provider ist. Starten oder laden Sie das Gateway nach der Aktivierung von voice-call neu; Änderungen an der Plugin-Konfiguration werden erst nach dem Neuladen wirksam. Überprüfung:
Wenn die Twilio-Delegierung eingerichtet ist, enthält googlemeet setup Prüfungen für twilio-voice-call-plugin, twilio-voice-call-credentials und twilio-voice-call-webhook.
Verwenden Sie --dtmf-sequence für eine benutzerdefinierte Sequenz, mit vorangestelltem w oder Kommas für eine Pause vor der PIN:

OAuth und Vorabprüfung

OAuth ist für die Erstellung eines Meet-Links optional, da googlemeet create auf Browserautomatisierung ausweichen kann. Konfigurieren Sie OAuth für die Erstellung über die offizielle API, die Space-Auflösung oder die Vorabprüfung der Meet Media API. Beitritte über Chrome/Chrome-Node hängen nie von OAuth ab; sie verwenden in jedem Fall ein angemeldetes Chrome-Profil, BlackHole/SoX und (für chrome-node) einen verbundenen Node.

Google-Anmeldedaten erstellen

In der Google Cloud Console:
1

Projekt erstellen oder auswählen

2

Google Meet REST API aktivieren

3

OAuth-Zustimmungsbildschirm konfigurieren

Internal ist für eine Google-Workspace-Organisation am einfachsten. External eignet sich für persönliche/Testeinrichtungen. Solange sich die App in Testing befindet, fügen Sie jedes Google-Konto, das sie autorisieren soll, als Testnutzer hinzu.
4

Angeforderte Bereiche hinzufügen

  • https://www.googleapis.com/auth/meetings.space.created
  • https://www.googleapis.com/auth/meetings.space.readonly
  • https://www.googleapis.com/auth/meetings.space.settings
  • https://www.googleapis.com/auth/meetings.conference.media.readonly
  • https://www.googleapis.com/auth/calendar.events.readonly (Kalendersuche)
  • https://www.googleapis.com/auth/drive.meet.readonly (Export des Dokumentinhalts von Transkripten/intelligenten Notizen)
5

OAuth-Client-ID erstellen

Anwendungstyp Web application. Autorisierte Weiterleitungs-URI:
6

Client-ID und Client-Secret kopieren

meetings.space.created wird von spaces.create benötigt. meetings.space.readonly löst Meet-URLs/-Codes in Spaces auf. Mit meetings.space.settings kann OpenClaw bei der API-Raumerstellung SpaceConfig-Einstellungen wie accessType übergeben. meetings.conference.media.readonly ist für die Vorabprüfung und Medienfunktionen der Meet Media API vorgesehen; Google kann für die tatsächliche Nutzung der Media API eine Anmeldung zum Developer Preview verlangen. calendar.events.readonly wird nur für die Kalendersuche mit --today/--event benötigt. drive.meet.readonly wird nur für den Export mit --include-doc-bodies benötigt. Wenn Sie ausschließlich browserbasierte Chrome-Beitritte benötigen, überspringen Sie OAuth vollständig.

Aktualisierungstoken erzeugen

Konfigurieren Sie oauth.clientId und optional oauth.clientSecret (oder übergeben Sie sie als Umgebungsvariablen) und führen Sie anschließend Folgendes aus:
Dadurch wird ein PKCE-Ablauf mit einem Localhost-Callback auf http://localhost:8085/oauth2callback ausgeführt und ein oauth-Konfigurationsblock mit einem Aktualisierungstoken ausgegeben. Fügen Sie --manual für einen Kopieren-und-Einfügen-Ablauf hinzu, wenn der Browser den lokalen Callback nicht erreichen kann:
JSON-Ausgabe:
Speichern Sie das oauth-Objekt unter der Plugin-Konfiguration:
Bevorzugen Sie Umgebungsvariablen, wenn das Aktualisierungstoken nicht in der Konfiguration gespeichert werden soll; zuerst wird die Konfiguration aufgelöst, danach dient die Umgebung als Ausweichlösung. Wenn Sie sich authentifiziert haben, bevor Unterstützung für Besprechungserstellung, Kalendersuche oder den Export von Dokumentinhalten verfügbar war, führen Sie openclaw googlemeet auth login --json erneut aus, damit das Aktualisierungstoken den aktuellen Bereichssatz abdeckt.

OAuth mit doctor überprüfen

Dies prüft, ob die OAuth-Konfiguration vorhanden ist und das Aktualisierungstoken ein Zugriffstoken ausstellen kann, ohne die Chrome-Laufzeit zu laden oder eine verbundene Node zu benötigen. Der Bericht enthält ausschließlich Statusfelder (ok, configured, tokenSource, expiresAt, Prüfmeldungen) und gibt niemals das Zugriffstoken, das Aktualisierungstoken oder das Client-Geheimnis aus. Weisen Sie die Aktivierung der Meet API und den Geltungsbereich spaces.create mit der zustandsverändernden Erstellungsprüfung nach:
Weisen Sie den Lesezugriff auf einen vorhandenen Raum nach:
Ein 403 bei diesen Prüfungen bedeutet normalerweise, dass die Meet REST API deaktiviert ist, dem Aktualisierungstoken der erforderliche Geltungsbereich fehlt oder das Google-Konto nicht auf diesen Raum zugreifen kann. Ein Aktualisierungstokenfehler bedeutet, dass openclaw googlemeet auth login --json erneut ausgeführt und der neue Block oauth gespeichert werden muss. Für den Browser-Fallback ist kein OAuth erforderlich; die Google-Authentifizierung stammt dort aus dem angemeldeten Chrome-Profil auf der ausgewählten Node und nicht aus der OpenClaw-Konfiguration. Diese Umgebungsvariablen werden als Fallbacks akzeptiert:
  • OPENCLAW_GOOGLE_MEET_CLIENT_ID oder GOOGLE_MEET_CLIENT_ID
  • OPENCLAW_GOOGLE_MEET_CLIENT_SECRET oder GOOGLE_MEET_CLIENT_SECRET
  • OPENCLAW_GOOGLE_MEET_REFRESH_TOKEN oder GOOGLE_MEET_REFRESH_TOKEN
  • OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN oder GOOGLE_MEET_ACCESS_TOKEN
  • OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT oder GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT
  • OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING oder GOOGLE_MEET_DEFAULT_MEETING
  • OPENCLAW_GOOGLE_MEET_PREVIEW_ACK oder GOOGLE_MEET_PREVIEW_ACK

Artefakte auflösen, vorab prüfen und lesen

Nachdem Meet Konferenzdatensätze erstellt hat:
Mit --meeting verwenden artifacts und attendance standardmäßig den neuesten Konferenzdatensatz; übergeben Sie --all-conference-records für jeden aufbewahrten Datensatz. Die Kalendersuche löst die Besprechungs-URL aus Google Calendar auf, bevor Artefakte gelesen werden (erfordert ein Aktualisierungstoken, das den schreibgeschützten Geltungsbereich für Kalenderereignisse enthält):
--today durchsucht den heutigen Kalender primary nach einem Ereignis mit einem Meet-Link; --event <query> durchsucht übereinstimmenden Ereignistext; --calendar <id> richtet sich an einen nicht primären Kalender. calendar-events zeigt übereinstimmende Ereignisse in der Vorschau an und kennzeichnet, welches davon latest/artifacts/attendance/export auswählt. Wenn Sie die ID des Konferenzdatensatzes bereits kennen, sprechen Sie ihn direkt an:
Schließen Sie den Raum für einen über die API erstellten Raum:
Ruft spaces.endActiveConference auf und erfordert OAuth mit dem Geltungsbereich meetings.space.created für einen Raum, den das autorisierte Konto verwalten kann. Akzeptiert eine Meet-URL, einen Besprechungscode oder spaces/{id} und löst die Angabe zunächst in die API-Raumressource auf. Dies ist von googlemeet leave getrennt: leave beendet die lokale/Sitzungsteilnahme von OpenClaw; end-active-conference fordert Google Meet auf, die aktive Konferenz für den Raum zu beenden. Schreiben Sie einen lesbaren Bericht:
artifacts gibt Metadaten des Konferenzdatensatzes sowie Ressourcenmetadaten zu Teilnehmern, Aufzeichnungen, Transkripten, strukturierten Transkripteinträgen und intelligenten Notizen zurück, wenn Google diese bereitstellt. --no-transcript-entries überspringt die Eintragssuche bei großen Besprechungen. attendance erweitert Teilnehmer zu Teilnehmer-Sitzungszeilen mit Zeitpunkten der ersten/letzten Anwesenheit, gesamter Sitzungsdauer, Kennzeichnungen für Verspätung/vorzeitiges Verlassen sowie doppelten Teilnehmerressourcen, die anhand des angemeldeten Benutzers oder Anzeigenamens zusammengeführt werden; --no-merge-duplicates hält Rohressourcen getrennt, --late-after-minutes/--early-before-minutes passen die Schwellenwerte an. export schreibt einen Ordner mit summary.md, attendance.csv, transcript.md, artifacts.json, attendance.json und manifest.json. manifest.json zeichnet die ausgewählte Eingabe, Exportoptionen, Konferenzdatensätze, Ausgabedateien, Anzahlen, Tokenquelle, jedes verwendete Kalenderereignis und Warnungen zu unvollständigen Abrufen auf. --zip schreibt außerdem ein portables Archiv neben den Ordner. --include-doc-bodies exportiert den Text verknüpfter Google Docs für Transkripte/intelligente Notizen über Drive files.export (erfordert den schreibgeschützten Drive-Meet-Geltungsbereich); ohne diese Option enthalten Exporte nur Meet-Metadaten und strukturierte Transkripteinträge. Bei einem teilweisen Artefaktfehler (Fehler beim Auflisten intelligenter Notizen, bei Transkripteinträgen oder Dokumentinhalten) bleibt die Warnung in der Zusammenfassung/im Manifest erhalten, anstatt den gesamten Export fehlschlagen zu lassen. --dry-run ruft dieselben Daten ab und gibt das Manifest-JSON aus, ohne den Ordner oder die ZIP-Datei zu erstellen. Agenten verwenden dieselben Aktionen über das Werkzeug google_meet (export, create mit accessType, end_active_conference, test_listen); siehe Werkzeug.

Live-Funktionstest

Der grundlegende Funktionstest für Artefakte/Anwesenheit benötigt meetings.space.readonly und meetings.conference.media.readonly. Die Kalendersuche benötigt calendar.events.readonly. Der Export von Drive-Dokumentinhalten benötigt drive.meet.readonly.

Erstellungsbeispiele

Gibt den neuen Besprechungs-URI, die Quelle und die Beitrittssitzung aus. Mit OAuth verwendet der Befehl die Meet API; ohne OAuth das angemeldete Profil der angehefteten Chrome-Node. JSON des Browser-Fallbacks:
Wenn der Browser-Fallback zuerst auf die Google-Anmeldung oder eine Meet-Berechtigungssperre stößt, gibt google_meet strukturierte Details anstelle einer einfachen Zeichenfolge zurück:
JSON der API-Erstellung:
Beim Erstellen erfolgt standardmäßig ein Beitritt, aber Chrome/Chrome-Node benötigt weiterhin ein angemeldetes Google-Profil, um über den Browser beizutreten; wenn es abgemeldet ist, meldet OpenClaw manualActionRequired: true oder einen Browser-Fallbackfehler und fordert den Betreiber auf, die Google-Anmeldung abzuschließen, bevor er es erneut versucht. Setzen Sie preview.enrollmentAcknowledged: true erst, nachdem bestätigt wurde, dass Ihr Cloud-Projekt, Ihr OAuth-Prinzipal und die Besprechungsteilnehmer am Google Workspace Developer Preview Program für Meet-Medien-APIs teilnehmen.

Konfiguration

Der übliche Chrome-Agentenpfad benötigt lediglich das aktivierte Plugin, BlackHole, SoX, einen Echtzeit-Provider-Schlüssel und einen konfigurierten OpenClaw-TTS-Provider:

Standardwerte

Mit chrome.audioBridgeCommand und chrome.audioBridgeHealthCommand kann eine externe Bridge den gesamten lokalen Audiopfad anstelle von chrome.audioInputCommand/chrome.audioOutputCommand übernehmen; die Einschränkung, welcher Modus sie verwenden kann, finden Sie unter Hinweise. Für die veraltete Struktur realtime.provider: "google" ist eine openclaw doctor --fix-Migration vorhanden: Sie überträgt diese Absicht auf realtime.voiceProvider: "google" und realtime.transcriptionProvider: "openai", sofern diese Felder nicht bereits gesetzt sind.

Optionale Überschreibungen

ElevenLabs sowohl für das Zuhören als auch für das Sprechen im Agentenmodus:
Die dauerhafte Meet-Stimme stammt aus tts.providers.elevenlabs.speakerVoiceId. Agentenantworten können auch antwortspezifische [[tts:speakerVoiceId=... model=eleven_v3]]-Direktiven verwenden, wenn Überschreibungen des TTS-Modells aktiviert sind; für Meetings ist die Konfiguration jedoch der deterministische Standard. Beim Beitritt zeigen die Protokolle transcriptionProvider=elevenlabs, und jede gesprochene Antwort protokolliert provider=elevenlabs model=eleven_v3 speakerVoiceId=<voiceId>. Nur-Twilio-Konfiguration:
Mit voiceCall.enabled: true (dem Standardwert) und Twilio-Transport sendet Voice Call die DTMF-Sequenz, bevor der Echtzeit-Medienstream geöffnet wird, und verwendet anschließend den gespeicherten Begrüßungstext als anfängliche Echtzeit-Begrüßung. Wenn voice-call nicht aktiviert ist, kann Google Meet den Wählplan weiterhin validieren und aufzeichnen, aber den Twilio-Anruf nicht tätigen. Lassen Sie voiceCall.gatewayUrl nicht gesetzt, um die lokale vertrauenswürdige Gateway-Laufzeit zu verwenden, die den aufrufenden Agenten für den gesamten Aufruf beibehält. Eine konfigurierte Gateway-URL bleibt ein explizites WebSocket-Ziel und kann die Herkunft des Plugins nicht authentifizieren; Beitritte von nicht standardmäßigen Agenten schlagen geschlossen fehl, statt stillschweigend einen anderen Agenten zu verwenden. Führen Sie Google Meet und Voice Call im selben Gateway-Prozess aus, wenn ein agentenspezifisches Routing erforderlich ist.

Tool

Agenten verwenden das Tool google_meet:
test_speech erzwingt immer mode: "agent" oder "bidi" und schlägt fehl, wenn die Ausführung in mode: "transcribe" angefordert wird, da reine Beobachtungssitzungen keine Sprache ausgeben können. speechOutputVerified erfordert sowohl neue Echtzeit-Ausgabebytes als auch neues nicht stummes Audio, das während dieser Ausgabe über den Mikrofon-Aufnahmepfad der Bridge zurückkehrt. Ältere Ausgaben oder Loopback-Signale einer wiederverwendeten Sitzung zählen nicht, und das alleinige Anwachsen der Sink-Bytes meldet keine verifizierte Sprachausgabe mehr. Bei Chrome-Transporten lässt leave einen wiederverwendeten Tab im Besitz des Benutzers geöffnet, nachdem auf die Meet-Schaltfläche Leave call geklickt wurde. Von OpenClaw geöffnete Tabs werden nach dem Verlassen geschlossen. Verwenden Sie transport: "chrome", wenn Chrome auf dem Gateway-Host ausgeführt wird, und transport: "chrome-node", wenn es auf einer gekoppelten Node ausgeführt wird. In beiden Fällen werden die Modell-Provider und openclaw_agent_consult auf dem Gateway-Host ausgeführt, sodass die Modell-Anmeldedaten dort verbleiben. Protokolle im Agentenmodus enthalten beim Start der Bridge den aufgelösten Transkriptions-Provider und das Modell sowie nach jeder synthetisierten Antwort den TTS-Provider, das Modell, die Stimme, das Ausgabeformat und die Abtastrate. Das unverarbeitete mode: "realtime" wird weiterhin als Legacy-Kompatibilitätsalias für mode: "agent" akzeptiert, aber nicht mehr in der mode-Enumeration des Tools angeboten. create mit einem API-gestützten Raum und einer expliziten Zugriffsrichtlinie:
Die aktive Konferenz eines bekannten Raums beenden:
Validierung mit vorrangigem Zuhören, bevor eine Besprechung als nutzbar bezeichnet wird:
Sprechen auf Anforderung:
status enthält den Chrome-Zustand, sofern verfügbar:

Agenten- und Bidi-Modi

agent-Modus: Der Echtzeit-Transkriptions-Provider hört das Besprechungsaudio, endgültige Teilnehmertranskripte werden durch den konfigurierten OpenClaw-Agenten geleitet und die Antwort wird über die reguläre OpenClaw-TTS ausgegeben. Zeitlich nahe endgültige Transkriptfragmente werden vor der Konsultation zusammengeführt, damit eine gesprochene Äußerung nicht mehrere veraltete Teilantworten erzeugt; Echtzeiteingaben werden unterdrückt, solange Audioausgaben des Assistenten in der Warteschlange noch wiedergegeben werden, und kürzlich aufgezeichnete, assistentenähnliche Transkriptechos werden vor der Konsultation ignoriert, damit der BlackHole-Loopback den Agenten nicht auf seine eigene Sprachausgabe antworten lässt. bidi-Modus: Das Echtzeit-Sprachmodell antwortet direkt und kann openclaw_agent_consult für tiefere Schlussfolgerungen, aktuelle Informationen oder normale OpenClaw-Tools aufrufen. Das Konsultationstool führt im Hintergrund den regulären OpenClaw-Agenten mit dem Kontext des aktuellen Besprechungstranskripts aus und gibt eine prägnante gesprochene Antwort zurück; im agent-Modus sendet OpenClaw diese Antwort direkt an TTS, im bidi-Modus kann das Echtzeit-Sprachmodell sie aussprechen. Es verwendet dieselbe gemeinsame Konsultationslogik wie Voice Call. Standardmäßig werden Konsultationen für den Agenten main ausgeführt; setzen Sie realtime.agentId, um eine Meet-Spur auf einen dedizierten Agenten-Arbeitsbereich, Modellstandards, eine Tool-Richtlinie, den Speicher und den Sitzungsverlauf auszurichten. Konsultationen im Agentenmodus verwenden einen besprechungsspezifischen agent:<id>:subagent:google-meet:<session>-Sitzungsschlüssel, damit Folgefragen den Besprechungskontext beibehalten und zugleich die normale Agentenrichtlinie übernehmen. Wenn ein Agent google_meet im Agentenmodus aufruft, verzweigt die Konsultationssitzung vor der Beantwortung der Teilnehmeräußerung vom aktuellen Transkript des Aufrufers; die Meet-Sitzung bleibt getrennt, damit Folgefragen in der Besprechung das Transkript des Aufrufers nicht direkt verändern. realtime.toolPolicy steuert den Konsultationslauf: Der Konsultationssitzungsschlüssel ist auf die jeweilige Meet-Sitzung beschränkt, sodass nachfolgende Konsultationsaufrufe während derselben Besprechung den vorherigen Konsultationskontext wiederverwenden. Eine gesprochene Bereitschaftsprüfung erzwingen, nachdem Chrome vollständig beigetreten ist:
Vollständiger Beitritts- und Sprachtest:

Checkliste für Live-Tests

Bevor Sie eine Besprechung an einen unbeaufsichtigten Agenten übergeben:
Erwarteter Chrome-Node-Zustand:
  • googlemeet setup ist vollständig grün und umfasst chrome-node-connected, wenn Chrome-node der Standardtransport oder ein Node festgelegt ist.
  • nodes status zeigt den ausgewählten Node als verbunden an, wobei sowohl googlemeet.chrome als auch browser.proxy angekündigt werden.
  • Der Meet-Tab tritt bei, und test-speech gibt den Chrome-Zustand mit inCall: true zurück.
Für einen entfernten Chrome-Host wie eine Parallels-macOS-VM ist dies die kürzeste sichere Prüfung nach einer Aktualisierung des Gateway oder der VM:
Damit wird nachgewiesen, dass das Gateway-Plugin geladen ist, der VM-Node mit dem aktuellen Token verbunden ist und die Meet-Audiobrücke verfügbar ist, bevor ein Agent einen echten Besprechungs-Tab öffnet. Verwenden Sie für einen Twilio-Smoke-Test eine Besprechung, die Telefoneinwahldaten bereitstellt:
Erwarteter Twilio-Status:
  • googlemeet setup umfasst grüne Prüfungen für twilio-voice-call-plugin, twilio-voice-call-credentials und twilio-voice-call-webhook.
  • voicecall ist nach dem Neuladen des Gateway in der CLI verfügbar.
  • Die zurückgegebene Sitzung enthält transport: "twilio" und eine twilio.voiceCallId.
  • openclaw logs --follow zeigt, dass DTMF-TwiML vor Echtzeit-TwiML bereitgestellt wurde, gefolgt von einer Echtzeitbrücke mit der eingereihten anfänglichen Begrüßung.
  • googlemeet leave <sessionId> beendet den delegierten Sprachanruf.

Fehlerbehebung

Agent kann das Google-Meet-Tool nicht sehen

Vergewissern Sie sich, dass das Plugin aktiviert ist, und laden Sie das Gateway neu. Der laufende Agent sieht nur Plugin-Tools, die vom aktuellen Gateway-Prozess registriert wurden:
Auf Gateway-Hosts ohne macOS bleibt google_meet sichtbar, lokale Chrome-Talkback-Aktionen werden jedoch blockiert, bevor sie die Audiobrücke erreichen. Verwenden Sie statt des standardmäßigen lokalen Chrome-Agent-Pfads mode: "transcribe", die Twilio-Einwahl oder einen macOS-Host vom Typ chrome-node.

Kein verbundener Google-Meet-fähiger Node

Auf dem Node-Host:
Auf dem Gateway-Host:
Der Node muss verbunden sein und googlemeet.chrome sowie browser.proxy auflisten. Die Gateway-Konfiguration muss beides zulassen:
Wenn googlemeet setup bei chrome-node-connected fehlschlägt oder das Gateway-Protokoll gateway token mismatch meldet, installieren Sie den Node mit dem aktuellen Gateway-Token neu oder starten Sie ihn damit neu:
Laden Sie anschließend den Node-Dienst neu und führen Sie Folgendes erneut aus:

Browser wird geöffnet, aber Agent kann nicht beitreten

Führen Sie googlemeet test-listen für reine Beobachterbeitritte oder googlemeet test-speech für Echtzeitbeitritte aus und prüfen Sie anschließend den zurückgegebenen Chrome-Zustand. Wenn eine der beiden Aktionen manualActionRequired: true meldet, zeigen Sie dem Bediener manualActionMessage und versuchen Sie es erst erneut, wenn die Browseraktion abgeschlossen ist. Häufige manuelle Aktionen: beim Chrome-Profil anmelden; den Gast über das Meet-Hostkonto zulassen; Chrome Mikrofon-/Kameraberechtigungen erteilen, wenn die native Eingabeaufforderung erscheint; einen hängen gebliebenen Meet-Berechtigungsdialog schließen oder beheben. Melden Sie nicht „nicht angemeldet“, nur weil Meet fragt „Do you want people to hear you in the meeting?“; dies ist die Audioauswahl-Zwischenseite von Meet. OpenClaw klickt, sofern verfügbar, per Browserautomatisierung auf Use microphone und wartet weiter auf den tatsächlichen Besprechungsstatus. Beim reinen Erstellen über den Browser-Fallback kann OpenClaw stattdessen auf Continue without microphone klicken, da zum Erzeugen der URL kein Echtzeit-Audiopfad erforderlich ist.

Erstellen der Besprechung schlägt fehl

googlemeet create verwendet bei konfiguriertem OAuth die Meet-API spaces.create, andernfalls den Browser des festgelegten Chrome-Node. Prüfen Sie Folgendes:
  • API-Erstellung: oauth.clientId und oauth.refreshToken (oder entsprechende OPENCLAW_GOOGLE_MEET_*-Umgebungsvariablen) sind vorhanden, und das Aktualisierungstoken wurde erstellt, nachdem die Erstellungsunterstützung hinzugefügt wurde. Älteren Token fehlt möglicherweise meetings.space.created; führen Sie daher openclaw googlemeet auth login --json erneut aus.
  • Browser-Fallback: defaultTransport: "chrome-node" und chromeNode.node verweisen auf einen verbundenen Node mit browser.proxy und googlemeet.chrome. Das OpenClaw-Chrome-Profil auf diesem Node ist angemeldet und kann https://meet.google.com/new öffnen.
  • Browser-Fallback-Wiederholungen: Verwenden Sie einen vorhandenen .../new- oder Google-Konto-Eingabeaufforderungs-Tab erneut, bevor Sie einen neuen öffnen. Wiederholen Sie den Tool-Aufruf, statt manuell einen weiteren Tab zu öffnen.
  • Manuelle Aktion: Wenn das Tool manualActionRequired: true zurückgibt, verwenden Sie browser.nodeId, browser.targetId, browserUrl und manualActionMessage, um den Bediener anzuleiten. Wiederholen Sie den Vorgang nicht in einer Schleife.
  • Audioauswahl-Zwischenseite: Wenn Meet „Do you want people to hear you in the meeting?“ anzeigt, lassen Sie den Tab geöffnet. OpenClaw sollte auf Use microphone oder – nur beim Erstellen – auf Continue without microphone klicken und weiter auf die generierte URL warten. Ist dies nicht möglich, sollte der Fehler meet-audio-choice-required und nicht google-login-required erwähnen.

Agent tritt bei, spricht aber nicht

Verwenden Sie mode: "agent" für den Pfad STT -> OpenClaw-Agent -> TTS und mode: "bidi" für den direkten Echtzeit-Sprachfallback. mode: "transcribe" startet absichtlich keine Talkback-Brücke. Führen Sie zur Fehlerbehebung im reinen Beobachtermodus openclaw googlemeet status --json <session-id> aus, nachdem Teilnehmer gesprochen haben, und prüfen Sie captioning, transcriptLines und lastCaptionText. Wenn inCall wahr ist, transcriptLines jedoch 0 bleibt, sind möglicherweise Meet-Untertitel deaktiviert, seit der Installation des Beobachters hat niemand gesprochen, die Meet-Benutzeroberfläche wurde geändert oder Live-Untertitel sind für die Sprache beziehungsweise das Konto der Besprechung nicht verfügbar. googlemeet test-speech prüft immer den Echtzeitpfad und meldet, ob bei diesem Aufruf Ausgabebytes der Brücke beobachtet wurden. Wenn speechOutputVerified falsch und speechOutputTimedOut wahr ist, hat der Echtzeit-Provider die Äußerung möglicherweise akzeptiert, OpenClaw hat jedoch nicht beobachtet, dass neue Ausgabebytes die Chrome-Audiobrücke erreichten. Prüfen Sie außerdem Folgendes: Auf dem Gateway-Host ist ein Schlüssel für einen Echtzeit-Provider (OPENAI_API_KEY oder GEMINI_API_KEY) verfügbar; BlackHole 2ch ist auf dem Chrome-Host sichtbar; sox ist dort vorhanden; Meet-Mikrofon und -Lautsprecher werden über den virtuellen Audiopfad geleitet (doctor sollte bei lokalen Chrome-Echtzeitbeitritten meet output routed: yes anzeigen). googlemeet doctor [session-id] gibt Sitzung, Node, Anrufstatus, Grund für die manuelle Aktion, Verbindung zum Echtzeit-Provider, realtimeReady, Audioeingabe-/Audioausgabeaktivität, letzte Audiozeitstempel, Bytezähler und Browser-URL aus. Verwenden Sie googlemeet status [session-id] --json für unformatiertes JSON und googlemeet doctor --oauth (ergänzen Sie --meeting oder --create-space), um die OAuth-Aktualisierung zu überprüfen, ohne Token offenzulegen. Wenn bei einem Agent eine Zeitüberschreitung aufgetreten ist und bereits ein Meet-Tab geöffnet ist, prüfen Sie ihn, ohne einen weiteren zu öffnen:
Die entsprechende Tool-Aktion ist recover_current_tab: Sie fokussiert und prüft einen vorhandenen Meet-Tab für den ausgewählten Transport – lokale Browsersteuerung für chrome, der konfigurierte Node für chrome-node –, ohne einen neuen Tab oder eine neue Sitzung zu öffnen, und meldet die aktuelle Blockade (Anmeldung, Zulassung, Berechtigungen, Audioauswahlstatus). Der CLI-Befehl kommuniziert mit dem konfigurierten Gateway, das ausgeführt werden muss. chrome-node setzt außerdem voraus, dass der Node verbunden ist.

Twilio-Einrichtungsprüfungen schlagen fehl

twilio-voice-call-plugin schlägt fehl, wenn voice-call nicht zulässig oder nicht aktiviert ist: Fügen Sie es zu plugins.allow hinzu, aktivieren Sie plugins.entries.voice-call und laden Sie das Gateway neu. twilio-voice-call-credentials schlägt fehl, wenn im Twilio-Backend die Konto-SID, das Authentifizierungstoken oder die Anrufernummer fehlt:
twilio-voice-call-webhook schlägt fehl, wenn voice-call keine öffentliche Webhook-Bereitstellung besitzt oder publicUrl auf den Loopback-/privaten Netzwerkbereich verweist. Verwenden Sie localhost, 127.0.0.1, 0.0.0.0, 10.x, 172.16.x-172.31.x, 192.168.x, 169.254.x, fc00::/7 oder fd00::/8 nicht als publicUrl; Netzbetreiber-Callbacks können diese Adressen nicht erreichen. Legen Sie plugins.entries.voice-call.config.publicUrl auf eine öffentliche URL fest oder konfigurieren Sie die Bereitstellung über einen Tunnel/Tailscale:
Verwenden Sie für die lokale Entwicklung statt einer privaten Host-URL die Bereitstellung über einen Tunnel oder Tailscale:
Starten oder laden Sie das Gateway neu und führen Sie anschließend Folgendes aus:
voicecall smoke prüft standardmäßig nur die Bereitschaft. Führen Sie einen Probelauf für eine bestimmte Nummer durch:
Fügen Sie --yes nur hinzu, wenn absichtlich ein echter ausgehender Anruf getätigt werden soll:

Twilio-Anruf beginnt, tritt der Besprechung jedoch nie bei

Vergewissern Sie sich, dass das Meet-Ereignis Telefoneinwahldaten bereitstellt, und übergeben Sie die genaue Einwahlnummer sowie die PIN oder eine benutzerdefinierte DTMF-Sequenz:
Verwenden Sie führende w oder Kommas in --dtmf-sequence für eine Pause vor der PIN. Wenn der Anruf erstellt wurde, der Einwahlteilnehmer jedoch nie in der Meet-Teilnehmerliste erscheint:
  • openclaw googlemeet doctor <session-id>: Prüfen Sie die delegierte Twilio-Anruf-ID, ob DTMF eingereiht wurde und ob die Einführungsbegrüßung angefordert wurde.
  • openclaw voicecall status --call-id <id>: Prüfen Sie, ob der Anruf noch aktiv ist.
  • openclaw voicecall tail: Prüfen Sie, ob Twilio-Webhooks beim Gateway eingehen.
  • openclaw logs --follow: Suchen Sie nach der Twilio-Meet-Sequenz: Google Meet delegiert den Beitritt, Voice Call speichert Pre-Connect-DTMF-TwiML und stellt es bereit, Voice Call stellt Echtzeit-TwiML für den Twilio-Anruf bereit, anschließend fordert Google Meet mit voicecall.speak die Einführungsansage an.
  • Führen Sie openclaw googlemeet setup --transport twilio erneut aus. Eine grüne Einrichtungsprüfung ist erforderlich, weist jedoch nicht nach, dass die Besprechungs-PIN-Sequenz korrekt ist.
  • Vergewissern Sie sich, dass Einwahlnummer und PIN zu derselben Meet-Einladung und Region gehören.
  • Erhöhen Sie voiceCall.dtmfDelayMs gegenüber dem Standardwert von 12 Sekunden, wenn Meet langsam antwortet oder das Anruftranskript nach dem Senden des Pre-Connect-DTMF weiterhin die PIN-Eingabeaufforderung anzeigt.
  • Wenn der Teilnehmer beitritt, Sie die Begrüßung jedoch nicht hören, prüfen Sie openclaw logs --follow auf die nach dem DTMF gesendete voicecall.speak-Anforderung und entweder die TTS-Wiedergabe des Medienstreams oder den Twilio-Fallback <Say>. Wenn das Transkript weiterhin „enter the meeting PIN“ anzeigt, ist der Telefonabschnitt dem Meet-Raum noch nicht beigetreten, sodass die Teilnehmer keine Sprache hören.
Wenn Webhooks nicht eintreffen, debuggen Sie zuerst das Voice-Call-Plugin: Der Provider muss plugins.entries.voice-call.config.publicUrl oder den konfigurierten Tunnel erreichen können. Siehe Fehlerbehebung bei Sprachanrufen.

Hinweise

Die offizielle Medien-API von Google Meet ist auf den Empfang ausgerichtet, daher ist zum Sprechen in einem Anruf weiterhin ein Teilnehmerpfad erforderlich. Dieses Plugin macht diese Abgrenzung sichtbar: Chrome übernimmt die Browserteilnahme und das lokale Audio-Routing; Twilio übernimmt die Teilnahme per Telefoneinwahl. Die Talkback-Modi von Chrome benötigen BlackHole 2ch sowie eine der folgenden Optionen:
  • chrome.audioInputCommand plus chrome.audioOutputCommand: OpenClaw verwaltet die Bridge und leitet Audio in chrome.audioFormat zwischen diesen Befehlen und dem ausgewählten Provider weiter. Der Modus agent verwendet Echtzeittranskription plus reguläres TTS; der Modus bidi verwendet den Echtzeit-Sprach-Provider. Der Standardpfad ist 24 kHz PCM16 mit chrome.audioBufferBytes: 4096; 8 kHz G.711 mu-law bleibt für ältere Befehlspaare verfügbar.
  • chrome.audioBridgeCommand: Ein externer Bridge-Befehl verwaltet den gesamten lokalen Audiopfad und muss nach dem Starten oder Validieren seines Daemons beendet werden. Nur für bidi gültig, da der Modus agent für TTS direkten Zugriff auf das Befehlspaar benötigt.
Bei der Chrome-Bridge mit Befehlspaar kann chrome.bargeInInputCommand ein separates lokales Mikrofon abhören und die Wiedergabe des Assistenten löschen, sobald ein Mensch zu sprechen beginnt. Dadurch hat menschliche Sprache Vorrang vor der Ausgabe des Assistenten, selbst wenn der gemeinsam genutzte BlackHole-Loopback-Eingang während der Wiedergabe des Assistenten vorübergehend unterdrückt wird. Wie chrome.audioInputCommand/chrome.audioOutputCommand handelt es sich um einen vom Operator konfigurierten lokalen Befehl: Verwenden Sie einen expliziten vertrauenswürdigen Befehlspfad oder eine Argumentliste, niemals ein Skript aus einem nicht vertrauenswürdigen Speicherort. Für sauberes Duplex-Audio leiten Sie die Meet-Ausgabe und das Meet-Mikrofon über separate virtuelle Geräte oder einen virtuellen Gerätegraphen im Stil von Loopback; ein einzelnes gemeinsam genutztes BlackHole-Gerät kann Audio anderer Teilnehmer zurück in den Anruf spiegeln. googlemeet speak löst die aktive Talkback-Audio-Bridge für eine Chrome-Sitzung aus; googlemeet leave stoppt sie (und legt bei Twilio-Sitzungen, die über Voice Call delegiert wurden, den zugrunde liegenden Anruf auf). Verwenden Sie googlemeet end-active-conference, um außerdem die aktive Google-Meet-Konferenz für einen API-verwalteten Bereich zu schließen.

Verwandte Themen