跳转至

Google Meet 插件

google-meet 插件代表 OpenClaw 代理加入显式的 Meet URL。它的功能范围刻意做得很窄:

  • 它只会加入 https://meet.google.com/... 链接;绝不会自行发现电话号码并拨入会议。
  • googlemeet create 可以通过 Google Meet API(或浏览器回退方式)创建新的 Meet URL,并默认加入该会议。
  • 通过 Chrome 参会需要使用已登录的 Chrome 配置文件,可选地在配对节点上执行。通过 Twilio 参会则通过 Voice call plugin 拨打电话号码并输入 PIN/DTMF;它无法直接拨打 Meet URL。
  • mode: "agent"(默认)使用实时转写提供程序转录参会者语音,将其路由到已配置的 OpenClaw 代理,并使用常规 OpenClaw TTS 说出答案。mode: "bidi" 使用实时语音,包括带有原生 OpenClaw 代理委派的 GPT-Live。mode: "transcribe" 以仅观察模式加入,不进行回话。
  • 插件加入通话时不会自动播放同意声明。
  • CLI 命令是 googlemeet;meet 预留给更广泛的代理电话会议工作流。

快速开始

安装插件以及 Chrome 宿主机的原生音频依赖,然后配置提供程序身份验证。对于 agent 模式,OpenAI 是默认转写提供程序;bidi 模式支持 Google Gemini Live 和 OpenAI 实时语音,包括 GPT-Live。对于带有 Cove 的 GPT-Live,请使用显式 Live 配置。macOS 上的默认代理路径:

openclaw plugins install @openclaw/google-meet
brew install blackhole-2ch sox
export OPENAI_API_KEY=sk-...
# only needed when realtime.voiceProvider is "google" for bidi mode
export GEMINI_API_KEY=...

blackhole-2ch 会安装 Chrome 将音频路由通过的 BlackHole 2ch 虚拟音频设备。Homebrew 的安装程序需要重启后 macOS 才会暴露该设备:

sudo reboot

重启后,请验证这两项:

system_profiler SPAudioDataType | grep -i BlackHole
command -v sox

在带有 PipeWire-Pulse 的 Linux 桌面上:

sudo apt install pipewire-audio pulseaudio-utils # Debian/Ubuntu
systemctl --user --now enable pipewire pipewire-pulse wireplumber
pactl info
command -v pactl pacat parec

OpenClaw 会在该桌面用户的音频会话中配置一个 OpenClaw Meeting Audio null sink 及匹配的信号源。请以运行 Chrome 的同一用户身份运行 Gateway 或配对节点。

安装后,插件默认启用。仅在需要自定义时添加条目:

{
  plugins: {
    entries: {
      "google-meet": {
        config: {},
      },
    },
  },
}

如果你不希望该插件处于活动状态,请运行 openclaw plugins disable google-meet。

检查设置,然后加入:

openclaw googlemeet setup
openclaw googlemeet join https://meet.google.com/abc-defg-hij

setup 输出对代理可读,并且能感知模式/传输方式:它会报告 Chrome 配置文件、节点绑定,以及对于实时 Chrome 加入,报告原生虚拟音频后端和 delayed-intro 检查。仅观察加入会跳过实时相关前置条件:

openclaw googlemeet setup --transport chrome-node --mode transcribe

当配置了 Twilio 委派时,setup 还会报告 voice-call、Twilio 凭据以及公共 webhook 暴露是否就绪。在代理加入之前,请将任何 ok: false 检查视为该传输方式/模式的阻塞项。使用 --json 获取机器可读输出,并使用 --transport chrome|chrome-node|twilio 提前预检特定传输方式:

openclaw googlemeet setup --transport twilio

或者让代理通过 google_meet 工具加入:

{
  "action": "join",
  "url": "https://meet.google.com/abc-defg-hij",
  "transport": "chrome-node",
  "mode": "agent"
}

本地 Chrome 回话在 macOS 上支持使用 BlackHole 2ch 和 SoX,或在 Linux 上支持使用 PipeWire-Pulse 以及 pactl/pacat/parec。在其他操作系统上,请使用 mode: "transcribe"、Twilio 拨入,或受支持的 macOS/Linux chrome-node 主机。

