docs: clarify google meet mode choice · openclaw/openclaw@c2bffc6
steipete
·
2026-04-25
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -12,6 +12,9 @@ Google Meet participant support for OpenClaw — the plugin is explicit by desig
|
12 | 12 | - `realtime` voice is the default mode. |
13 | 13 | - Realtime voice can call back into the full OpenClaw agent when deeper |
14 | 14 | reasoning or tools are needed. |
| 15 | +- Agents choose the join behavior with `mode`: use `realtime` for live |
| 16 | + listen/talk-back, or `transcribe` to join/control the browser without the |
| 17 | + realtime voice bridge. |
15 | 18 | - Auth starts as personal Google OAuth or an already signed-in Chrome profile. |
16 | 19 | - There is no automatic consent announcement. |
17 | 20 | - The default Chrome audio backend is `BlackHole 2ch`. |
@@ -79,10 +82,16 @@ Or let an agent join through the `google_meet` tool:
|
79 | 82 | ```json |
80 | 83 | { |
81 | 84 | "action": "join", |
82 | | -"url": "https://meet.google.com/abc-defg-hij" |
| 85 | +"url": "https://meet.google.com/abc-defg-hij", |
| 86 | +"transport": "chrome-node", |
| 87 | +"mode": "realtime" |
83 | 88 | } |
84 | 89 | ``` |
85 | 90 | |
| 91 | +For an observe-only/browser-control join, set `"mode": "transcribe"`. That does |
| 92 | +not start the duplex realtime model bridge, so it will not talk back into the |
| 93 | +meeting. |
| 94 | + |
86 | 95 | Chrome joins as the signed-in Chrome profile. In Meet, pick `BlackHole 2ch` for |
87 | 96 | the microphone/speaker path used by OpenClaw. For clean duplex audio, use |
88 | 97 | separate virtual devices or a Loopback-style graph; a single BlackHole device is |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -35,7 +35,7 @@ const googleMeetConfigSchema = {
|
35 | 35 | }, |
36 | 36 | defaultMode: { |
37 | 37 | label: "Default Mode", |
38 | | -help: "Realtime voice is the default.", |
| 38 | +help: "Realtime starts the duplex voice model loop. Transcribe joins/observes without the realtime talk-back bridge.", |
39 | 39 | }, |
40 | 40 | "chrome.audioBackend": { |
41 | 41 | label: "Chrome Audio Backend", |
@@ -148,7 +148,13 @@ const GoogleMeetToolSchema = Type.Object({
|
148 | 148 | transport: Type.Optional( |
149 | 149 | Type.String({ enum: ["chrome", "chrome-node", "twilio"], description: "Join transport" }), |
150 | 150 | ), |
151 | | -mode: Type.Optional(Type.String({ enum: ["realtime", "transcribe"], description: "Join mode" })), |
| 151 | +mode: Type.Optional( |
| 152 | +Type.String({ |
| 153 | +enum: ["realtime", "transcribe"], |
| 154 | +description: |
| 155 | +"Join mode. realtime starts live listen/talk-back through the realtime voice model; transcribe joins without the realtime talk-back bridge.", |
| 156 | +}), |
| 157 | +), |
152 | 158 | dialInNumber: Type.Optional(Type.String({ description: "Meet dial-in number for Twilio" })), |
153 | 159 | pin: Type.Optional(Type.String({ description: "Meet phone PIN for Twilio" })), |
154 | 160 | dtmfSequence: Type.Optional(Type.String({ description: "Explicit DTMF sequence for Twilio" })), |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -177,7 +177,10 @@ export function registerGoogleMeetCli(params: {
|
177 | 177 | .command("join") |
178 | 178 | .argument("[url]", "Explicit https://meet.google.com/... URL") |
179 | 179 | .option("--transport <transport>", "Transport: chrome, chrome-node, or twilio") |
180 | | -.option("--mode <mode>", "Mode: realtime or transcribe") |
| 180 | +.option( |
| 181 | +"--mode <mode>", |
| 182 | +"Mode: realtime for live talk-back, transcribe to join without the realtime voice bridge", |
| 183 | +) |
181 | 184 | .option("--message <text>", "Realtime speech to trigger after join") |
182 | 185 | .option("--dial-in-number <phone>", "Meet dial-in number for Twilio transport") |
183 | 186 | .option("--pin <pin>", "Meet phone PIN; # is appended if omitted") |
@@ -200,7 +203,10 @@ export function registerGoogleMeetCli(params: {
|
200 | 203 | .command("test-speech") |
201 | 204 | .argument("[url]", "Explicit https://meet.google.com/... URL") |
202 | 205 | .option("--transport <transport>", "Transport: chrome, chrome-node, or twilio") |
203 | | -.option("--mode <mode>", "Mode: realtime or transcribe") |
| 206 | +.option( |
| 207 | +"--mode <mode>", |
| 208 | +"Mode: realtime for live talk-back, transcribe to join without the realtime voice bridge", |
| 209 | +) |
204 | 210 | .option( |
205 | 211 | "--message <text>", |
206 | 212 | "Realtime speech to trigger", |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。