Feishu Workspace Bridge:DSH 工作区与飞书私有群双向同步

前言

在 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 归纳的能力如下,均可在安装配置后复现。

绑定与建群策略

  1. 在 DSH 设置中配置飞书机器人的 App ID、App Secret 与你的飞书 Open ID(ou_...)。
  2. 工作区第一次出现需要同步的助手消息时,按需创建对应飞书私有群并邀请你加入;不会在创建空工作区时立刻建群。
  3. 一个工作区最多绑定一个群;工作区改名后群名自动同步,工作区删除后对应群自动解散;群被手动解散后,下次同步会重建。

双向消息与排队

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 助手回复推到飞书私有群,在群里发消息排队回到当前工作区会话,并用诊断页观察投递与健康状态。

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

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

Xiaoye