配置
插件配置默认值、可选覆盖项以及语音提供商示例。属于 Google Meet 插件 指南的一部分。
配置¶
常见的 Chrome 代理路径只需要启用插件、BlackHole、SoX、实时提供商密钥以及已配置的 OpenClaw TTS 提供商:
默认值¶
| 键 | 默认值 | 说明 |
|---|---|---|
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