尚未安裝 OpenClaw?點此查看一鍵安裝指令
curl -fsSL https://openclaw.ai/install.sh | bash
iwr -useb https://openclaw.ai/install.ps1 | iex
curl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
擔心影響電腦?ClawTank 免安裝雲端運行,免除誤刪風險
Key Findings
  • Slack 是企業級團隊協作的核心平台,與 OpenClaw 整合後可將 AI 代理能力直接嵌入團隊日常工作流,無需切換工具即可執行自動化任務[1]
  • 完整串接流程涵蓋四大步驟:建立 Slack App → 配置 Bot Token 與 App-Level Token → 啟用 Event Subscriptions → 完成 Pairing 配對驗證,全程約 15–20 分鐘[3]
  • OpenClaw 的 Slack 整合支援 Socket Mode 與 HTTP Webhook 兩種連線模式——Socket Mode 免除公開端點需求,適合開發與內部部署;HTTP 模式適合高流量企業環境[9]
  • 透過頻道權限管理(Channel Allowlist)與 Group Policy,企業可精確控制 AI 代理在哪些頻道回應、誰可以觸發指令,確保資訊安全與合規[7]
  • Slack Enterprise Grid 整合讓多工作區組織能以統一策略管理跨團隊 AI 代理,搭配 Slash Commands 與 Interactive Messages 實現完整的企業級 AI 自動化工作流[5]

一、為什麼選擇 Slack × OpenClaw?

在眾多通訊渠道中,Slack 佔據企業協作平台的核心地位。根據 Slack 2025 年的工作報告,全球超過 75 萬家企業將 Slack 作為日常溝通與專案管理的主要工具,每天產生的訊息量超過數十億則。[6] 當團隊的工作流已經深度整合在 Slack 生態系中時,將 AI 代理直接嵌入 Slack 工作區——而非要求團隊成員切換到獨立的 AI 介面——是效率最大化的策略選擇。

OpenClaw 作為開源 AI 代理框架,能透過 Slack Bot API 與工作區無縫整合,讓團隊在熟悉的頻道環境中直接與 AI 代理互動。[8] 這意味著:

相較於 Telegram 的個人化遠端控制場景,Slack × OpenClaw 的整合更適合團隊協作、企業自動化與組織級 AI 部署。以下將完整介紹從零開始的串接流程。

二、前置準備

在開始串接之前,請確認以下環境與權限已就緒:[4]

2.1 Slack 端需求

2.2 OpenClaw 端需求

檢查 Gateway 狀態:

openclaw gateway status

如果 Gateway 尚未啟動:

openclaw gateway start

2.3 網路需求

OpenClaw 的 Slack 整合支援兩種連線模式:

模式需求適用場景
Socket Mode僅需出站 HTTPS 連線開發測試、防火牆內部署、無公開 IP 環境
HTTP Webhook需要公開 HTTPS 端點(或 ngrok/Cloudflare Tunnel)高流量生產環境、Enterprise Grid 部署

建議:初次設定建議使用 Socket Mode,無需暴露公開端點,適合快速上手。待需求增長後再切換至 HTTP Webhook 模式。

三、步驟一:建立 Slack App 與 Bot Token

這是整個串接流程的核心步驟——在 Slack 平台上建立一個 App,並取得必要的 Token 與權限。[2][3]

3.1 建立 Slack App

  1. 前往 api.slack.com/apps,點選 「Create New App」
  2. 選擇 「From scratch」(從零開始)
  3. 輸入 App 名稱(例如 OpenClaw Agent)並選擇目標工作區
  4. 點選 「Create App」

建立完成後,你會進入 App 的設定頁面。接下來需要配置必要的權限與 Token。

3.2 配置 Bot Token Scopes

在左側選單中進入 「OAuth & Permissions」,向下捲動到 「Scopes」 區塊。在 Bot Token Scopes 底下新增以下權限:[3]

Scope用途必要性
app_mentions:read讀取 @mention 代理的訊息必要
chat:write代理在頻道中發送訊息必要
channels:history讀取公開頻道的訊息歷史必要
channels:read列出工作區中的公開頻道必要
groups:history讀取私人頻道的訊息歷史選配
groups:read列出代理所在的私人頻道選配
im:history讀取 DM(私訊)歷史選配
im:read列出代理的 DM 對話選配
im:write代理發送 DM選配
files:write代理上傳檔案到頻道選配
files:read讀取頻道中的檔案選配
reactions:write代理為訊息添加表情符號反應選配
commands註冊 Slash Commands進階功能時需要
users:read查詢使用者資訊選配

