跳至主要內容

建立 Slack 助手

在本指南中,你會建立一個能回應 Slack 訊息及提及的 Mastra Agent。你將學習如何設定頻道配接器、以適當權限設定 Slack 應用程式、透過 webhook 將其連接至 Agent,以及測試互動。

先決條件
先決條件 的直接連結

建立 Agent
建立 Agent 的直接連結

安裝 Slack 配接器:

npm install @chat-adapter/slack

建立新檔案 src/mastra/agents/slack-agent.ts 並定義你的 Agent:

src/mastra/agents/slack-agent.ts
import { Agent } from '@mastra/core/agent'
import { createSlackAdapter } from '@chat-adapter/slack'

export const slackAgent = new Agent({
id: 'slack-agent',
name: 'Slack Agent',
instructions:
'You are a helpful assistant. Answer questions, help with tasks, and have natural conversations.',
model: 'anthropic/claude-opus-4-7',
channels: {
adapters: {
slack: createSlackAdapter(),
},
},
})

channels 屬性指示 Mastra 為每個配接器產生 webhook 端點。在此情況下,Slack 配接器會自動處理事件驗證、簽名驗證及訊息格式化。

src/mastra/index.ts 檔案中註冊 Agent:

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { slackAgent } from './agents/slack-agent'

export const mastra = new Mastra({
agents: { slackAgent },
})

建立 Slack 應用程式
建立 Slack 應用程式 的直接連結

你需要 Slack 應用程式,才能將 Agent 連接至 Workspace。

前往 https://api.slack.com/apps,然後選擇 Create New App > From scratch。為其命名並選擇你的 Workspace。

前往 OAuth & Permissions 並捲動至 Bot Token Scopes。加入以下權限範圍:

  • app_mentions:read
  • channels:history
  • channels:read
  • chat:write
  • users:read

OAuth & Permissions 頂部選擇 Install to Workspace。複製 Bot User OAuth Token (xoxb-...)。

前往 Basic Information > App Credentials,然後複製 Signing Secret(例如 c3a4...)。

確保 Settings > Socket Mode 下的 Socket Mode 已設為 off

將憑證加入 .env 檔案:

.env
SLACK_SIGNING_SECRET=your-signing-secret
SLACK_BOT_TOKEN=xoxb-your-bot-token

配接器預設會讀取這些環境變數。詳情請參閱 Chat SDK Slack 配接器文件

連接 webhook
連接 webhook 的直接連結

Slack 透過 webhook 將事件傳送至你的 Agent。Mastra 會自動為每個頻道配接器產生此端點。

啟動開發伺服器:

npm run dev

在本機開發期間,Slack 需要公開 URL 才能連接你的本機伺服器。開啟新終端機並啟動通道:

npx cloudflared tunnel --url http://localhost:4111

這會輸出類似 https://triple-arms-solutions-kit.trycloudflare.com 的臨時公開 URL。每次重新啟動通道時,URL 都會變更。

在 Slack 應用程式設定中,前往 Event Subscriptions,並將 Enable Events 切換為 On

Request URL 設為通道 URL,並附上 Agent webhook 路徑:

https://<your-tunnel-url>/api/agents/slack-agent/channels/slack/webhook

Slack 會傳送驗證請求。如果開發伺服器正在運行,便會顯示綠色勾號回應。

Subscribe to bot events 下加入:

  • app_mention
  • message.channels

選擇 Save Changes。變更事件訂閱後,Slack 要求你重新安裝應用程式。前往 OAuth & Permissions 並選擇 Reinstall to Workspace,以套用更新後的權限。

備註

通道 URL 僅供本機開發使用。部署應用程式後,請將 Slack 應用程式 Event Subscriptions 中的 Request URL 更新為生產環境 URL(例如 https://your-app.example.com/api/agents/slack-agent/channels/slack/webhook)。

測試 Agent
測試 Agent 的直接連結

在 Slack 上測試前,你可以在 Studio 中調整 Agent 的行為。開啟 http://localhost:4111/ 與 Agent 對話並調整其指示。檢視 Trace 以了解回應如何產生。

滿意 Agent 的回應後,請測試 Slack 整合。在 Slack 中邀請機械人加入頻道:

/invite @your-bot-name

在頻道中提及機械人:

@your-bot-name What can you help me with?

Agent 會在線程中回應。輸出可能因模型及指示而異。

後續步驟
後續步驟 的直接連結

你可以擴充此 Agent,以:

  • 部署應用程式,並將 Slack Request URL 更新為生產環境端點
  • 為同一 Agent 加入更多配接器(Discord、Telegram),使其可在多個平台回應
  • 設定多模態內容,讓 Agent 處理對話中分享的圖片、影片及音訊
  • 加入 Tool,讓 Agent 存取外部 API 及資料

了解更多: