OpenClaw Microsoft Teams 会议插件实战指南:以 Chrome 访客身份自动加入 Teams 会议
OpenClaw Microsoft Teams 会议插件实战指南以 Chrome 访客身份自动加入 Teams 会议【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclawopenclaw/teams-meetings是 OpenClaw 官方的 Microsoft Teams 浏览器会议参会插件它注册teams_meetings工具让 Agent 能以 Chrome 浏览器访客身份加入 Teams 会议并在agent、bidi、transcribe三种模式下参与实时语音对话或旁听转录。本文以 插件 README 为骨架结合 插件平台指南、会议插件总览 与插件源码完整讲解安装、配置、模式选择、音频准备、URL 校验规则、浏览器自动化流程与manualAction策略处理读完即可上手部署并排查常见问题。插件定位与能力边界teams-meetings插件将 Agent 作为**访客guest**加入 Microsoft Teams 会议运行载体是 OpenClaw 的 Chrome 浏览器配置文件browser profile。它明确支持两类会议链接工作work链接https://teams.microsoft.com/l/meetup-join/...消费者consumer链接https://teams.live.com/meet/...同时它的能力边界非常清晰平台文档 与 会议插件总览 均有明确说明不创建会议、不拨号、不调用 Microsoft Graph、不录制音视频。它只做以访客身份参会这件事与消息通道层面的 Microsoft Teams 通道 以及 Voice call 插件 是相互独立的两个面——前者管聊天消息后者是纯音频实时通话。从 package.json 可以看到插件的发布元信息项值插件 IDteams-meetings工具名teams_meetingsnpm 包openclaw/teams-meetingsClawHub 标识clawhub:openclaw/teams-meetings最低 OpenClaw 宿主版本2026.7.2npm/ClawHub 安装校验Plugin API 兼容2026.9.3分类voice、tools默认启用是enabledByDefault: true注意 README 中的Minimum OpenClaw host:2026.7.2对应 package.json 中install.minHostVersion的2026.7.2而运行时的 peer 依赖要求openclaw 2026.9.3插件 API 兼容基线也是2026.9.3。也就是说安装门槛是 2026.7.2但使用当前版本插件建议宿主不低于 2026.9.3。安装与卸载安装命令与 README 完全一致openclaw plugins install openclaw/teams-meetings安装或更新插件后必须重启 Gatewayopenclaw gateway restart不需要使用时可以禁用meeting-plugins.mdopenclaw plugins disable teams-meetings如果插件管理路径不会自动重启 Gateway请手动重启后再执行平台环境检查见下文验证与加入。配置详解三种参会模式Teams 插件与 Google Meet、Zoom 共享同一套会议运行时支持三种模式meeting-plugins.md模式行为音频要求agent默认实时转录交给配置的 OpenClaw Agent回复由常规 OpenClaw TTS 说出Chrome 回话需要受支持的虚拟音频后端bidi实时语音模型直接监听并作答延迟更低Chrome 回话需要受支持的虚拟音频后端transcribe仅旁听暴露平台字幕驱动的有界实时字幕流无需虚拟音频桥接选择建议只需要会议文字内容用transcribe需要正常 Agent 推理与工具调用用agent更看重低延迟直接语音用bidi。在bidi模式下可恢复的 Provider 诊断只记录日志而不中断音频桥终端性 Provider 关闭、恢复耗尽、初始设置失败、本地音频传输失败仍会停止桥接离开会议也会停止桥接。agent模式下停止会议会请求取消正在进行的 Agent 咨询OpenClaw 会先完成当前输出与 turn 事件再关闭会话。配置项全表插件配置结构定义在 openclaw.plugin.json 的configSchema中运行时由 src/config.ts 承载。顶层结构为enabled、defaultMode、chrome、chromeNode、realtime五块配置项取值/默认值说明enabledboolean是否启用插件defaultModeagent默认/bidi/transcribe默认参会模式chrome.audioBackendauto默认/blackhole-2ch/pipewire-pulse虚拟音频后端auto在 macOS 自动选 BlackHole 2ch、Linux 自动选 PipeWire-Pulsechrome.audioFormatpcm16-24khz默认/g711-ulaw-8khz桥接音频编码格式chrome.audioBufferBytesnumber最小 17音频缓冲字节数chrome.launchboolean是否自动启动 Chromechrome.browserProfile字符串用于会议的 OpenClaw 浏览器配置文件chrome.guestName字符串在平台 prejoin 页填写的访客显示名chrome.reuseExistingTabboolean是否复用已有 Teams 会议标签页chrome.autoJoinboolean是否自动点击加入chrome.joinTimeoutMsnumber最小 1加入超时chrome.waitForInCallMsnumber最小 1等待进入通话状态的时间chrome.audioInputCommandstring[]音频输入播放到虚拟麦克风命令chrome.audioOutputCommandstring[]音频输出命令chrome.bargeInInputCommandstring[]打断barge-in输入命令chrome.bargeInRmsThresholdnumber0打断 RMS 阈值chrome.bargeInPeakThresholdnumber0打断峰值阈值chrome.bargeInCooldownMsnumber最小 1打断冷却时间chromeNode.node字符串拥有 Chrome 与原生虚拟音频后端的配对节点 id/名称/IPrealtime.strategyagent/bidi实时策略realtime.provider字符串实时 Providerrealtime.transcriptionProvider字符串agent模式使用的实时转录 Providerrealtime.voiceProvider字符串bidi模式使用的实时语音 Providerrealtime.model字符串可选的实时模型覆盖realtime.instructions字符串实时指令realtime.introMessage字符串进入会议时的开场白realtime.agentId字符串agent模式下被咨询的 Agentrealtime.toolPolicysafe-read-only/owner/none实时工具策略realtime.providers对象Provider 级覆盖最小配置示例meeting-plugins.md 给出的配置只需覆盖默认值即可Teams 与 Zoom 共享配置形态入口 ID 换成zoom-meetings即适用于 Zoom省略chromeNode表示 Chrome 跑在 Gateway 本机{ plugins: { entries: { teams-meetings: { config: { defaultMode: agent, chrome: { guestName: OpenClaw Agent }, chromeNode: { node: meeting-node }, }, }, }, }, }插件内置的默认实时指令src/config.ts说明了几种模式的发言约束以 OpenClaw 语音传输身份加入私人 Teams 会议回复保持简短自然agent模式等待 OpenClaw 咨询结果并照读bidi模式直接作答需要更深推理/最新信息/工具时再调用实时咨询工具。支持的会议链接与 URL 校验规则插件对会议链接的解析逻辑集中在 src/transports/teams-meetings-urls.ts这是理解哪些链接能加入的关键工作链接teams.microsoft.com路径必须匹配/l/meetup-join/id可带可选/0后缀且id解码后必须匹配19:...thread.v2或19:...thread.tacv2的线程 ID 格式L16-L24。消费者链接teams.live.com支持三种形态——直接/meet/id、/dl/launcher/launcher.html?url...启动器带可选 passcodep参数、/light-meetings/launch?coords...轻量会议coords 为 Base64 编码的 JSON内含meetingCode与passcodemeeting code 仅允许[a-z0-9_-]L26-L68。链接必须为https:不允许携带端口、用户名、密码否则视为非法。normalizeTeamsMeetingUrlL76-L89会去掉 URL hash 并返回规范化后的字符串无法识别的链接会直接抛出错误Microsoft Teams meeting URL must use https://teams.microsoft.com/l/meetup-join/... or https://teams.live.com/meet/id。此外插件通过normalizeTeamsMeetingUrlForReuse生成teams-work:key/teams-consumer:key形式的身份键用于标签页复用判定与故障恢复isRecoverableTeamsMeetingTab还会识别login.microsoftonline.com域的登录页标题含 sign in/Microsoft/Teams便于恢复被登录流程打断的会话L105-L124。浏览器自动化流程与选择器插件基于 teams-meetings-selectors.ts 中声明的选择器驱动 Teams Web 客户端选择器优先采用产品自带的data-tid属性文本内容仅作为本地化漂移时的兜底。核心自动化步骤平台文档关闭应用插页点击continueInBrowser如[data-tidjoinOnWeb]跳过打开桌面应用引导填写访客名定位guestName输入框[data-tidprejoin-display-name-input]等关闭摄像头、按模式配置麦克风通过camera/microphone/deviceSettings/microphoneDevice系列选择器切换设备与静音状态点击加入join选择器[data-tidprejoin-join-button]等进入通话判定以挂断控件leavebutton#hangup-button、[data-tidcall-hangup]等作为 in-call 状态依据离开会议触发挂断必要时处理leaveConfirmation[data-tidconfirm-leave-button]等与postCall结束页。选择器还覆盖了lobby大厅等待、signIn登录按钮、permissionPrompt设备权限弹窗、moreActions更多操作、captions#closed-captions-button以及字幕渲染区captionRows、captionAuthor、captionText支撑字幕捕获与旁听转录。在 teams-meetings-platform-adapter.ts 中可以看到浏览器权限的声明方式仅谈话模式agent/bidi向 Teams 源请求audioCapture权限并可选申请speakerSelectiontranscribe模式不会请求麦克风权限同时在所有模式下都会采集字幕流写入持久化笔记durable notes但实时字幕的可见性仍由会话运行时控制。租户策略与 manualAction 处理Teams 是强策略平台。插件不会绕过租户策略当遇到以下情况时会返回manualAction提示人工介入平台文档租户要求登录sign-in邮箱验证email verification组织者准入审批organizer admission浏览器设备权限决策device-permission操作员应在同一个 OpenClaw Chrome 配置文件中完成被要求的步骤然后重试status或语音操作反复打开新标签页无法解决账号/租户/大厅/权限类关卡。插件将 Teams 侧的策略信号归类为通用manualAction类别src/transports/teams-meetings-platform-adapter.tsTeams 原因归类teams-login-requiredlogin-requiredteams-admission-requiredadmission-requiredteams-permission-requiredpermission-requiredteams-audio-choice-requiredaudio-choice-requiredteams-session-conflictsession-conflictbrowser-control-unavailablebrowser-control-unavailable针对teams-audio-choice-required插件内置了重试逻辑当已在通话中、音频输入已路由、且音频输出路由可重试时会继续重试而不是立刻放弃L108-L115。消费者 Web 客户端曾在 2026.8.1 版本完成实机验证覆盖插页关闭、访客名填写、麦克风/摄像头切换、大厅准入、媒体权限、通话中检测、实时字幕、BlackHole 路由、离开会议与会后检测工作租户可能附加额外的准入或离开确认策略平台文档。工具面、CLI 与 Gateway 面teams_meetings工具工具参数定义在 index.ts参数类型说明actionjoin/leave/status/transcript/speak要执行的动作url可选字符串Teams 会议链接transportchrome/chrome-node本机 Chrome 还是配对节点 Chromemodeagent/bidi/transcribe本次会话模式sessionId可选字符串Teams 会议会话 IDsinceIndex可选整数≥0从该索引继续读取转录message可选字符串需要说出的指令speak动作从 index.ts 可以看到一个重要的路由约束当agentId存在且不是main时按 Agent 路由的 Teams 会议必须运行在 Gateway 托管的 Agent run 中否则直接报错——即按 Agent 路由依赖 Gateway 可用性。CLI 子命令插件注册的 CLI 根命令是openclaw teamsmeetingsopenclaw.plugin.json子命令定义在 src/cli.tsopenclaw teamsmeetings join teams 链接 # 以访客身份加入会议 openclaw teamsmeetings leave # 离开会议 openclaw teamsmeetings status # 查看会议会话状态 openclaw teamsmeetings setup # 检查会议前置条件 openclaw teamsmeetings testSpeech # 加入并验证回话输出 openclaw teamsmeetings testListen # 以 transcribe 模式加入并报告字幕支持情况Gateway 方法统一使用teamsmeetings.*前缀节点命令为teamsmeetings.chrometeams-meetings-platform-constants.ts。在chrome-node传输下配对节点必须允许browser.proxy与teamsmeetings.chrome平台命令其节点配置路径为plugins.entries.teams-meetings.config.chromeNode.node。转录与持久化笔记插件注册了transcriptSourceProviders契约转录源 ID 为teams别名包括teams-meetings、microsoft-teams、msteamsindex.ts。三种模式下浏览器会话都会把已完成字幕行与派生摘要写入共享状态数据库离开会议时落定可见字幕并写入摘要可用openclaw transcripts列出、查看或导出meeting-plugins.md 与 transcripts CLI 文档。自动笔记默认开启可在配置中设置transcripts.enabled: false全局关闭显式选择transcribe的会话仍保留有界实时字幕尾但不写持久化行。字幕可用性取决于平台、账号、语言与主办方策略。Chrome 与虚拟音频环境准备agent/bidi模式要求 Chrome 所在主机安装原生音频依赖否则setup检查会失败。macOSBlackHole 2ch soxmeeting-plugins.mdbrew install blackhole-2ch sox sudo reboot system_profiler SPAudioDataType | grep -i BlackHole command -v soxLinux 桌面PipeWire-Pulse安装 PulseAudio 命令行工具OpenClaw 会在桌面用户的音频会话中创建并复用OpenClaw Meeting Audionull sink 与配套 source# Debian/Ubuntu sudo apt install pipewire-audio pulseaudio-utils systemctl --user --now enable pipewire pipewire-pulse wireplumber pactl info command -v pactl pacat parec关键约束Gateway 或配对节点必须以运行 Chrome 的同一个桌面用户身份运行。root 服务或无头服务因没有该用户的XDG_RUNTIME_DIR无法访问 PipeWire-Pulse socket会在 setup 阶段报出可操作的错误meeting-plugins.md。Chrome 跑在配对节点时Gateway 主机仍持有 OpenClaw Agent 与模型凭据agent模式需要配置实时转录 Provider 与 OpenClaw TTSbidi模式需要实时语音 Provider。setup检查中的访客加入自检要求chrome.guestName、chrome.autoJoin、chrome.reuseExistingTab三者齐备否则提示Set chrome.guestName, chrome.autoJoin, and chrome.reuseExistingTab for unattended guest joinssrc/runtime-setup.ts。验证与加入安装并完成环境准备后按以下流程验证meeting-plugins.md# 1. 环境检查任何失败都视为该传输/模式的阻塞项 openclaw teamsmeetings setup # 2. 加入会议 openclaw teamsmeetings join https://teams.microsoft.com/l/meetup-join/...只做旁听冒烟测试时先选transcribe模式确认status报告已进入通话in-call再期待字幕文本。回话talk-back冒烟测试要注意验证过的语音要求远高于播放命令收到了字节——共享命令对桥接会从当前输出代中提取有界波形指纹与选中虚拟麦克风捕获路径上返回的音频做相关性比对仅输出字节计数增长或存在无关参会者音频时Google Meet、Teams、Zoom 都不会报告speechOutputVerified: truemeeting-plugins.md。最后提醒合规底线只加入操作者被授权允许 Agent 参会的会议当地政策或同意规则要求披露自动化参会、转录或合成语音时应事先告知参会者meeting-plugins.md。插件源码结构导览若需深入排查插件源码位于 extensions/teams-meetings文件职责index.ts插件入口通过MeetingPlatformAdapter组装工具参数、转录源、运行时与 CLIsrc/config.ts配置 Schema、默认实时指令、Gateway 操作超时取max(60000, joinTimeoutMs 30s 宽限)src/runtime.ts运行时门面本机 Chrome / 节点 Chrome 启动、离开、读转录、恢复标签页、三类探针src/runtime-setup.tssetup状态音频设备断言、访客加入自检、节点消息src/runtime-probes.tstestSpeech/testListen探针src/cli.tsCLI 子命令注册与 Gateway 超时解析src/node-host.ts配对节点主机命令处理src/transports/teams-meetings-urls.ts会议链接解析、规范化与标签页复用判定src/transports/teams-meetings-selectors.tsTeams Web 客户端 DOM 选择器src/transports/teams-meetings-platform-adapter.ts平台适配manualAction 归类、权限、字幕、重试策略src/transports/teams-meetings-audio-routing.test.ts音频路由测试桥接重试、静音保持、标签页切换防护等相关参考文档插件平台文档、会议插件总览、插件参考页、插件清单。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考