dsh-slack:DSH 社區插件,讓 agent 與 Slack 雙向通信

前言

DSH(DeepSeek Harness)社區中,“一切皆插件”意味着 agent 可以通過插件接入外部系統。對需要把 agent 輸出同步到 Slack,或讓 agent 讀取 Slack 消息並在線程中回覆的開發者來說,通常會遇到幾個具體問題:Slack 令牌如何配置、頻道如何列舉、Socket Mode 消息如何入隊、線程回覆如何攜帶 ts

dsh-slack 是一個 DSH 社區插件,目標是讓 agent 與 Slack 雙向通信。下面按功能、安裝、配置和注意事項介紹這個插件。

這是什麼

dsh-slack 的定位是:讓 agent 與 Slack 雙向通信。

倉庫標識爲 STARDUSTLC666/dsh-slack,許可證爲 MIT。它提供四個 Slack 工具:

  • slack_notify
  • slack_channels
  • slack_inbox
  • slack_reply

已覈實事實中提到,Socket Mode 用於實現雙向通信;不支持 RTM、交互組件(按鈕/彈窗/slash command 回覆)。該插件在 @deepseek-ai/dsh@0.1.1-rc.2 上驗證(2026-08-26)。

核心功能

slack_notify:向指定頻道或線程發送一條 Markdown 文本消息,並返回消息 ts。這個 ts 可被後續線程回覆引用。

slack_channels:列出機器人當前可見的頻道,並自動沿 next_cursor 翻頁拉全。

slack_inbox:讀取通過 Socket Mode 收到的消息。消息保存在進程內存隊列中,最多保留 200 條,支持去重和 markRead 原子消費。

slack_reply:以線程回覆形式回覆某條收件箱消息。

另外,插件會按 token + slackApiUrl 緩存複用 WebClient,配置變更時自動重建。令牌配置支持環境變量回退:

  • DSH_SLACK_TOKEN
  • DSH_SLACK_APP_TOKEN

安裝與啓用

先設置令牌,再安裝插件,最後重啓 dsh Web 服務。

1、設置環境變量

如果希望避免把令牌寫死在配置文件中,可以先在啓動 dsh 的環境裏設置:

export DSH_SLACK_TOKEN=xoxb-你的機器人令牌
export DSH_SLACK_APP_TOKEN=xapp-你的App級令牌

這兩個環境變量分別對應 Slack 機器人令牌和 App-Level Token。

2、安裝插件

使用下面的命令把插件安裝到 web profile:

dsh plugin --profile web add dsh-slack

3、重啓 dsh Web 服務

安裝後重啓 dsh Web 服務,插件提供的 Slack 工具即可被 agent 調用。

4、用 profile 配置覆蓋

也可以在 profile 的 cordis.patch.yml 中追加 id: slack 的配置行,覆蓋 config.tokenconfig.appTokenconfig.defaultChannel。示例如下:

- id: slack
  config:
    token: 'xoxb-你的機器人令牌'
    appToken: 'xapp-你的App級令牌'
    defaultChannel: '#general'

這裏的 defaultChannel 不會替代必填的 channel 參數,它只是作爲說明提示寫入 channel 參數描述。

典型用法

一個常見流程是先配置令牌,再安裝插件,然後重啓 dsh Web 服務。

export DSH_SLACK_TOKEN=xoxb-你的機器人令牌
export DSH_SLACK_APP_TOKEN=xapp-你的App級令牌

接着安裝:

dsh plugin --profile web add dsh-slack

安裝後重啓 dsh Web 服務。

調用 Slack 工具時,需要注意:

  • channel 爲必填參數。
  • defaultChannel 只作爲說明提示寫入 channel 參數描述,不替代必填的 channel
  • token 缺失時,插件仍會加載;調用發消息、列頻道或回覆工具時,會返回中文報錯。
  • appToken 缺失時,只產生告警;slack_inbox 返回空隊列,不影響其它工具。

適用場景與注意

適合以下場景:

  • agent 需要向指定 Slack 頻道或線程發送 Markdown 通知。
  • agent 需要列出機器人可見頻道。
  • agent 需要讀取 Socket Mode 收到的 Slack 消息。
  • agent 需要按線程回覆某條 Slack 消息。

使用前需要注意:

  • 插件以當前 dsh 進程權限運行。安裝前建議檢查源碼與許可證。
  • slack_inbox 是進程內存隊列,最多保留 200 條;滿則丟最舊。
  • 重啓 dsh Web 服務後,內存隊列會清空,消息不持久化。
  • 不支持 RTM。
  • 不支持交互組件,包括按鈕、彈窗、slash command 回覆。
  • 運行時依賴 @slack/web-api@slack/socket-mode
  • peer 依賴爲 @deepseek-ai/cordis@deepseek-ai/dsh-tools
  • 已覈實驗證環境爲 @deepseek-ai/dsh@0.1.1-rc.2,驗證日期爲 2026-08-26。

獲取

dsh-slack 可以查看:

  • 目錄頁:https://www.skillhub.cn/plugins/STARDUSTLC666/dsh-slack
  • GitHub:https://github.com/STARDUSTLC666/dsh-slack

它把 Slack 通知、頻道列舉、消息收件箱和線程回覆封裝爲 DSH 插件能力,適合需要在 agent 工作流中接入 Slack 雙向通信的場景。DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