前言¶
在 DSH 里推进任务时,会话通常绑在浏览器或本机进程上。人离开工位后,助手的新回复不会自动出现在手机常用的协作渠道里;若在飞书里另开群手工转发,又容易和真实工作区脱节,也难保证消息顺序与送达。
下面介绍社区插件 Feishu Workspace Bridge(npm 包名 dsh-plugin-feishu-workspace)。它为每个 DSH 工作区对应一个飞书私有群,在 DSH 会话与群之间做实时双向同步,并支持 Markdown 投递与失败重试。插件走飞书长连接收事件,本地运行不需要公网回调地址,也不读取或回放历史消息。
这是什么¶
Feishu Workspace Bridge 是 DeepSeek Harness(DSH)的联网类服务端插件:绑定企业自建飞书应用机器人后,在「当前 DSH 工作区」与「该工作区专属飞书群」之间同步消息。
- 维护与源码:README 与 npm 元数据指向 GitHub 仓库 bandianliancha/feishu-workspace-bridge(MIT 许可证)。
- 社区目录:可在 SkillHub 插件页 查看条目(分类:联网工具)。
- 环境要求:Node.js 20+、已安装 DSH、飞书企业自建应用并启用机器人能力。
DSH 仍处于开发者预览阶段;上游接口变化时,宜在仓库 Issue 中附上 DSH 版本与诊断页错误信息。
核心功能¶
插件 README 归纳的能力如下,均可在安装配置后复现。
绑定与建群策略¶
- 在 DSH 设置中配置飞书机器人的
App ID、App Secret与你的飞书Open ID(ou_...)。 - 工作区第一次出现需要同步的助手消息时,按需创建对应飞书私有群并邀请你加入;不会在创建空工作区时立刻建群。
- 一个工作区最多绑定一个群;工作区改名后群名自动同步,工作区删除后对应群自动解散;群被手动解散后,下次同步会重建。
双向消息与排队¶
sequenceDiagram
participant DSH as DSH 会话
participant Bridge as Workspace Bridge
participant Feishu as 飞书私有群
DSH->>Bridge: 助手完成一次回复
Bridge->>Feishu: 按需建群并发送回复
Feishu->>Bridge: 用户发送群消息
Bridge->>DSH: 按顺序加入会话队列
Bridge->>Feishu: 添加 OK 表情确认接收
- DSH 正在处理任务时,飞书新消息以
queue模式排队,不打断当前任务。 - 每条消息记录「已入队、投递中、失败、已送达」;临时失败指数退避重试,进程重启后继续处理。
- Markdown 经飞书
lark_md发送,长消息分段,不静默截断。 - 入站成功后对群消息添加 OK 表情;仅消费实时事件,不拉历史。
兼容与验证范围¶
| 项目 | 已验证范围 |
|---|---|
| DSH | 0.1.7-alpha.1 实机双向收发与生命周期 |
| Node.js | 20、22、24(CI) |
| macOS | 实机;App Secret 用系统钥匙串 |
| Linux | Ubuntu CI;App Secret 用 0600 凭证文件 |
| 飞书 | 企业自建应用、机器人、长连接事件订阅 |
安装与启用¶
插件以当前 dsh web 进程权限运行,安装前建议查看仓库源码与 MIT 许可证。官方安装命令如下(来自 README,勿自行拼接其它 owner/repo)。
稳定版(npm):
dsh plugin --profile web add dsh-plugin-feishu-workspace
开发版(GitHub 主分支):
dsh plugin --profile web add github:bandianliancha/feishu-workspace-bridge
安装后重启 DSH Web:
dsh web --no-open
在 DSH 设置打开「飞书机器人」,填写 App ID、App Secret、Open ID,点击「保存并验证」。保存前会检查机器人、事件订阅与必需权限;验证失败不会覆盖已有配置。曾保存过 App Secret 时,可留空再次做权限验证。
飞书开放平台配置¶
在飞书开放平台完成三步,与插件校验项一致。
1. 启用机器人¶
在「添加应用能力」中添加机器人能力。
2. 长连接事件¶
在「事件与回调」选择「使用长连接接收事件」,并订阅:
im.message.receive_v1
本地运行不需要公网回调 URL。
3. 应用身份权限¶
| 权限 | Scope | 用途 |
|---|---|---|
| 创建群聊 | im:chat:create |
首次同步建群 |
| 获取与更新群组信息 | im:chat |
邀请、改群名、私有群、解散 |
| 以应用身份发消息 | im:message:send_as_bot |
DSH 回复同步到群 |
| 接收群聊消息 | im:message.group_msg |
群消息同步到 DSH |
| 添加消息表情回复 | im:message.reactions:write_only |
入站 OK 表情 |
| 管理应用自身信息 | application:application:self_manage |
校验已发布事件订阅 |
按错误提示补开 scope 后需发布新版本,再回到 DSH 点击「保存并验证」。
数据、诊断与排错¶
凭证与存储¶
- macOS:
App Secret存系统钥匙串,不写入 SQLite,不返回浏览器。 - 其他系统:
~/.dsh/feishu-workspace-bridge.secrets.json(权限0600)。 - 默认数据库:
~/.dsh/feishu-workspace-bridge.sqlite;可用环境变量FEISHU_WORKSPACE_BRIDGE_DB改路径。 - 消息 ID 去重;已送达记录保留 30 天后清理,未送达记录不会被定期清除。
运行诊断¶
「飞书机器人」设置页可查看长连接状态、绑定群数量、最近入出站时间、投递状态与重试、权限实时检查结果;不含 Secret、令牌或消息正文。可点击「重试失败消息」立即重试持久队列。
常见问题¶
能发到飞书,群消息进不了 DSH:确认订阅 im.message.receive_v1、事件方式为长连接、应用已发布、启动日志有 ws client ready、机器人仍在群内。
入站无 OK 表情:确认 im:message.reactions:write_only 已随最新应用版本发布。
改插件代码未生效:DSH 仅在启动时加载服务端插件,需重启 dsh web。
适用场景与注意¶
适合需要在飞书手机上延续同一 DSH 工作区会话、又希望一群对工作区一比一绑定的团队。不适合依赖公网 Webhook、或需要同步历史聊天记录的场景。
DeepSeek Harness 生态强调「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。本插件当前 npm 版本为 0.3.1(见仓库 package.json),星标等动态信息以 GitHub 页面为准。
结尾¶
经过上面的步骤,你可以把 DSH 助手回复推到飞书私有群,在群里发消息排队回到当前工作区会话,并用诊断页观察投递与健康状态。