最小必要配置:如果你只需要基本的「@mention → 代理回覆」功能,只需新增 app_mentions:readchat:writechannels:historychannels:read 四個 Scope。

3.3 安裝 App 至工作區

回到 「OAuth & Permissions」 頁面頂部,點選 「Install to Workspace」。Slack 會顯示授權確認畫面,列出你剛才配置的所有權限。確認後點選 「Allow」

安裝完成後,頁面會顯示兩組 Token:

請複製 Bot User OAuth Token(xoxb-...),後續步驟會用到。

3.4 啟用 Socket Mode 並取得 App-Level Token

如果你選擇使用 Socket Mode(建議初次設定使用):

  1. 在左側選單中進入 「Socket Mode」
  2. 開啟 「Enable Socket Mode」
  3. 系統會要求你建立一個 App-Level Token——輸入名稱(例如 openclaw-socket)並選擇 connections:write Scope
  4. 點選 「Generate」

產生的 App-Level Token 格式為 xapp-...請一併複製保存。

四、步驟二:OpenClaw 端設定

取得 Slack 的 Bot Token 與 App-Level Token 後,接下來要將它們寫入 OpenClaw 的配置。[1]

4.1 設定 Bot Token

openclaw config set channels.slack.botToken "xoxb-你的-bot-token"

4.2 設定 App-Level Token(Socket Mode)

openclaw config set channels.slack.appToken "xapp-你的-app-level-token"

4.3 啟用 Slack 頻道

openclaw config set channels.slack.enabled true

4.4 設定連線模式

指定 OpenClaw 使用 Socket Mode 連線:

openclaw config set channels.slack.mode "socket"

如果你使用 HTTP Webhook 模式,則設定為:

openclaw config set channels.slack.mode "http"
openclaw config set channels.slack.webhookPort 3001

4.5 驗證設定

使用以下指令確認所有 Slack 相關設定正確寫入:

openclaw config get channels.slack

預期輸出:

{
"enabled": true,
"mode": "socket",
"botToken": "xoxb-****",
"appToken": "xapp-****"
}

4.6 重啟 Gateway

設定完成後,重啟 Gateway 讓變更生效:

openclaw gateway restart

觀察 Gateway 日誌,確認 Slack 連線成功:

openclaw logs --follow --limit 20

如果看到類似 [slack] Connected via Socket Mode 的訊息,表示連線成功。

五、步驟三:Event Subscriptions 與 Webhook

OpenClaw 需要接收來自 Slack 的事件(例如使用者 @mention 代理時的訊息事件),才能觸發 AI 代理回應。這裡需要配置 Slack 的 Event Subscriptions。[9]

5.1 Socket Mode 下的事件訂閱

如果你使用 Socket Mode,事件會透過 WebSocket 直接傳遞給 OpenClaw,不需要公開的 Request URL。設定步驟:

  1. 在 Slack App 設定頁面,進入左側選單的 「Event Subscriptions」
  2. 開啟 「Enable Events」
  3. 由於已啟用 Socket Mode,系統不會要求輸入 Request URL
  4. 「Subscribe to bot events」 底下,新增以下事件:
事件名稱功能必要性
app_mention當有人 @mention 代理時觸發必要
message.channels公開頻道中的新訊息選配(全頻道監聽)
message.groups私人頻道中的新訊息選配
message.im代理 DM 中的新訊息選配

點選 「Save Changes」

5.2 HTTP Webhook 模式下的事件訂閱

如果你選擇 HTTP Webhook 模式,需要提供一個 Slack 可以存取的公開 HTTPS 端點:

  1. 確保 OpenClaw Gateway 可透過公開 URL 存取(例如透過 Cloudflare Tunnel 或 ngrok)
  2. 「Event Subscriptions」 中開啟 「Enable Events」
  3. 「Request URL」 輸入你的公開端點:
https://your-domain.com/api/slack/events

Slack 會立即向此 URL 發送一個驗證請求(challenge request),OpenClaw Gateway 會自動處理此驗證。如果驗證成功,URL 旁會顯示綠色的 「Verified」 標記。

