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 / 幻方无官方从属关系。

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

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

小夜