跳转至

配置

插件配置默认值、可选覆盖项以及语音提供商示例。属于 Google Meet 插件 指南的一部分。

配置

常见的 Chrome 代理路径只需要启用插件、BlackHole、SoX、实时提供商密钥以及已配置的 OpenClaw TTS 提供商:

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

默认值

键 默认值 说明
defaultTransport "chrome"
defaultMode "agent" "realtime" 作为 "agent" 的旧版别名被接受;新调用方应使用 "agent"
chromeNode.node 未设置 chrome-node 的 Node id/名称/IP;当可能连接多个可用节点时必填
chrome.launch true 加入时启动 Chrome;仅在复用已打开会话时设置为 false
chrome.audioBackend "auto" 在 macOS 上选择 blackhole-2ch,在 Linux 上选择 pipewire-pulse;当配对的 Chrome 节点使用与 Gateway 不同的操作系统时,设置显式后端
chrome.guestName "OpenClaw Agent" 显示在已签出的 Meet 来宾屏幕上
chrome.autoJoin true 在 chrome-node 上尽力填写来宾名称并点击 Join Now
chrome.reuseExistingTab true 激活现有 Meet 标签页,而不是打开重复标签页
chrome.waitForInCallMs 20000 在 talk-back 介绍触发前,等待 Meet 标签页报告处于通话中
chrome.audioFormat "pcm16-24khz" 命令对音频格式;"g711-ulaw-8khz" 仅用于输出电话音频的旧版/自定义命令对
chrome.audioBufferBytes 4096 用于推导生成命令延迟的处理缓冲区;值会被限制为最小 17 字节
chrome.audioInputCommand 生成的原生命令 显式命令为提供商提供参与者输入。如果没有覆盖,浏览器播放提供参与者输入,生成的原生命令验证助手注入。在 macOS 上使用 SoX/CoreAudio,在 Linux 上使用 parec。
chrome.audioOutputCommand 生成的原生命令 使用 SoX/CoreAudio(macOS)或 pacat(Linux)将助手语音注入虚拟麦克风。
chrome.bargeInInputCommand 未设置 可选的独立本地麦克风,用于支持 Gateway 托管命令对桥接上主机驱动中断的提供商。GPT-Live 自行处理中断,不会启动此命令。
chrome.bargeInRmsThreshold 650 计为人类中断的 RMS 电平
chrome.bargeInPeakThreshold 2500 计为人类中断的峰值电平
键 默认值 说明
chrome.bargeInCooldownMs 900 重复清除打断之间的最小延迟
mode (按请求) "agent" 回话模式;参见 Agent 和 bidi 模式 表格
realtime.provider "openai" 当下方作用域字段未设置时使用的兼容性回退值
realtime.transcriptionProvider "openai" agent 模式用于实时转写的提供商 id
realtime.voiceProvider 未设置 bidi 模式使用的提供商 id。为 Gemini Live 设置 "google",为 OpenAI 实时语音设置 "openai";如需显式模型,请搭配 realtime.model。
realtime.toolPolicy "safe-read-only" 参见 Agent 和 bidi 模式
realtime.instructions 简短的语音回复指令 指示模型简短回复,并在需要更深入答案时使用 openclaw_agent_consult
realtime.introMessage "Say exactly: I'm here and listening." 实时桥接连接时朗读一次;设置为 "" 可静默加入
realtime.agentId "main" 用于函数工具咨询和原生 Live 委派的 OpenClaw agent id
voiceCall.enabled true 将 Twilio PSTN 呼叫、DTMF 和开场问候委托给 Voice Call 插件
voiceCall.dtmfDelayMs 12000 通过 Twilio 播放由 PIN 派生的 DTMF 序列前的前置等待时间
voiceCall.postDtmfSpeechDelayMs 5000 Voice Call 启动 Twilio 通话段后,请求实时开场问候前的延迟

chrome.audioBridgeCommand 和 chrome.audioBridgeHealthCommand 允许外部桥接接管整个本地音频路径,而不是 chrome.audioInputCommand/chrome.audioOutputCommand;有关哪些模式可以使用它们的限制,请参见 说明。

存在一个 openclaw doctor --fix 迁移,用于旧版 realtime.provider: "google" 配置:当这些字段尚未设置时,它会将该意图迁移为 realtime.voiceProvider: "google" 以及 realtime.transcriptionProvider: "openai"。

GPT-Live 与 Cove

为 GPT-Live 语音选择 bidi 模式。agent 模式继续使用实时转写和常规 OpenClaw TTS;更改实时语音模型不会改变该模式的语音。