使用 ngrok 進行本地開發測試:

# 啟動 ngrok 隧道(假設 Gateway 監聽 3001 埠)
ngrok http 3001

# ngrok 會產生一個臨時公開 URL,例如:
# https://abc123.ngrok-free.app
# 將此 URL 加上路徑作為 Request URL

5.3 驗證事件接收

設定完成後,在 Slack 工作區中任意公開頻道邀請你的 Bot(輸入 /invite @OpenClaw Agent),然後 @mention 代理:

@OpenClaw Agent 你好,請確認連線狀態

如果一切正常,代理應在數秒內回覆。如果沒有回應,請參閱本文後段的疑難排解章節。

六、步驟四:頻道權限與 Group Policy

在企業環境中,你不會希望 AI 代理在所有頻道都能回應——有些頻道涉及機密資訊,有些頻道不適合 AI 介入。OpenClaw 提供精細的頻道權限管理機制。[7][10]

6.1 Channel Allowlist(頻道白名單)

限制代理只在特定頻道中回應:

# 取得頻道 ID(在 Slack 中右鍵點擊頻道名稱 → 複製連結,ID 為 URL 最後一段)
# 例如 C0123456789

openclaw config set channels.slack.allowedChannels '["C0123456789", "C9876543210"]'

設定後,代理只會在白名單中的頻道回應 @mention,其他頻道的訊息會被忽略。

6.2 Channel Denylist(頻道黑名單)

如果你希望代理在大多數頻道都能回應,但排除特定敏感頻道:

openclaw config set channels.slack.deniedChannels '["C1111111111"]'

注意:allowedChannelsdeniedChannels 不應同時使用。如果兩者都設定了,allowedChannels 會優先生效。

6.3 DM Policy(私訊政策)

控制誰可以透過 Slack DM 直接與代理對話:

openclaw config set channels.slack.dmPolicy "owner_only"

如果使用 allowlist 模式,需要設定允許的使用者 ID:

# 使用者 ID 可在 Slack 個人檔案中找到(以 U 開頭)
openclaw config set channels.slack.allowedUsers '["U0123456789", "U9876543210"]'

6.4 Pairing 配對驗證

與 Telegram 整合類似,首次連線時需要完成 Pairing 配對,確保只有授權使用者能控制代理:[10]

  1. 在 Slack 中 DM 代理或在允許的頻道中 @mention 代理
  2. 代理會回覆 「Pairing Required」 並顯示一個六位數配對碼
  3. 在終端機中查看並批准配對:
# 列出待配對的連線
openclaw pairing list

# 批准配對請求
openclaw pairing approve

# 或指定特定配對碼批准
openclaw pairing approve --code 123456

配對完成後,代理會在 Slack 中回覆確認訊息,此後你即可正常互動。

七、進階功能:Slash Commands 與 Interactive Messages

基本的 @mention 互動已經能滿足大部分需求,但 Slack 的 Slash Commands 與 Interactive Messages 可以讓 AI 代理的操作更結構化、更直覺。[2]

7.1 註冊 Slash Commands

Slash Commands 讓使用者透過 /指令 格式快速觸發代理的特定功能:

  1. 在 Slack App 設定頁面,進入 「Slash Commands」
  2. 點選 「Create New Command」
  3. 設定指令參數:
欄位範例說明
Command/claw觸發指令(建議使用簡短好記的名稱)
Request URLSocket Mode 下可留空HTTP 模式下填入端點 URL
Short Description向 AI 代理下達指令使用者輸入 / 時顯示的說明
Usage Hint[任務描述]提示使用者如何輸入參數

配置完成後,OpenClaw 會自動處理 Slash Command 事件。在 Slack 中輸入:

/claw 分析本週 #sales 頻道的討論摘要並整理成報告

代理會接收到指令並開始執行任務。

7.2 多指令配置

你可以為不同任務註冊多個 Slash Commands,並在 OpenClaw 端映射到不同的代理或 Skill:

openclaw config set channels.slack.commands '{
"/claw": {"agent": "default", "description": "通用 AI 代理"},
"/claw-dev": {"agent": "coding", "description": "程式開發代理"},
"/claw-ops": {"agent": "devops", "description": "基礎設施管理代理"},
"/claw-report": {"agent": "analyst", "description": "資料分析與報告代理"}
}'