创建会议

openclaw googlemeet create --transport chrome-node --mode agent
openclaw googlemeet create --no-join

create 有两条路径,通过结果的 source 字段报告:

  • api:在配置了 Google Meet OAuth 凭据时使用。确定性执行;不依赖浏览器 UI 状态。
  • browser:在未配置 OAuth 凭据时使用。OpenClaw 会在绑定的 Chrome 节点上打开 https://meet.google.com/new,并等待 Google 重定向到真实的会议代码 URL;该节点上的 OpenClaw Chrome 配置文件必须已经登录 Google。加入和创建操作都会先复用现有的 Meet 标签页(或正在进行的 .../new / Google 账户提示标签页),然后才打开新标签页;标签页匹配会忽略诸如 authuser 之类的无害查询字符串。

create 默认加入并返回 joined: true 以及加入会话。传入 --no-join(CLI)或 "join": false(工具)以仅生成 URL。

对于通过 API 创建的房间,请设置显式访问策略,而不是继承 Google 账户的默认设置:

openclaw googlemeet create --access-type OPEN --transport chrome-node --mode agent
--access-type 谁无需申请即可加入
OPEN 任何拥有 Meet URL 的人
TRUSTED 宿主组织的受信任用户、受邀外部用户以及拨入用户
RESTRICTED 仅限受邀者

这仅适用于通过 API 创建的房间,因此必须配置 OAuth。如果你在 2026.5.2 引入访问类型控制之前就已授权 OpenClaw,请在将 meetings.space.settings 范围添加到你的 OAuth 同意屏幕后,重新运行 openclaw googlemeet auth login --json。

如果浏览器回退遇到 Google 登录或 Meet 权限拦截,工具会返回带有 browser.nodeId/browser.targetId/browserUrl 的 manualAction: { reason, message }。请报告该消息,并停止打开新的 Meet 标签页,直到操作员完成浏览器步骤。

仅观察加入

设置 "mode": "transcribe" 可跳过全双工实时桥接(无需虚拟音频,无对讲功能)。转写模式下的 Chrome 加入也会跳过 OpenClaw 的麦克风/摄像头权限授予以及 Meet 的使用麦克风路径;如果 Meet 显示音频选择插页,自动化会先尝试不使用麦克风继续。受管 Chrome 传输在所有模式下都会安装尽力而为的 Meet 字幕观察器,因此无需更改实时 agent 咨询路径即可获得持久笔记。googlemeet status --json 和 googlemeet doctor 会报告 captioning、captionsEnabledAttempted、transcriptLines、lastCaptionAt、lastCaptionSpeaker、lastCaptionText 以及 recentTranscript 尾部。

对于有界会话转写,请读取所跟踪的确切 Meet 标签页:

openclaw googlemeet transcript <session-id>
openclaw googlemeet transcript <session-id> --since <next-index> --json

观察器在 Meet 页面中最多保留 2,000 行已完成的字幕。可见的渐进文本会一直保留在状态健康尾部,直到字幕行完成,因此保存 nextIndex 不会跳过后续的文本扩展;离开操作会在快照前将可见行定稿。当超过上限时,droppedLines 会报告从头部丢失的行。有界的 googlemeet transcript 尾部仍然只保留最近结束的四个会话,并随 Gateway 一起重置。另外,OpenClaw 会在整个会议期间将已完成的字幕行追加到共享状态数据库,并在离开时写入派生的摘要。使用 openclaw transcripts 查看或导出这些持久笔记。

自动笔记默认启用。设置 transcripts.enabled: false 可在全局禁用持久笔记;显式的 transcribe 模式仍只暴露其有界的实时尾部。Twilio 加入没有浏览器字幕流,因此不会通过此路径捕获。

用于是/否监听探测:

openclaw googlemeet test-listen <meet-url> --transport chrome-node

它会以转写模式加入,等待新的字幕/转写变化,然后返回 listenVerified、listenTimedOut、手动操作字段以及当前字幕健康状态。

音频桥接架构

