OpenClaw Slack 頻道
透過 Socket Mode(預設)或 HTTP Events API 將 OpenClaw 連接到 Slack。這個企業級整合讓您的 AI 助手在 Slack 工作區中運行 — 處理私訊、頻道對話、表情回應、討論串和斜線命令。Socket Mode 透過 WebSocket 連接,無需公網 URL;HTTP 模式使用 Slack Events API,適用於公網可存取的部署。
Slack 支援功能
文字訊息
支援
媒體與檔案
支援
表情回應
支援
討論串
支援
語音訊息
不支援
群組聊天
支援
Slack 前置條件
- 擁有管理員權限的 Slack 工作區(用於安裝自訂應用程式)
- 在 api.slack.com/apps 建立的 Slack 應用程式
- App Token(xapp-...),需具有 connections:write 權限範圍(Socket Mode 需要)
- Bot Token(xoxb-...),安裝應用程式到工作區後取得
- OpenClaw Gateway 已執行並完成設定
Slack 快速設定
建立 Slack 應用程式並啟用 Socket Mode
前往 api.slack.com/apps,點選 'Create New App' → 'From scratch'。為應用程式命名並選擇您的工作區。在側欄中進入 'Socket Mode' 並啟用。產生一個具有 'connections:write' 權限範圍的 App-Level Token — 這就是 xapp-... Token。
設定 OAuth 權限範圍並安裝到工作區
進入 'OAuth & Permissions',新增必需的 Bot Token Scopes(chat:write、channels:history、channels:read、im:write、im:history、im:read、users:read、reactions:read、reactions:write、files:write 等)。點選 'Install to Workspace' 並授權。複製 Bot User OAuth Token(xoxb-...)。然後進入 'Event Subscriptions',啟用事件訂閱並訂閱:message.channels、message.groups、message.im、message.mpim、app_mention、reaction_added、reaction_removed。
新增設定、啟動 Gateway 並邀請機器人
將 Slack 頻道設定新增到 ~/.openclaw/openclaw.json,填入 appToken 和 botToken。啟動 Gateway — 它將透過 Socket Mode 連接到 Slack。在 Slack 中輸入 '/invite @您的機器人名' 將機器人邀請到目標頻道。傳送訊息進行測試。
Slack 設定範例
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-YOUR_APP_TOKEN",
"botToken": "xoxb-YOUR_BOT_TOKEN"
}
}
}Slack 深入了解
架構概述
建立 Slack 應用程式
私訊安全(配對機制)
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-...",
"botToken": "xoxb-...",
"dm": {
"policy": "pairing",
"allowFrom": ["U01ABCDEF", "user@company.com"]
}
}
}
}頻道設定(群組策略)
{
"channels": {
"slack": {
"groupPolicy": "allowlist",
"channels": {
"C01ABCDEF": {
"allow": true,
"requireMention": true,
"users": ["U01ABCDEF"],
"skills": ["search", "docs"],
"systemPrompt": "保持簡短且技術性的回答。"
},
"#general": {
"allow": true,
"requireMention": true
}
}
}
}
}回覆討論串
{
"channels": {
"slack": {
"replyToMode": "off",
"replyToModeByChatType": {
"direct": "all",
"group": "first",
"channel": "off"
}
}
}
}使用者 Token(可選)
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-...",
"botToken": "xoxb-...",
"userToken": "xoxp-...",
"userTokenReadOnly": true
}
}
}斜線命令與 App Home
{
"channels": {
"slack": {
"slashCommand": {
"enabled": true,
"name": "openclaw",
"sessionPrefix": "slack:slash",
"ephemeral": true
}
}
}
}權限範圍(Scopes)
HTTP 模式(Events API)
{
"channels": {
"slack": {
"enabled": true,
"mode": "http",
"botToken": "xoxb-...",
"signingSecret": "your-signing-secret",
"webhookPath": "/slack/events"
}
}
}進階設定
{
"channels": {
"slack": {
"historyLimit": 50,
"textChunkLimit": 4000,
"chunkMode": "newline",
"mediaMaxMb": 20,
"actions": {
"reactions": true,
"messages": true,
"pins": true,
"memberInfo": true,
"emojiList": true
}
}
}
}Slack 設定參考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 啟用或停用 Slack 頻道 |
| mode | string | "socket" | 連線模式。選項:socket(Socket Mode,預設)、http(Events API) |
| appToken | string | "" | Slack App-Level Token(xapp-...),Socket Mode 需要。也可使用 SLACK_APP_TOKEN 環境變數 |
| botToken | string | "" | Slack Bot User OAuth Token(xoxb-...)。也可使用 SLACK_BOT_TOKEN 環境變數 |
| userToken | string | "" | 可選的 Slack User Token(xoxp-...),用於增強讀取權限 |
| userTokenReadOnly | boolean | true | 限制 User Token 為唯讀操作。設為 false 允許以安裝使用者身份執行寫入操作 |
| signingSecret | string | "" | HTTP 模式請求驗證的 Signing Secret(來自 Basic Information → App Credentials) |
| webhookPath | string | "/slack/events" | HTTP 模式的 Webhook 端點路徑 |
| dm.policy | string | "pairing" | 私訊存取控制策略。選項:pairing(基於配對碼審核)、open(任何人可私訊) |
| dm.allowFrom | string[] | [] | 允許向機器人傳送私訊的使用者。支援使用者 ID、@使用者名稱、電子郵件和萬用字元(*) |
| dm.enabled | boolean | true | 是否接受私訊 |
| dm.groupEnabled | boolean | false | 啟用群組私訊(MPIM)處理 |
| dm.groupChannels | string[] | [] | 允許的群組私訊頻道 ID |
| groupPolicy | string | "open" | 頻道處理策略。選項:open(所有頻道)、disabled(無頻道)、allowlist(僅設定的頻道) |
| channels.<id>.allow | boolean | true | 在 allowlist 模式下允許或拒絕此頻道 |
| channels.<id>.requireMention | boolean | false | 機器人是否需要 @提及才在此頻道中回應 |
| channels.<id>.users | string[] | [] | 此頻道的使用者允許清單(ID、@使用者名稱或電子郵件) |
| channels.<id>.skills | string[] | [] | 限制此頻道可用的技能(空 = 所有技能) |
| channels.<id>.systemPrompt | string | "" | 此頻道的自訂 AI 系統提示 |
| channels.<id>.allowBots | boolean | false | 在此頻道中處理來自其他機器人的訊息 |
| replyToMode | string | "off" | 回覆討論串模式。選項:off(主頻道)、first(首則回覆以討論串傳送)、all(所有回覆以討論串傳送) |
| replyToModeByChatType | object | {} | 按聊天類型覆寫討論串模式。鍵:direct、group、channel。值:off、first、all |
| reactionNotifications | string | "off" | 哪些表情回應觸發代理通知。選項:off、own、all |
| historyLimit | number | 50 | AI 上下文中包含的最近訊息數量。設為 0 停用 |
| textChunkLimit | number | 4000 | 長 AI 回覆每則訊息的最大字元數 |
| chunkMode | string | "split" | 長回覆的分割方式。選項:split(硬字元限制)、newline(段落邊界) |
| mediaMaxMb | number | 20 | 最大媒體檔案大小(MB) |
| slashCommand.enabled | boolean | true | 啟用斜線命令處理 |
| slashCommand.name | string | "openclaw" | 斜線命令名稱(不含 /) |
| slashCommand.ephemeral | boolean | true | 斜線命令回應是否僅對呼叫者可見 |
啟用或停用 Slack 頻道
連線模式。選項:socket(Socket Mode,預設)、http(Events API)
Slack App-Level Token(xapp-...),Socket Mode 需要。也可使用 SLACK_APP_TOKEN 環境變數
Slack Bot User OAuth Token(xoxb-...)。也可使用 SLACK_BOT_TOKEN 環境變數
可選的 Slack User Token(xoxp-...),用於增強讀取權限
限制 User Token 為唯讀操作。設為 false 允許以安裝使用者身份執行寫入操作
HTTP 模式請求驗證的 Signing Secret(來自 Basic Information → App Credentials)
HTTP 模式的 Webhook 端點路徑
私訊存取控制策略。選項:pairing(基於配對碼審核)、open(任何人可私訊)
允許向機器人傳送私訊的使用者。支援使用者 ID、@使用者名稱、電子郵件和萬用字元(*)
是否接受私訊
啟用群組私訊(MPIM)處理
允許的群組私訊頻道 ID
頻道處理策略。選項:open(所有頻道)、disabled(無頻道)、allowlist(僅設定的頻道)
在 allowlist 模式下允許或拒絕此頻道
機器人是否需要 @提及才在此頻道中回應
此頻道的使用者允許清單(ID、@使用者名稱或電子郵件)
限制此頻道可用的技能(空 = 所有技能)
此頻道的自訂 AI 系統提示
在此頻道中處理來自其他機器人的訊息
回覆討論串模式。選項:off(主頻道)、first(首則回覆以討論串傳送)、all(所有回覆以討論串傳送)
按聊天類型覆寫討論串模式。鍵:direct、group、channel。值:off、first、all
哪些表情回應觸發代理通知。選項:off、own、all
AI 上下文中包含的最近訊息數量。設為 0 停用
長 AI 回覆每則訊息的最大字元數
長回覆的分割方式。選項:split(硬字元限制)、newline(段落邊界)
最大媒體檔案大小(MB)
啟用斜線命令處理
斜線命令名稱(不含 /)
斜線命令回應是否僅對呼叫者可見
Slack 常見問題
Slack 故障排除
頻道被 groupPolicy 阻擋,或機器人不在允許清單中,或機器人未被邀請到頻道。
私訊策略設為 'pairing' 且傳送者未被審核通過,或 App Home 中未啟用 Messages Tab。
App Token(xapp-...)無效或已過期,或伺服器與 Slack 之間存在網路問題。
Bot Token 缺少必需的 OAuth 權限範圍,或 Token 已被撤銷/重新產生。
未在 Slack API 入口網站中建立斜線命令,或請求 URL 設定錯誤(HTTP 模式)。
較長的 AI 回覆超過了 OpenClaw 的 textChunkLimit(預設 4,000 字元),會被自動分成多則訊息傳送。注意:Slack 自身的限制為每個 section block 3,000 字元,每則訊息 text 欄位 40,000 字元。