7.3 Interactive Messages(互動訊息)

OpenClaw 可以透過 Slack 的 Block Kit 發送帶有按鈕、選單與表單的互動訊息,讓使用者透過點擊操作(而非輸入文字)來與代理互動。

啟用互動功能:

  1. 在 Slack App 設定頁面,進入 「Interactivity & Shortcuts」
  2. 開啟 「Interactivity」(Socket Mode 下不需填 Request URL)
  3. 在 OpenClaw 端啟用互動訊息支援:
openclaw config set channels.slack.interactivity true

啟用後,代理可以發送類似以下格式的互動訊息:

例如,當使用者要求代理部署應用時,代理可以先發送一個互動訊息:

🔄 部署確認
目標環境:production
版本:v2.3.1
變更內容:修復登入頁面 CSS 問題

[✅ 確認部署]  [❌ 取消]

使用者點擊「確認部署」後,代理才會執行實際的部署操作。這為高風險操作提供了額外的安全層。

八、進階功能:Thread 與多頻道管理

在團隊環境中,良好的對話管理至關重要。OpenClaw 的 Slack 整合支援 Thread(執行緒)回覆與多頻道代理管理。

8.1 Thread 回覆模式

預設情況下,代理的回覆會直接發送到頻道中。在活躍的頻道中,這可能會造成訊息混亂。你可以設定代理以 Thread 方式回覆:

openclaw config set channels.slack.replyInThread true

啟用後,代理的每次回覆都會作為原始訊息的 Thread 回覆,保持頻道的整潔。使用者也可以在 Thread 中繼續與代理對話,形成獨立的上下文空間。

8.2 Thread 上下文設定

代理在 Thread 中回覆時,可以讀取 Thread 中先前的所有訊息作為上下文:

# 設定代理讀取的最大 Thread 訊息數
openclaw config set channels.slack.threadContextLimit 50

這表示代理會讀取最近 50 則 Thread 訊息來理解對話脈絡。對於長對話,建議設定合理的上限以避免 Token 用量過高。

8.3 多頻道多代理架構

大型組織通常需要在不同頻道部署不同功能的 AI 代理。OpenClaw 支援以下架構:[5]

openclaw config set channels.slack.channelAgents '{
"C0123456789": {"agent": "customer-support", "model": "claude-sonnet-4-20250514"},
"C9876543210": {"agent": "devops", "model": "claude-opus-4-20250514"},
"C1111111111": {"agent": "data-analyst", "model": "gpt-4o"}
}'

這種配置讓:

每個頻道的代理擁有獨立的 System Prompt、Skill 集合與模型設定,完全隔離。

8.4 跨頻道訊息轉發

在某些場景下,你可能希望代理將結果從一個頻道轉發到另一個頻道。例如,在 #alerts 頻道偵測到異常後,自動將摘要發送到 #devops 頻道:

openclaw config set channels.slack.crossChannelForward true

安全提醒:啟用跨頻道轉發時,請確保代理不會將敏感頻道的資訊洩漏到不適當的頻道。建議搭配 Channel Allowlist 使用。

九、企業級部署:Slack Enterprise Grid 整合

對於使用 Slack Enterprise Grid 的大型組織,OpenClaw 提供了額外的整合能力。[5]

9.1 Org-Wide App 部署

Enterprise Grid 允許將 Slack App 部署為 Org-Wide App,一次安裝即可在所有工作區中使用:

  1. 在 Slack App 設定中,進入 「Org Level Apps」
  2. 開啟 「Opt into Org-Wide App Installation」
  3. 由組織管理員批准安裝

安裝完成後,OpenClaw 的 Bot Token 將具有跨工作區的存取能力,適合需要統一管理的企業場景。

9.2 多工作區代理管理

在 Enterprise Grid 環境中,你可以為不同工作區配置不同的代理策略:

openclaw config set channels.slack.enterprise '{
"orgId": "E0123456789",
"workspaceOverrides": {
  "T111": {"agent": "engineering", "allowedChannels": ["C111", "C222"]},
  "T222": {"agent": "sales", "allowedChannels": ["C333", "C444"]},
  "T333": {"agent": "hr", "dmPolicy": "disabled"}
}
}'