在 Gateway 主机上使用 openclaw models auth login --provider openai 登录,然后配置现有的模型和提供商字段:

{
  plugins: {
    entries: {
      "google-meet": {
        config: {
          defaultMode: "bidi",
          realtime: {
            voiceProvider: "openai",
            model: "gpt-live-1-codex",
            providers: {
              openai: { voice: "cove" },
            },
          },
        },
      },
    },
  },
}

这与 Discord 和 Talk 使用相同的 Gateway 托管 GPT-Live 路由,包括原生 agent 委派和提供商托管的打断。将 chrome.audioFormat 保持为默认的 24 kHz PCM16。现有未固定的会议配置会保留提供商的默认模型;请显式选择 Live。

移除任何显式的 chrome.audioInputCommand,以使用 Live 管理的隔离浏览器输入。现有自定义输入命令对其他模型保留其 provider-input 行为;Live 会拒绝该路径,因为其隔离性无法验证。选择 Live 不会静默丢弃已配置的输入源。

对于公开的 Platform API 路由,请使用 model: "gpt-live-1" 以及受支持的语音,例如 voice: "marin",并在 Gateway 主机上配置 OpenAI API 密钥。cove 属于 Codex 路由。有关身份验证和模型/语音兼容性,请参阅 OpenAI 语音与语音合成。

可选覆盖

{
  defaults: {
    meeting: "https://meet.google.com/abc-defg-hij",
  },
  browser: {
    defaultProfile: "openclaw",
  },
  chrome: {
    guestName: "OpenClaw Agent",
    waitForInCallMs: 30000,
    bargeInInputCommand: [
      "sox",
      "-q",
      "-t",
      "coreaudio",
      "External Microphone",
      "-r",
      "24000",
      "-c",
      "1",
      "-b",
      "16",
      "-e",
      "signed-integer",
      "-t",
      "raw",
      "-",
    ],
  },
  chromeNode: {
    node: "parallels-macos",
  },
  defaultMode: "agent",
  realtime: {
    provider: "openai",
    transcriptionProvider: "openai",
    voiceProvider: "google",
    model: "gemini-3.1-flash-live-preview",
    agentId: "jay",
    toolPolicy: "owner",
    introMessage: "Say exactly: I'm here.",
    providers: {
      google: {
        speakerVoice: "Kore",
      },
    },
  },
}

ElevenLabs 用于 agent 模式的聆听与发声:

{
  tts: {
    provider: "elevenlabs",
    providers: {
      elevenlabs: {
        modelId: "eleven_v3",
        speakerVoiceId: "pMsXgVXv3BLzUgSXRplE",
      },
    },
  },
  plugins: {
    entries: {
      "google-meet": {
        config: {
          realtime: {
            transcriptionProvider: "elevenlabs",
            providers: {
              elevenlabs: {
                modelId: "scribe_v2_realtime",
                audioFormat: "ulaw_8000",
                sampleRate: 8000,
                commitStrategy: "vad",
              },
            },
          },
        },
      },
    },
  },
}

持久化的 Meet 语音来自 tts.providers.elevenlabs.speakerVoiceId。当启用 TTS 模型覆盖时,Agent 回复还可以使用按回复的 [[tts:speakerVoiceId=... model=eleven_v3]] 指令,但配置是会议中确定性的默认值。加入时,日志显示 transcriptionProvider=elevenlabs,每个语音回复记录 provider=elevenlabs model=eleven_v3 speakerVoiceId=<voiceId>。

仅 Twilio 配置:

{
  defaultTransport: "twilio",
  twilio: {
    defaultDialInNumber: "+15551234567",
    defaultPin: "123456",
  },
  voiceCall: {
    gatewayUrl: "ws://127.0.0.1:18789",
  },
}

当 voiceCall.enabled: true(默认值)且使用 Twilio 传输时,Voice Call 会在打开实时媒体流之前发送 DTMF 序列,然后使用保存的开场文本作为初始实时问候。如果未启用 voice-call,Google Meet 仍可以验证并记录拨号计划,但无法拨打 Twilio 电话。

保持 voiceCall.gatewayUrl 未设置,以使用本地受信任的 Gateway 运行时,该运行时会为整个通话保留调用方 agent。已配置的 Gateway URL 仍然是显式的 WebSocket 目标,并且无法验证插件来源;非默认 agent 加入会失败关闭,而不是静默使用另一个 agent。当需要按 agent 路由时,请在同一个 Gateway 进程中运行 Google Meet 和 Voice Call。

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