会议插件
OpenClaw 为 Google Meet、Microsoft Teams 会议、Slack huddles 和 Zoom 提供独立插件。四个插件都可以通过 Chrome 加入,使用相同的参与模式,并可在 Gateway 主机或已配对节点上运行 Chrome。它们的平台 URL、账户、安装模型和额外功能各不相同。
这些插件用于参与会议。它们独立于消息频道,例如 Microsoft Teams 频道 和 Slack 频道,也独立于 语音通话插件。
选择插件¶
| 平台 | 插件 | 接受的会议链接 | 安装 | 参与路径 | 平台特定功能 |
|---|---|---|---|---|---|
| Google Meet | google-meet |
meet.google.com/... |
从 npm 或 ClawHub 安装;默认启用 | 本地 Chrome、已配对节点上的 Chrome,或 Twilio 拨入 | 可通过 Meet API 或已登录浏览器创建会议;可使用 OAuth 读取受支持的 Meet 工件 |
| Microsoft Teams | teams-meetings |
teams.microsoft.com/l/meetup-join/... 下的工作链接和 teams.live.com/meet/... 下的个人链接 |
从 npm 或 ClawHub 安装;默认启用 | 本地 Chrome 或已配对节点上的 Chrome | 支持工作会议和个人会议的来宾加入 |
| Slack huddles | slack-huddles |
Slack /huddle/<TEAM>/<CHANNEL> 或 /huddle/<CHANNEL> 链接,或频道 ID |
从 npm 或 ClawHub 安装;需显式启用 | 本地 Chrome 或已配对节点上的 Chrome | 以专用已登录 Slack 用户身份加入进行中的 huddles |
| Zoom | zoom-meetings |
zoom.us/j/... 以及账户子域名,例如 example.zoom.us/j/... |
从 npm 或 ClawHub 安装;默认启用 | 本地 Chrome 或已配对节点上的 Chrome | 通过 Zoom Web App 来宾加入 |
当需要创建会议、Google API 工件或 Twilio 电话路径时,选择 Google Meet。当需要在这些平台上通过浏览器直接以来宾身份参与时,选择 Teams 或 Zoom。Teams 和 Zoom 插件不会创建会议、拨入、调用供应商 API 或捕获音频/视频录制。
选择 Slack huddles 可将 agent 呼叫到进行中的 huddle。它需要一个专用的 Slack 用户,该用户已登录 OpenClaw Chrome 配置文件,并且是会话成员。Slack 应用和 bot token 无法加入 huddles 或读取其音频。该插件不会启动 huddles 或接听来电。
选择模式¶
四个插件共享相同的模式:
| 模式 | 行为 | 音频要求 |
|---|---|---|
agent |
实时转录发送到已配置的 OpenClaw agent;常规 OpenClaw TTS 朗读回复。 | Chrome 回话需要受支持的虚拟音频后端。 |
bidi |
实时语音模型直接收听并回复,在受支持时委托给 OpenClaw agent。 | Chrome 回话需要受支持的虚拟音频后端。 |
transcribe |
加入为仅观察模式,并在平台提供字幕时暴露有界的实时字幕转录。 | 无需虚拟音频桥接。 |
当 agent 只需要会议文本时使用 transcribe。对于常规 OpenClaw 推理和工具,使用 agent。当低延迟直接语音比将每一轮都路由到常规 agent 更重要时,使用 bidi。
Google Meet、Teams、Slack huddles 和 Zoom 使用同一个共享会议音频引擎。在 bidi 模式下,它们通过 Discord 和 Talk 所使用的相同提供商选择、原生 agent 委托和中断策略支持 GPT-Live。GPT-Live 拥有中断控制;模型说话时,参与者音频保持开放。
在 bidi 模式下,可恢复的提供商诊断信息会被记录,而不会停止音频桥接。支持重连的提供商拥有该恢复过程。终止性提供商关闭、恢复耗尽、初始设置失败以及本地音频传输失败仍会停止桥接;离开会议也会停止它。
停止会议会请求取消任何活跃的 agent 咨询。在 agent 模式下,OpenClaw 会在关闭会话前完成活跃输出和轮次事件,然后忽略迟到的语音合成和音频投递结果。
离开还会等待该会话已批准的音频启动,并在报告完成前停止由此产生的运行时。如果加入在附加运行时后失败,且清理无法完成,状态会保持已结束会话可见,以便 leave 可以重试。同一会议的替换会等待待处理的音频启动或停止工作,如果音频清理仍然失败,它可以拒绝;其他会议保持独立。浏览器离开结果保持独立:已确定的仅浏览器离开失败仍可重试,而不会永久阻塞另一次加入。
有界实时转录仅在 transcribe 模式下可用。在全部三种模式中,浏览器加入还会将已完成的字幕行和会议笔记持久化到共享状态数据库。当保存新的语音时,笔记大约每五分钟更新一次,使用会议 agent 的实用模型,并带有主模型和启发式回退。离开会议会最终确定可见字幕并写入最终摘要;使用 openclaw transcripts 列出、检查或导出它。此持久化笔记路径不会更改实时 agent 咨询转录,也不会创建音频/视频录制。
自动笔记默认开启。设置 transcripts.enabled: false 可全局禁用持久化笔记。显式选择的 transcribe 会话会保留其有界实时字幕尾部,而不写入持久化行。字幕可用性仍取决于会议平台、账户、语言和主机策略。
配置 Teams 或 Zoom¶
Teams 和 Zoom 插件为其通用会议运行时共享相同的配置结构。Slack huddles 也使用这些设置,只是其 Slack 账户提供显示名称。仅在需要覆盖默认值时添加条目。此示例选择常规 agent 路径,更改来宾显示名称,并在配对节点上运行 Chrome:
{
plugins: {
entries: {
"teams-meetings": {
config: {
defaultMode: "agent",
chrome: { guestName: "OpenClaw Agent" },
chromeNode: { node: "meeting-node" },
},
},
},
},
}
对于 Zoom,使用 "zoom-meetings" 作为条目 id。省略 chromeNode 可在 Gateway 主机上运行 Chrome。
对于 Slack,使用 "slack-huddles",显式启用插件,并按照其账户设置操作。
| 设置 | 用途 |
|---|---|
defaultMode |
agent(默认)、bidi 或 transcribe |
chrome.guestName |
在平台加入前页面输入的来宾显示名称 |
chrome.browserProfile |
用于会议的 OpenClaw 浏览器配置文件 |
chrome.audioBackend |
auto(默认)、blackhole-2ch 或 pipewire-pulse |
chromeNode.node |
拥有 Chrome 和原生虚拟音频后端的配对节点 id、名称或 IP |
realtime.transcriptionProvider |
agent 模式使用的实时转录提供商 |
realtime.voiceProvider |
bidi 模式使用的实时语音提供商 |
realtime.model |
可选的实时模型覆盖 |
realtime.agentId |
agent 模式中咨询的 agent |
realtime.toolPolicy |
safe-read-only、owner 或 none |
对于带 Cove 的 GPT-Live,设置 defaultMode: "bidi"、
realtime.voiceProvider: "openai"、realtime.model: "gpt-live-1-codex" 和
realtime.providers.openai.voice: "cove"。在 Gateway 主机上使用
openclaw models auth login --provider openai 登录。
Google Meet 配置示例
使用相同字段;将插件条目替换为 teams-meetings、slack-huddles 或 zoom-meetings。
未固定版本的配置会保留其提供商的默认模型。
agent 模式继续使用常规 OpenClaw TTS。
准备 Chrome 和音频¶
Chrome 可以运行在 Gateway 主机或配对节点上。远程 Chrome 节点必须允许 browser.proxy 以及平台命令:
| 插件 | 节点命令 |
|---|---|
| Google Meet | googlemeet.chrome |
| Microsoft Teams | teamsmeetings.chrome |
| Slack huddles | slackhuddles.chrome |
| Zoom | zoommeetings.chrome |
对于通过 Chrome 的 agent 或 bidi 模式,请在运行 Chrome 的主机上安装原生音频依赖项。在 macOS 上:
brew install blackhole-2ch sox
sudo reboot
system_profiler SPAudioDataType | grep -i BlackHole
command -v sox
在带有 PipeWire-Pulse 的 Linux 桌面上,安装 PulseAudio 命令行工具。OpenClaw 会在桌面用户的音频会话中创建并复用一个 OpenClaw Meeting Audio null sink 及匹配的输入源:
# Debian/Ubuntu
sudo apt install pipewire-audio pulseaudio-utils
systemctl --user --now enable pipewire pipewire-pulse wireplumber
pactl info
command -v pactl pacat parec
请以运行 Chrome 的同一桌面用户身份运行 Gateway 或配对节点。没有该用户 XDG_RUNTIME_DIR 的 root 服务或无头服务无法访问 PipeWire-Pulse socket,并会以可操作的错误失败。
当 Chrome 运行在配对节点上时,Gateway 主机仍拥有 OpenClaw agent 和模型凭据。为 agent 模式配置实时转录提供商和 OpenClaw TTS,或为 bidi 模式配置实时语音提供商。平台指南包含提供商和音频命令选项。
未显式设置 chrome.audioInputCommand 的 Chrome 会话会直接从浏览器播放中捕获参与者音频,并让该播放不进入虚拟麦克风。原生输出命令会将助手语音注入麦克风;原生输入命令会验证该注入。隔离的参与者输入在实时语音和 TTS 期间均保持打开。捕获失败会带错误停止桥接;混合环回音频不会用作 Live 的回退。
显式输入命令在本地和配对节点 Chrome 上均保留其现有提供商输入行为,包括自定义捕获、滤镜和混音器。它们保留现有的回声保护。要选择 GPT-Live,请移除输入覆盖并使用受管理的隔离捕获;Live 会拒绝无法验证隔离性的自定义命令路径,而不是静默替换它。
安装或禁用插件¶
安装你需要的会议插件。Google Meet、Teams 和 Zoom 在安装后默认启用。Slack huddles 在设置其专用用户账户后需要显式启用:
openclaw plugins install @openclaw/google-meet
openclaw plugins install @openclaw/teams-meetings
openclaw plugins install @openclaw/slack-huddles
openclaw plugins enable slack-huddles
openclaw plugins install @openclaw/zoom-meetings
禁用任何你不使用的会议插件:
openclaw plugins disable google-meet
openclaw plugins disable teams-meetings
openclaw plugins disable slack-huddles
openclaw plugins disable zoom-meetings
这些更改会自动应用于正在运行的 Gateway。如果它处于离线状态,请在加入前启动它。检查应用结果,然后运行下面的平台设置检查;参见 应用更改并检查。
验证并加入¶
| 平台 | 设置检查 | 加入命令 |
|---|---|---|
| Google Meet | openclaw googlemeet setup |
openclaw googlemeet join 'https://meet.google.com/abc-defg-hij' |
| Microsoft Teams | openclaw teamsmeetings setup |
openclaw teamsmeetings join 'https://teams.microsoft.com/l/meetup-join/...' |
| Slack huddles | openclaw slackhuddles setup |
openclaw slackhuddles join 'channel:C0123ABCD' |
| Zoom | openclaw zoommeetings setup |
openclaw zoommeetings join 'https://zoom.us/j/1234567890' |
将任何失败的设置检查视为该传输方式和模式的阻塞项。对于仅观察冒烟测试,选择 transcribe 模式,并在期望字幕文本之前确认状态报告了一个通话中会话。
对于回话冒烟测试,已验证语音需要播放命令接受的字节数之外的验证。共享命令对桥接会将来自当前输出代次的有界波形指纹与在所选虚拟麦克风捕获路径上返回的音频进行关联;当仅输出字节计数器增加或存在无关参与者音频时,Google Meet、Teams、Slack huddles 和 Zoom 不会报告 speechOutputVerified: true。
这验证了本地麦克风注入。请使用受控的第二参与者,以在实际会议中证明远程可听性和打断。
处理平台策略提示¶
浏览器自动化处理常规的访客姓名、加入前摄像头和麦克风、加入、通话中和离开控件。它不会绕过平台或组织者策略。
- Google Meet 可能需要 Google 登录、主机准入或浏览器权限决定。
- Microsoft Teams 可能需要租户登录、电子邮件验证或组织者准入。
- Slack huddles 需要已登录用户和活跃的 huddle;确认、另一台设备、请求加入或浏览器权限可能需要手动操作。启用账户的加入时字幕偏好以获取字幕转录。
- Zoom 可能需要身份验证、电子邮件验证、密码、CAPTCHA 完成或主机准入;账户还可以禁用浏览器加入。
当加入或状态结果包含 manualAction 时,在重试前请在同一 OpenClaw Chrome 配置文件中完成其报告的步骤。反复打开新标签页无法解决账户、租户、大厅或 CAPTCHA 关卡。
仅加入操作员有权添加代理的会议。当本地策略或同意规则要求披露自动化参与、转录或合成语音时,告知参与者。
Discord 语音聊天¶
Discord 语音频道 提供原生的、仅音频的实时对话,无需浏览器会议自动化。OpenClaw 可以加入语音频道、收听、通过 OpenClaw 代理或实时语音模型路由对话轮次,并说出回复。它不发送或接收摄像头视频或屏幕共享,即使人们在同一个 Discord 频道中使用视频,因此 Discord 语音是一个相关的实时对话界面,而不是浏览器会议插件。
平台指南¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw