dsh 也能进 Discord 了:我给 DeepSeek Harness 写了个适配器

dsh 也能进 Discord 了:我给 DeepSeek Harness 写了个适配器

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

作者为DeepSeek Harness开发了dsh-discord适配器,将其接入Discord工作台。该插件支持@提及创建会话、流式渲染、按钮审批、会话控制及双语界面,强调安全设计(白名单、权限校验)。安装简单,通过dsh CLI添加,配置token即可使用。项目已发布至npm,代码开源,欢迎贡献。

🔎

延伸解读

为什么选择适配器而非独立进程

dsh-discord 被设计为 DSH 插件,直接挂载到 dsh web profile 上,而非独立进程。这意味着会话状态仍由 DSH 管理,适配器只负责 Discord 侧的进出。这种架构降低了集成复杂度,也避免了状态同步问题,让用户能沿用 DSH 原有的会话管理能力。

安全设计要点

适配器强调安全是设计出来的:显式服务器白名单、deny-first 授权、mention 双重抑制、任务提交至多一次、超时按拒绝处理。这些措施确保白名单外零响应,且不会盲目重发结果不明的投递,降低了误操作和滥用风险。

安装与配置门槛

使用前需满足前置条件:dsh CLI 0.1.1-rc.2 以上、Node.js 22.19+ 或 24+,以及开启 MESSAGE CONTENT 特权 intent 的 Discord 应用。安装只需一条命令,但配置 token 时需注意 token 会进入凭据服务,不落设置也不进日志,确保安全性。

Q&A

dsh-discord 是什么?

dsh-discord 是一个为 DeepSeek Harness (dsh) 开发的 Discord 适配器插件,它让用户可以通过 Discord 工作台来使用 dsh,支持 @提及创建会话、流式渲染、按钮审批、会话控制等功能。

为什么作者要自己开发 dsh-discord 而不是使用现成的插件?

因为作者的工作台已经统一到 Discord,但 dsh 官方只有 Web 页面,而社区插件要么把会话混在单频道里,要么没有有效利用 Discord 的 thread 结构,不能满足需求,所以决定自己开发。

dsh-discord 如何实现会话管理?

用户在工作区频道 @机器人描述任务,适配器会创建一个 thread,该 thread 即成为会话的边界。用户可以在 thread 中追加消息来排队任务,无需再次 @。每个 thread 对应一个独立的会话。

dsh-discord 如何处理审批和提问?

当 dsh 需要确认时,适配器会将 ask 帧渲染成按钮、下拉菜单或文本弹窗发送到频道中,用户可以直接点击操作。同时有所有权校验,只有发起者才能点击,超时按拒绝处理,不会默认放行。

dsh-discord 有哪些安全设计?

安全设计包括:显式服务器白名单和 deny-first 授权,白名单外零响应;双重 mention 抑制;任务提交至多一次,避免重复投递;绑定持久化,重启不丢失。

如何安装和配置 dsh-discord?

安装步骤:1. 确保 dsh CLI 0.1.1-rc.2 以上、Node.js 22.19+ 或 24+,并创建启用了 MESSAGE CONTENT intent 的 Discord 应用。2. 运行命令 `dsh plugin --profile web add @addozhang/dsh-discord` 安装插件。3. 重启 dsh web 并刷新浏览器。4. 在 Settings → Discord 中粘贴 bot token 并点击 Connect。5. 填写服务器白名单。6. 在 general 频道使用 /project bind 绑定工作区,然后即可使用。

dsh-discord 支持哪些常用命令?

常用命令包括:/project bind(在 general 频道绑定工作区)、/steer(插话)、/stop(取消当前 turn)、/model select(切换模型)、/session resume(恢复历史会话)。

dsh-discord 的代码是否开源?

是的,dsh-discord 的代码已开源,仓库地址为 addozhang/dsh-discord,采用 MIT 许可证,欢迎提交 issue 和 PR。

🏷️

标签

➡️

继续阅读