9.3 合規與審計

企業環境對審計軌跡有嚴格要求。OpenClaw 的 Slack 整合自動記錄以下資訊:

查看審計日誌:

openclaw logs --channel slack --format json --since "7d"

這些日誌可以匯出到企業的 SIEM 系統(如 Splunk、Datadog)進行集中管理。[7]

9.4 速率限制與配額管理

為避免 AI 代理的使用量失控,建議設定速率限制:

# 每位使用者每小時最多互動次數
openclaw config set channels.slack.rateLimits.perUser 60

# 每個頻道每小時最多互動次數
openclaw config set channels.slack.rateLimits.perChannel 200

# 全域每日最大 Token 消耗量
openclaw config set channels.slack.rateLimits.dailyTokenLimit 1000000

超過限制時,代理會回覆友善的提示訊息,而非直接無回應。

十、完整設定範例:openclaw.json

以下是一個完整的 Slack 整合設定範例,涵蓋本文介紹的所有功能:

{
"gateway": {
  "enabled": true,
  "port": 3000
},
"channels": {
  "slack": {
    "enabled": true,
    "mode": "socket",
    "botToken": "xoxb-your-bot-token",
    "appToken": "xapp-your-app-level-token",
    "replyInThread": true,
    "threadContextLimit": 50,
    "interactivity": true,
    "dmPolicy": "allowlist",
    "allowedUsers": ["U0123456789", "U9876543210"],
    "allowedChannels": ["C0123456789", "C9876543210"],
    "channelAgents": {
      "C0123456789": {
        "agent": "general",
        "model": "claude-sonnet-4-20250514"
      },
      "C9876543210": {
        "agent": "devops",
        "model": "claude-opus-4-20250514"
      }
    },
    "commands": {
      "/claw": {"agent": "default"},
      "/claw-dev": {"agent": "coding"},
      "/claw-ops": {"agent": "devops"}
    },
    "rateLimits": {
      "perUser": 60,
      "perChannel": 200,
      "dailyTokenLimit": 1000000
    }
  }
}
}

注意:實際部署時,Bot Token 與 App-Level Token 不應寫死在設定檔中。建議使用環境變數:

export OPENCLAW_SLACK_BOT_TOKEN="xoxb-..."
export OPENCLAW_SLACK_APP_TOKEN="xapp-..."

然後在 openclaw.json 中使用變數參照:

{
"channels": {
  "slack": {
    "botToken": "${OPENCLAW_SLACK_BOT_TOKEN}",
    "appToken": "${OPENCLAW_SLACK_APP_TOKEN}"
  }
}
}

十一、疑難排解

以下整理了 Slack × OpenClaw 串接過程中最常見的問題與解決方案:[1][9]

