跳转至

Slack Huddles 插件

slack-huddles 插件通过 OpenClaw Chrome 配置文件中的 Slack Web 客户端加入活跃的 Slack Huddle。它为代理使用一个专用的 Slack 用户账户:Slack 没有用于加入 Huddle 或读取其音频的应用或机器人 API。该插件独立于 Slack 消息渠道。

有关共享模式、Chrome 与虚拟音频设置、转录、远程节点要求和验证,请参阅 会议插件。

要求

  • OpenClaw 2026.9.8 或更高版本。较旧的主机缺少此插件所依赖的共享会议运行时所有权检查,因此安装会拒绝这些主机。
  • 一个专用的 Slack 用户账户,并已在 OpenClaw Chrome 配置文件中登录 Slack。
  • 是包含该 Huddle 的频道或对话的成员。
  • 一个由 Slack 中的某个人发起的活跃 Huddle。
  • Slack 的英文界面。适配器优先使用 data-qa 钩子,但其文本和辅助功能标签回退仅支持英文。
  • 对于语音回复(agent 或 bidi),运行 Chrome 的主机需要安装 macOS 上的 BlackHole 2ch 和 SoX,或 Linux 上的 PipeWire-Pulse 及其命令行工具。

对于字幕转录,请为专用账户打开 Slack 的偏好设置 turn on captions by default when joining huddles(即“加入 Huddle 时默认开启字幕”)。插件读取可见字幕;它不会打开 Slack 菜单来启用字幕。当字幕不可用时,状态会报告 captioning: false 并附有说明。字幕的可用性还会限制共享的持久化转录与笔记路径。

安装与启用

如有需要,请安装插件,然后显式启用它:

openclaw plugins install @openclaw/slack-huddles
openclaw plugins enable slack-huddles

它默认处于禁用状态,因为它需要一个已登录的专用 Slack 用户。请确认配置更改已生效,然后验证先决条件:

openclaw slackhuddles setup

使用 OpenClaw 控制的同一 Chrome 配置文件登录。Slack 应用的机器人令牌或用户 OAuth 令牌不能替代该浏览器登录。

语音回复会验证 Slack 当前选定的麦克风标签:macOS 上的 BlackHole 2ch,或 Linux 上的 OpenClaw Meeting Audio 源。必要时,适配器会打开 Slack 的音频设置,并在启用通话内语音回复之前选择该麦克风。如果选择器不可用,请手动选择该麦克风并重试状态。请使用受控的第二位参与者验证远程可听性。

配置

该插件使用共享会议配置。以下示例使用常规代理路径和配对节点上的 Chrome:

{
  plugins: {
    entries: {
      "slack-huddles": {
        enabled: true,
        config: {
          defaultMode: "agent",
          chrome: {
            browserProfile: "openclaw",
            autoJoin: true,
            audioBackend: "auto",
          },
          chromeNode: { node: "meeting-node" },
        },
      },
    },
  },
}

省略 chromeNode 可在 Gateway 主机上运行 Chrome。配对节点必须允许 browser.proxy 和 slackhuddles.chrome;请使用 plugins.entries.slack-huddles.config.chromeNode.node 选择它。

使用 agent 模式让 OpenClaw 进行推理并使用工具,配合 TTS 回复;使用 bidi 进行直接实时语音;或使用 transcribe 进行仅观察字幕。语音回复会捕获页面中远程参与者的音频,并通过虚拟麦克风发送助手语音。请使用 共享会议设置 配置提供程序。显示名称由 Slack 账户拥有;不会输入访客名称。

加入并管理 Huddle

在 Slack 中,使用 Copy huddle link(复制 Huddle 链接),然后将链接传递给 OpenClaw:

openclaw slackhuddles join 'https://app.slack.com/huddle/T0123ABCD/C0123ABCD'
openclaw slackhuddles status
openclaw slackhuddles leave <session-id>

频道引用同样有效。如果没有工作区 id,已登录的 Slack 客户端会解析其活跃工作区:

openclaw slackhuddles join 'channel:C0123ABCD' --mode transcribe

接受的输入包括:带或不带团队 id 的 HTTPS Slack Huddle 链接,以及以 C、G 或 D 开头、后跟至少八个大写字母或数字的频道 id。频道引用可以带有 channel: 或 slack:channel: 前缀。要显式选择工作区,请使用 team:T0123ABCD:channel:C0123ABCD 或 slack:team:T0123ABCD:channel:C0123ABCD;两者都会生成 https://app.slack.com/huddle/T0123ABCD/C0123ABCD。团队 id 以 T 或 E 开头,并遵循相同的大写字母和长度规则。

消息永久链接、用户 id、slack:// 深层链接以及 Slack /client/... 浏览器 URL 都不是可接受的加入输入。请使用 Copy huddle link 或频道引用。频道 id 仅在工作区内唯一,因此带团队限定的链接会保留其工作区:它只在相同的工作区和频道中复用会话,并且永远不会匹配裸频道引用。

slack_huddles 工具支持 join、leave、status、transcript 和 speak。其 join 的 url 可以是 Huddle 链接或频道引用。在 Slack 会话中,Conversation info(会话信息)的 chat_id 携带频道 id。Gateway 方法使用 slackhuddles.*;节点命令是 slackhuddles.chrome。转录源提供程序是 slack-huddle,别名为 slack-huddles;存储的转录使用提供程序名称 Slack huddle。

处理手动操作

当 chrome.autoJoin: true 时,适配器会为活跃的 Huddle 点击 Join Huddle(加入 Huddle),且仅在账户尚未处于另一个 Huddle 中时执行。它始终以静音状态加入,因为加入转换本身可能切换 Slack 的输入。对于语音回复,它会在通话中选择虚拟麦克风,并且仅在 Slack 将其报告为输入后才取消静音,因此主机的物理麦克风永远不会变为活动状态;transcribe 模式保持静音。摄像头保持关闭。

原因 操作
原因 操作
slack-login-required 在 OpenClaw 的 Chrome 配置文件中登录专用 Slack 账号,然后重试。
slack-huddle-not-active 此 Huddle 中还没有人。请在 Slack 中开始 Huddle,然后再次询问。
slack-confirmation-required 在 Slack 中阅读并完成所报告的确认操作。插件不会确认切换 Huddle 或其他提示。
slack-session-conflict 该账号已处于另一个 Huddle 中,可能在此浏览器或另一台设备上。请先离开,然后重试。
slack-admission-required 完成申请加入步骤并等待准入。准入后刷新状态。
slack-permission-required 在 OpenClaw 的 Chrome 配置文件中处理浏览器麦克风权限提示。

离开操作使用 Slack 的 Leave Huddle 控件。它不会为所有人结束 Huddle。

限制

插件仅加入处于活动状态的 Huddle。它不会启动 Huddle、接听来电、自动加入已占用的频道,或使用屏幕共享、画布、AI 笔记或表情控件。每个专用 Slack 账号应只使用一个 Huddle;其他设备使用该账号可能导致会话冲突。

当 Slack 客户端显示其他频道时,Slack 仍会保持 Huddle 运行,因此适配器仅从 Huddle 频道自身的标题验证成员身份。请将 OpenClaw 的 Slack 标签页保持在该频道上:在其他任何视图中,状态会将该通话报告为未验证,并且音频、字幕和离开操作保持被阻止。

Slack 不认可自动化用户客户端。即使 Slack 的消息 API 保持不变,Web 客户端的 DOM 更改也可能导致适配器失效。此集成不会创建音频或视频录音。

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