跳到內容

將 Slack 橋接至工作區

讀完這篇教學,你將擁有:

  • 一個為你的工作區建立的 Slack 應用程式,權限與事件都已設定妥當
  • Slack 與 Control Center 之間的一條即時連線
  • 你自己的 Slack 帳戶已連結到你的 Control Center 使用者
  • 一個在 Slack 討論串中回答你的代理,以及一張由斜線指令開立的工單

先決條件:

  • 你的第一個工作區 與 派送你的第一個代理 已完成——沒有代理的工作區能收到 Slack 訊息,卻沒有人能回答它
  • 工作區的 CEO 代理已在 設定 → 工作區 → 代理中設定好配接器與模型。橋接喚醒的是 CEO,而不是你在上一個教學中設定的代理;沒有配接器的代理會執行在內建迴圈上,並使用 Anthropic 的預設模型。
  • 在 Control Center 工作區中擁有 owner 或 admin 角色(連接聊天應用程式代表的是整個工作區)
  • 在你的 Slack 工作區中建立與安裝應用程式的權限

這裡不需要公開位址、通道或入站連接埠。Control Center 會透過 Socket Mode 向 Slack 主動外連,因此這在 NAT 後方的筆記型電腦上也能運作。

步驟 1:取得 Slack 應用程式設定 token

標題為「步驟 1:取得 Slack 應用程式設定 token」的章節

這是唯一必須手動取得的密鑰。有了它,Control Center 才能替你建立這個應用程式,並在之後編輯它。

  1. 開啟 api.slack.com/apps
  2. 捲動到頁面底部的應用程式設定 token 區段
  3. 為你的 Slack 工作區產生一組 token
  4. 複製 refresh token——它以 xoxe- 開頭

步驟 2:讓 Control Center 建立應用程式

標題為「步驟 2:讓 Control Center 建立應用程式」的章節
  1. 在 Control Center 中,前往 設定 → 工作區 → 一般,找到 聊天橋接 卡片
  2. 在 Slack 區塊上,點擊 幫我建立應用程式
  3. 貼上應用程式設定 token
  4. 檢視機器人會呈現什麼樣子:
    • 應用程式名稱:Slack 列出這個應用程式的方式,例如 Control Center · Acme
    • 機器人名稱:人們在 @ 之後輸入的名稱,例如 control-center
    • 簡短描述與機器人自述的能力
    • 斜線指令:預設為 cc,因此指令是 /cc
    • 私訊:保持開啟,讓成員可以私訊機器人
  5. 點擊 建立應用程式

Control Center 會組出完整的應用程式定義——開啟 Socket Mode、機器人所需的權限範圍與事件訂閱、斜線指令、Messages 分頁——並在 Slack 中建立它。

步驟 3:完成只有 Slack 能做的兩個步驟

標題為「步驟 3:完成只有 Slack 能做的兩個步驟」的章節

Slack 沒有可用來產生應用程式層級 token 或安裝應用程式的 API,因此對話方塊會把這兩者都以連結的形式交給你:

  1. 產生應用程式層級 token——會開啟 Basic Information → App-Level Tokens。建立一個具有 connections:write 範圍的 token 並複製它。它以 xapp- 開頭
  2. 安裝應用程式——會開啟 Install App。安裝到你的工作區,然後複製 Bot User OAuth Token。它以 xoxb- 開頭

請保留這兩個值,下一步會用到。

  1. 回到對話方塊中,點擊 貼上憑證
  2. 輸入 機器人 token(xoxb-…)與 應用程式層級 token(xapp-…)
  3. 將 應用程式設定 token 留空——步驟 1 的那個已經儲存好了(Slack 輪換了它,Control Center 存下了新的那個)
  4. 點擊 連線

Control Center 會在儲存任何東西之前先向 Slack 驗證機器人 token,然後開啟通訊端。這一列現在會顯示機器人名稱與你的 Slack 工作區名稱,並帶有 已上線 標籤。

連線讓機器人可被觸達;連結則讓_你_被認得出來。在你的 Slack 身分完成連結之前,機器人不會對你的訊息採取行動——它絕不會把訊息歸到安裝應用程式的人身上。

連結屬於個人行為,因此它與整個工作區共用的連線位於不同的頁面。

  1. 前往 設定 → 工作區 → 個人資料與身分,找到 已連結的聊天帳戶 卡片
  2. 點擊 連結我的 Slack 帳戶
  3. 複製它顯示的指令,例如 /cc link K7M2QP
  4. 在 Slack 中,透過私訊把該指令傳送給機器人
  5. 機器人會回答「已連結至 …」

該代碼只能使用一次,並在 15 分鐘後失效。如果你的 Slack 電子郵件與某位已經是此工作區成員的 Control Center 使用者相符,橋接會在你第一次與它交談時自動完成連結,你可以跳過這個步驟。

如果在此之前你就提及了機器人,它會拒絕並說明原因。這三種拒絕各不相同,因此請看清你遇到的是哪一種:

  • 未連結的傳送者:機器人會告訴你如何連結。請回到這個步驟。
  • 已連結,但不是此工作區的成員:請管理員邀請你。
  • 角色為唯讀的成員(viewer 或 guest):機器人不會代表你開始工作。
  1. 在 Slack 中,把機器人邀請進某個頻道:/invite @control-center

  2. 用一個真實的請求提及它:

    @control-center 總結一下 api 儲存庫上所有開啟的 PR

橋接會:

  1. 為該 Slack 討論串建立一個 Control Center 空間,並以 Slack 頻道和你的請求命名
  2. 喚醒工作區的入口代理(有 CEO 代理時就是 CEO,否則就是第一個代理)
  3. 在代理的回答寫出的同時,將它串流回該 Slack 討論串

在同一個 Slack 討論串中回覆即可繼續——不需要再次提及,因為該 Slack 討論串現在已經橋接。或者不用頻道,改為私訊機器人;每個私訊對話都會驅動它自己的 Control Center 空間,並帶有標題,以及代理工作期間顯示「正在思考…」的狀態列。

串流需要 Slack 的串流 API,而並非每個方案都有。如果你的應用程式被它拒絕,橋接會在這條連線的整個生命週期內停止嘗試,改為將每則回覆以單一訊息張貼,而 聊天橋接 卡片會顯示「此 Slack 應用程式已關閉即時串流——回覆會以單一訊息送達。」其他一切照舊。

步驟 7:不必離開 Slack 就能開立工單

標題為「步驟 7:不必離開 Slack 就能開立工單」的章節
/cc ticket Fix the flaky login test | It fails on CI about once a day.

機器人會以它開立的工單鍵作答。該工單是一張普通的本機 Control Center 工單,由你回報,隨時可以指派給代理。/cc help 會列出這個指令能做的所有事。

你從 Control Center 建立了 Slack 應用程式,透過對外通訊端連接它,把你的 Slack 身分連結到你的 Control Center 使用者,並從一個 Slack 討論串驅動代理。Slack 中發生的一切在 Control Center 裡同樣存在:Slack 討論串是一個空間,回覆是一份對話紀錄,工單就是一張工單。

下一步: 設定 Slack 整合 涵蓋手動操作路徑、輪換 token 與疑難排解。若要了解其背後的模型,請閱讀 聊天橋接。