Slack(@steipete/slack):讓 Agent 通過 slack 工具讀寫 Slack

前言

給 Agent 接 Slack,常見做法是自己寫一套 Slack SDK 調用:要管 bot token、要自己拼 chat.postMessage、還要處理頻道 ID 和消息時間戳。如果只是想讓 Agent 在頻道或私信裏回消息、置頂一條結論,這套膠水代碼很重。

下面介紹的 Skill 把這部分收進一個基於 SKILL.md 格式的 slack 工具裏。先做安裝,再做配置,然後就可以按 action 調用。

這是什麼

一句話定位:@steipete/slack 是一個基於通用 SKILL.md 格式的 Skill,讓 Clawdbot 通過 slack 工具控制 Slack,包括在頻道或私信中回覆消息、置頂或取消置頂項目。

  • 名稱:Slack
  • 座標:@clawhub_steipete/slack
  • 版本:1.0.0
  • 來源:clawhub
  • 分類:ai-agent(消息與社交領域的即時通訊集成能力)
  • 發佈者:steipete(Peter Steinberger)
  • 上游倉庫:https://clawhub.ai/steipete/slack
  • 許可證:MIT-0

SkillHub 頁面(國內入口):https://www.skillhub.cn/skills/clawhub_steipete/slack

解決什麼問題:Agent 側不再自己拼 Slack Web API,只描述要做什麼,工具負責 reactions、messages、pins、memberInfo 這幾組動作。

核心功能

技能說明裏的 slack 工具分五個 action 組,默認全部啓用:

  1. reactions:對消息加 reaction、列出已有 reaction
  2. messages:讀取、發送、編輯、刪除消息
  3. pins:置頂、取消置頂、列出已置頂項
  4. memberInfo:查成員信息
  5. emojiList:取自定義 emoji 列表

工具使用 Clawdbot 中已配置的 bot token,不需要在調用裏再傳 token。資料中的標籤爲 requires_api_key=false,說明 token 由宿主環境提供,不在 Skill 輸入裏收集。

需要收集的輸入:

  1. channelId
  2. messageId(Slack 消息時間戳,形如 1712023032.1234)
  3. reaction 時的 emoji(Unicode 或 :name:)
  4. 發送消息時的 to(channel:<id> 或 user:<id>)和 content

消息上下文行裏已經帶了 slack message id 和 channel 字段,可以直接複用,不必自己再查一遍。

安裝與啓用

官方給出兩種安裝入口,命令如下:

npx skills
openclaw skills install @steipete/slack

執行安裝命令即可把 Skill 裝進當前 Agent 環境。裝完後在支持 SKILL.md 格式的宿主(Clawdbot / OpenClaw 生態)中啓用,工具側需要存在爲 Clawdbot 配置的 bot token。

說明兩點:

  1. 上游倉庫只給了一條 openclaw skills install @steipete/slack,沒有區分 Cursor、Codex CLI、Claude Code 的安裝方式,資料裏也沒有這部分內容,不做推測。
  2. 本 Skill 屬於通用 SKILL.md 格式,具體宿主如何加載本地 Skill,以該宿主的文檔爲準。

典型用法

官方給出的調用都是 JSON 形式,字段對齊上面的輸入說明。

對一條消息加 reaction,用於標記完成:

{
  "action": "react",
  "channelId": "C123",
  "messageId": "1712023032.1234",
  "emoji": "✅"
}

列出該消息已有的 reaction:

{
  "action": "reactions",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}

發一條消息到頻道:

{
  "action": "sendMessage",
  "to": "channel:C123",
  "content": "Hello from Clawdbot"
}

編輯已發送的消息:

{
  "action": "editMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234",
  "content": "Updated text"
}

刪除消息:

{
  "action": "deleteMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}

讀取頻道最近消息:

{
  "action": "readMessages",
  "channelId": "C123",
  "limit": 20
}

置頂、取消置頂、列出置頂項:

{
  "action": "pinMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}
{
  "action": "unpinMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}
{
  "action": "listPins",
  "channelId": "C123"
}

查成員信息和自定義 emoji 列表:

{
  "action": "memberInfo",
  "userId": "U123"
}
{
  "action": "emojiList"
}

官方資料還給了兩個可以直接試的場景:用 ✅ reaction 標記任務完成;置頂關鍵決策或每週狀態更新。

適用場景與注意

適合誰:已經在用 Clawdbot / OpenClaw 生態,需要 Agent 參與 Slack 溝通的開發者。如果只是需要從 Slack 拉數據做分析、不需要發消息,這個 Skill 的覆蓋面偏溝通側,未必是最短路徑。

限制和坑:

  1. 調用依賴宿主已配好的 bot token,Skill 自身不負責憑證管理;先確認 Clawdbot 側 token 對目標頻道有權限。
  2. messageId 是 Slack 消息時間戳格式(1712023032.1234),不是自增 ID,傳錯會找不到消息。
  3. 發送目標 to 要寫全 channel:<id> 或 user:<id>,不能只給裸 ID。
  4. Skill 說明只覆蓋頻道與私信場景,沒有提到文件上傳、畫板、多頻道廣播等能力。
  5. 關於評分與下載量:SkillHub 鏡像頁顯示評分 100000、下載 73009、安裝 4231(來源:已抓取的 SkillHub 頁面資料);上游 ClawHub 頁當前顯示 v1.0.0、Security audit Pass、Bookmark 160。這些統計以官方頁面實時數據爲準。

結尾

這個 Skill 的價值在於把 Slack 的動作集收斂成一組聲明式的 action:讀消息、回消息、改消息、置頂、查成員,都在一個工具裏完成,Agent 側不必維護 Slack SDK 調用細節。

官方地址:https://clawhub.ai/steipete/slack
SkillHub 頁面:https://www.skillhub.cn/skills/clawhub_steipete/slack

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