Google Meet 的官方媒体 API 是面向接收的,因此要在通话中发言仍然需要参与者路径。此插件保持该边界清晰可见:Chrome 处理浏览器参与和本地音频路由;Twilio 处理电话拨入参与。

Chrome 对讲模式需要受支持的原生虚拟音频后端,外加以下任一配置:

  • chrome.audioInputCommand 加 chrome.audioOutputCommand:使用生成的原生命令时,OpenClaw 从浏览器播放中捕获参与者音频,将助手音频注入虚拟麦克风,并使用原生输入来验证该注入。显式配置的输入命令会继续向提供方提供参与者音频,从而保留自定义的捕获/过滤/混音设置。agent 模式使用实时转写加常规 TTS;bidi 模式使用实时语音提供方。默认路径为 24 kHz PCM16,chrome.audioBufferBytes: 4096;8 kHz G.711 mu-law 仍可用于旧版命令对。
  • chrome.audioBridgeCommand:外部桥接命令拥有整个本地音频路径,必须在启动或验证其守护进程后退出。仅对 bidi 有效,因为 agent 模式需要直接的命令对访问来进行 TTS。

默认浏览器桥接会避免将参与者播放内容送入虚拟麦克风,因此收到的会议音频不会回传到通话中。在助手讲话期间,隔离的参与者输入仍然可用。Google Meet、Microsoft Teams 和 Zoom 使用相同的会议引擎;提供方选择、委派和中断策略也共享 Discord 和 Talk 使用的实时语音运行时。

GPT-Live 自主管理中断,并持续播放音频,无需等待响应完成事件。它需要受管的隔离浏览器输入:选择 Live 时需移除显式的 chrome.audioInputCommand。自定义输入命令无法建立该隔离,因此会在选择 Live 时被拒绝,而不是被静默替换。Live 不使用 chrome.bargeInInputCommand。对于支持在 Gateway 托管的命令对桥接上进行主机驱动中断的提供方,该可选的独立本地麦克风命令仍然可用。与其他音频命令一样,它是由操作员配置的本地命令:请使用显式的可信命令路径或参数列表。

googlemeet speak 为 Chrome 会话触发活动的对讲音频桥接;googlemeet leave 停止它(对于通过 Voice Call 委派的 Twilio 会话,还会挂断底层通话)。使用 googlemeet end-active-conference 还可为 API 管理的空间关闭活动的 Google Meet 会议。

实时会话健康状态

在对讲会话期间,google_meet 状态会报告 Chrome/音频桥接健康状态:inCall、manualAction、providerConnected、realtimeReady、audioInputActive、audioOutputActive、上次输入/输出时间戳、字节计数器以及桥接关闭状态。受管 Chrome 会话仅在健康状态报告 inCall: true 后才说出介绍/测试短语;否则 speechReady: false,并且讲话尝试会被阻止,而不是静默空操作。

本地 Chrome 和配对的 Chrome 节点使用相同的输入源选择。生成的命令使用隔离的浏览器捕获和原生注入;显式输入命令保留其配置的捕获路径和现有的回声保护。如果无法捕获受管浏览器播放,桥接会明确失败,而不是将混合的回环音频发送给 Live。尚无参与者音频的会议室处于空闲状态,而非捕获失败。

各章节移往何处

单页版本的所有章节现在都位于此页面或下方五个子页面之一。单页版本中的锚点在此仍然有效。

Google Meet 传输与主机

Google Meet 传输与主机 — Chrome、Chrome 节点和 Twilio 传输、Parallels macOS VM 拓扑,以及它们所需的主机音频工具。

Google Meet OAuth 与产物

Google Meet OAuth 与产物 — Google Cloud 凭据、刷新令牌、OAuth 验证,以及读取 Meet 产物、出席记录和导出内容。

Google Meet 配置

Google Meet 配置 — 插件配置默认值、可选覆盖项,以及 ElevenLabs 和 Twilio 配置示例。

Google Meet 工具与模式

Google Meet 工具与模式 — 供 agent 使用的工具操作、会话状态字段,以及 agent 和 bidi 对讲模式。

Google Meet 故障排查

Google Meet 故障排查 — 预检实时测试清单,以及加入、语音、创建和 Twilio 故障的修复方法。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw