本页内容
本页内容
网关
配置——工作场所聊天频道
channels.* 工作场所聊天频道密钥:Google Chat、Slack、Mattermost 和 Microsoft Teams。
Google Chat
- 服务账号 JSON:内联(
serviceAccount)或基于文件(serviceAccountFile)。 serviceAccount可直接接受 SecretRef。- 环境变量回退:
GOOGLE_CHAT_SERVICE_ACCOUNT或GOOGLE_CHAT_SERVICE_ACCOUNT_FILE(仅限默认账号)。 - 使用
spaces/<spaceId>或users/<userId>作为投递目标。 channels.googlechat.dangerouslyAllowNameMatching重新启用可变的电子邮件主体匹配(紧急兼容模式)。
Slack
- Socket 模式要求同时提供
botToken和appToken(默认账号环境变量回退使用SLACK_BOT_TOKEN+SLACK_APP_TOKEN)。 - HTTP 模式要求提供
botToken以及signingSecret(在根级别或每个账号中)。 allowBots默认为true,控制其他机器人是否可以触发回合。显式false仍然是选择退出;房间设置覆盖帐户和根设置。正常访问、提及、机器人房间授权、自我消息过滤和 机器人循环保护 仍然适用。机器人编写的历史记录和线程上下文仍受上下文可见性规则的约束,与此标志无关。请参见 Slack 访问控制。channels.slack.joinIntro默认为true。当机器人加入允许的频道时,它会使用频道名称、目的或主题以及可用的最新消息发布一条介绍。将此选项设置为false以禁用介绍,或使用channels.slack.accounts.<accountId>.joinIntro进行特定于账户的覆盖。每个频道最多可读取 100 条最近消息;参见群加入介绍。介绍永远不会在私信中出现。- 用户身份 (
postAs: "user") 作为授权人发布和读取。在套接字模式下需要userToken加appToken,或者在 HTTP 模式下需要userToken加signingSecret。不需要机器人令牌或机器人用户。有关用户范围和事件订阅,请参阅 用户身份。 - Slack 使用
auth.test自动从机器人令牌检测 Enterprise Grid 组织范围内的安装;不需要安装模式设置。企业 DM 支持disabled、open、allowlist和工作区范围的pairing。渠道策略需要team:<team-id>:channel:<channel-id>。用户策略接受工作区范围的组织范围稳定用户 ID 或team:<team-id>:user:<user-id>。可变名称和不受支持的通道前缀启动失败。提及模式通道范围和静态路由绑定对等体使用工作区限定的 Slack 目标。支持直接套接字模式或 HTTP 消息、提及、工作区限定操作、延迟交付、主动发送、支持的事件侦听器和交互、静态路由绑定以及来自工作区限定回合的 Slack-native 批准。中继、通道 ID-change 事件、应用程序主页、代理和助理生命周期事件、配置的 ACP 绑定以及运行时当前对话绑定仍然不可用。请参阅 Enterprise Grid 组织范围内的安装 了解最低权限清单、设置工作流程和完整限制。 - 已废弃的
enterpriseOrgInstall键会由openclaw doctor --fix在 Slack 根级别和账号级别移除。 botToken、appToken、signingSecret和userToken接受明文字符串或 SecretRef 对象。- Slack 帐户快照公开每个凭证的 source/status 字段,例如
botTokenSource、botTokenStatus、userTokenSource、userTokenStatus、appTokenStatus,并且HTTP模式,signingSecretStatus。configured_unavailable表示该帐户是通过 SecretRef 配置的,但当前 command/runtime 路径无法解析秘密值。 configWrites: false阻止 Slack- 发起的配置写入。- 可选的
channels.slack.defaultAccount会在匹配已配置账号 id 时覆盖默认账号选择。 dm.groupEnabled和dm.groupChannels仅过滤应用已是其成员的 Slack 组 DM (MPDM)。他们无法使应用程序看到它从未加入的现有组 DM;将群组 DM 转换为私人频道并邀请应用程序,或者让应用程序使用conversations.open打开新的 MPDM。请参阅 Group DM (MPDM) 和机器人 。channels.slack.streaming.mode是当前 Slack 流模式密钥(默认"progress")。channels.slack.streaming.nativeTransport控制 Slack 的本机流传输(默认true)。运行时不再读取旧版streamMode、布尔值streaming、chunkMode、blockStreaming、blockStreamingCoalesce和nativeStreaming值;运行openclaw doctor --fix将持久配置迁移到streaming.{mode,chunkMode,block.enabled,block.coalesce,nativeTransport}。unfurlLinks和unfurlMedia会将 Slackchat.postMessage的链接和媒体展开布尔值传递给机器人回复。unfurlLinks默认为false,因此出站机器人链接不会展开显示,除非启用;除非进行配置,否则不会设置unfurlMedia。在channels.slack.accounts.<accountId>设置任一值,即可覆盖某个账号的顶层值。- 使用
user:<id>(DM) 或channel:<id>作为交付目标。
反应通知模式: off、own(默认)、all、allowlist(来自reactionAllowlist)。
线程会话隔离: thread.historyScope 可按线程隔离(默认)或跨频道共享。thread.inheritParent 会将父频道转录复制到新线程。thread.initialHistoryLimit(默认 20)限制新线程会话开始时拉取多少条已有线程消息;0 会禁用线程历史拉取。
- Slack 本机流式传输加上 Slack 助手式“is typing...”线程状态需要回复线程目标。默认
progress转无回复帖,包括普通的顶级DM,仅发布最终答案。设置streaming.progress.style、设置streaming.progress.toolProgress或设置streaming.progress.nativeTaskCards: false选择预览。线程转动、代理视图、助理视图和显式off/partial/block模式保留其行为。请参阅 Slack 消息行为。 typingReaction在回复运行时向入站 Slack 消息添加临时反应,然后在完成后将其删除。默认为"hourglass_flowing_sand",用于安静的顶级进度转弯;配置的短代码会覆盖它,并且""会禁用它。channels.slack.execApprovals:Slack-native审批-客户端交付并执行审批人授权。与 Discord 相同的架构:enabled(true/false/"auto")、approvers(Slack 用户 ID)、agentFilter、sessionFilter和target("dm","channel"或"both")。当 Slack 插件审批者解析时,插件审批可以使用此本机客户端路径进行 Slack-origin 请求;还可以通过 Slack-origin 会话或 Slack 目标的approvals.plugin启用 Slack-native 插件审批交付。插件审批在设置时使用approvals.plugin.slack审阅者列表,当省略默认列表时,回退到 Slack 帐户allowFrom和默认路由。他们不使用执行批准者。- 有效的非空
approvals.plugin.slack审阅者列表使本机 Slack 插件批准交付独立于channels.slack.execApprovals和插件转发。
| 行动组 | 默认值 | 笔记 |
|---|---|---|
| 反应 | 已启用 | 添加 reaction + 列出 reactions |
| 消息 | 已启用 | Read/send/edit/delete |
| 针脚 | 已启用 | Pin/unpin/list |
| 会员信息 | 已启用 | 成员信息 |
| 表情符号列表 | 已启用 | 列出自定义表情符号 |
Mattermost
Mattermost 以单独插件的形式安装,方式与 Discord、Slack 和 WhatsApp 相同:
在固定版本之前,请查看 npmjs.com/package/@openclaw/mattermost 了解当前的 dist-tags。
聊天模式:oncall(在 @-mention 时响应,默认)、onmessage(每条消息)、onchar(以触发前缀开头的消息)。
启用 Mattermost 原生命令时:
commands.callbackPath必须是路径(例如/api/channels/mattermost/command),不能是完整 URL。commands.callbackUrl必须解析到 OpenClaw gateway 端点,并且 Mattermost 服务器可以访问。- 原生 slash 回调使用 Mattermost 在 slash command 注册期间返回的每命令 token 进行认证。如果注册失败或没有激活任何命令,OpenClaw 会以
Unauthorized: invalid command token.拒绝回调。 - 对于 private/tailnet/internal 回调主机,Mattermost 可能要求
ServiceSettings.AllowedUntrustedInternalConnections包含回调 host/domain. 使用 host/domain 值,而不是完整 URL。 channels.mattermost.configWrites:允许或拒绝 Mattermost- 发起的配置写入。channels.mattermost.requireMention:在频道中回复前是否需要@mention。channels.mattermost.groups.<channelId>.requireMention:每频道 mention 门控覆盖(默认使用"*")。- 可选的
channels.mattermost.defaultAccount会在其与已配置账号 id 匹配时覆盖默认账号选择。
Microsoft Teams
Microsoft Teams 由插件支持,并在 channels.msteams 下配置。
- 此处介绍的核心关键路径:
channels.msteams、channels.msteams.configWrites、channels.msteams.accounts和channels.msteams.defaultAccount。 - 完整的 Teams 配置(凭据、Webhook、DM/group 策略、多个机器人帐户和每个 team/per-channel 覆盖)记录在 Microsoft Teams 中。
本页有帮助吗?