問題可能原因解決方案
代理完全無回應 Gateway 未啟動、Token 錯誤、或 Slack 頻道未啟用 執行 openclaw gateway status 確認 Gateway 運行;用 openclaw config get channels.slack 檢查 Token;確認 enabledtrue
出現 invalid_auth 錯誤 Bot Token 格式錯誤或已過期 前往 Slack App 設定的 OAuth & Permissions 頁面重新複製 Token;確認格式為 xoxb- 開頭
Socket Mode 連線失敗 App-Level Token 無效或未啟用 Socket Mode 確認 App-Level Token 格式為 xapp- 開頭;在 Slack App 設定中確認 Socket Mode 已開啟
代理在某些頻道不回應 Channel Allowlist 限制或 Bot 未被邀請進頻道 檢查 allowedChannels 設定;在目標頻道輸入 /invite @你的Bot名稱 邀請 Bot
Pairing Required 反覆出現 配對未完成或配對已過期 執行 openclaw pairing list 查看狀態;重新執行 openclaw pairing approve
HTTP Webhook 驗證失敗 URL 不可達或 Gateway 未監聽正確埠口 確認公開 URL 可存取;檢查 webhookPort 設定是否與 Gateway 一致;確認 HTTPS 憑證有效
Event Subscriptions 中沒有收到事件 未訂閱正確的事件類型 回到 Slack App 設定,確認已訂閱 app_mention 等必要事件
代理回覆延遲超過 30 秒 LLM 回應時間過長或網路延遲 切換到更快的模型(如 Haiku 或 Sonnet);檢查 Gateway 伺服器的網路延遲
Slash Command 無效 未在 Slack App 中註冊或 commands Scope 未添加 確認 Slash Command 已在 Slack App 設定中建立;確認 Bot Token Scopes 包含 commands
互動按鈕點擊後無反應 Interactivity 未啟用 確認 Slack App 的 Interactivity & Shortcuts 已開啟;確認 OpenClaw 端 interactivitytrue
跨頻道轉發權限錯誤 Bot 在目標頻道沒有 chat:write 權限 確認 Bot 已被邀請進目標頻道且擁有寫入權限
Rate Limit 錯誤(429 Too Many Requests 超過 Slack API 速率限制 Slack 的 API 速率限制為每秒約 1 則訊息(tier 1);降低代理回覆頻率或使用 Slack 的 Retry-After 標頭

11.1 診斷指令速查

以下是排查問題時最常用的診斷指令:

# 查看 Gateway 狀態
openclaw gateway status

# 即時查看日誌
openclaw logs --follow --limit 50

# 查看所有頻道的連線狀態
openclaw channels status

# 檢查完整設定
openclaw config get channels.slack

# 列出所有配對裝置
openclaw pairing list

11.2 日誌層級調整

遇到難以定位的問題時,可以將 Slack 頻道的日誌層級調高:

openclaw config set channels.slack.logLevel "debug"
openclaw gateway restart

Debug 模式會記錄所有 Slack API 的請求與回應內容,有助於定位問題根源。排查完畢後記得將日誌層級調回 info

十二、安全最佳實踐

將 AI 代理接入 Slack 工作區,等同於在團隊的核心溝通平台中引入一個具有電腦操作能力的自主代理。以下是必須遵守的安全原則:[7][8]

  1. 最小權限原則:只授予代理必要的 Slack Scope。如果代理只需要回應 @mention,不要給予 files:writeim:write 權限
  2. 使用 Channel Allowlist:明確列出允許代理運作的頻道,避免代理意外存取敏感頻道
  3. 設定嚴格的 DM Policy:生產環境建議使用 owner_onlyallowlist,絕不使用 workspace
  4. Token 安全管理:Bot Token 與 App-Level Token 必須透過環境變數管理,不應寫入版本控制系統
  5. 定期輪換 Token:建議每 90 天重新產生 Token,並在 OpenClaw 端更新
  6. 啟用互動確認:對於高風險操作(檔案刪除、部署、資料庫修改),設定代理必須先發送確認按鈕
  7. 監控審計日誌:定期檢查代理的互動日誌,確認沒有異常操作
  8. 限制代理的 Skill 權限:僅安裝代理需要的 Skill,避免授予過多的系統存取能力
  9. 設定速率限制:防止代理被濫用或意外觸發過多操作
  10. 隔離生產與測試環境:使用不同的 Slack App 與 Bot Token 來隔離生產和測試環境的代理

結語

Slack × OpenClaw 的整合讓 AI 代理從個人工具升級為團隊級的智慧協作夥伴。團隊成員在日常使用的 Slack 頻道中即可與 AI 代理互動——無需開啟終端機、無需學習新工具、無需離開工作流。[8]

從技術角度來看,這篇指南涵蓋了完整的串接流程:從 Slack App 建立、Bot Token 與 App-Level Token 配置、Event Subscriptions 設定(Socket Mode 與 HTTP Webhook 兩種模式)、頻道權限精細管理,到 Slash Commands、Interactive Messages、Thread 管理等進階功能,最後延伸至 Enterprise Grid 的企業級部署方案。[1][5]

整個串接過程的核心理念是安全優先:Pairing 配對機制、Channel Allowlist、DM Policy、速率限制,這些層層疊加的安全防護確保 AI 代理在企業環境中的可控性與合規性。[7]

如果你是第一次使用 OpenClaw,建議先閱讀《架構解析與實戰部署全指南》完成基礎安裝與設定。如果你想探索其他通訊渠道的整合,可以參閱《平台串接完全指南》。遇到安全相關的疑慮,請參閱《安全性深度分析》了解完整的安全架構。

需要進一步的部署協助?聯繫超智諮詢,我們的團隊可以為您的企業量身設計 AI 代理整合方案,從架構規劃到上線支援全程陪伴。