dsh-feishu-session-manager:用一条飞书会话驱动 Harness 里所有 Session

前言

DeepSeek Harness(dsh)里往往同时挂着多个 workspace、多条 session。桌面端要切换窗口才能跟进进度,手机端更难实时介入。常见做法是另写通知脚本或手动复制摘要,但回复仍要回到对应 session,容易串线。

下面介绍社区插件 dsh-feishu-session-manager(维护者 icrefin,分类:客户端):把一条飞书群聊或私聊变成当前 Harness 里所有 session 的统一界面——各 session 的回合结果经模型写成摘要推到飞书,你在飞书里发的文字再由模型路由回正确的 session(或按需开新 session 并带上 distilled 上下文)。

这是什么

插件全名 dsh-feishu-session-manager,仓库 icrefin/dsh-feishu-session-manager,在 SkillHub 插件目录 可查到条目。简介与 README 一致:Turn one Feishu chat into the interface of every DeepSeek Harness session: model-written summaries out, model-routed replies back.

数据路径示意(README 原文):

Feishu chat  ⇄  Feishu long connection  ⇄  bridge  ⇄  every session
                                   │            │
                        summarizing model   routing model

插件在宿主 dsh 进程内运行,通过飞书长连接收事件、REST 发消息,无需公网回调 URL、内网穿透或证书。

核心功能

Session → 飞书

方向 行为
正常结束的一轮 由模型生成短摘要,并固定带上 Workspace: … \| Session: …
失败的一轮 推送失败码及模型给出的分析
ask_user_question 与权限请求 以编号菜单形式推到飞书,可在聊天里直接作答

飞书 → Session

自由文本由路由模型决定:投递到已有 session、新建 session,或新建 session 并携带提炼后的上下文。

以下斜杠命令为确定性「逃生口」,不依赖路由模型:

/sessions                 list recent sessions with numbers
/use <n|id>               the NEXT message goes to that session
/new [workspace]          create a session now, bypassing the router
/bind                     make this chat the notification target
/status                   connection, model, counters, waiting items
/skip <text>              route this text even while an answer is waiting
/help                     the list above

路由模型在 prompt 中明确权衡四项(README 原文):

  1. Relevance — 消息是否延续该 session 的话题。
  2. Workspace — 属于哪个项目目录。
  3. Context length — 对照该 session 自身模型窗口(Harness 报告的 contextPressure 或 session 所选模型),而非插件自设预算;接近窗口上限时倾向开新 session 并 distill 要点。
  4. Inactivity — 长时间 idle 的 session 已失去 KV cache,续聊并不更省。

安全约束:模型给出的 sessionId、workspaceId 必须在下发给模型的 catalog 内校验;缺少 prompt 时回退为你的原文;无法使用的路由结果会变成向你提问,而不是误投回合。

设置页

路径:Settings → Feishu(独立导航分组)。主要分组包括 Connection(启用、App ID、App secret 等)、Model(provider / model / reasoning effort,同一路由承担摘要与路由两次辅助调用)、可编辑且可恢复默认的 Prompts、Notifications、Routing policy,以及带 Preview routing(干跑真实路由器、不投递)的 Status 块。

凭证在 schema 中标记为 secret,页面不回显明文;留空字段表示保留已存值。

安装与启用

环境要求(package.json):Node >=22.17.0,dsh >=0.2.1-rc.5 <0.2.2-0。当前包版本 0.1.7,许可证 MIT。

官方构建与打包步骤(README Install 节):

pnpm install
pnpm check          # typecheck both halves, build, then the full test suite
pnpm pack           # dist/dsh-feishu-session-manager-0.1.7.tgz

在 Harness 中打开 Settings → Plugins,安装生成的 tarball,然后重启应用。向运行中的 profile 追加 bundle 不会生效,必须重启宿主进程;同版本重装是无操作,需 bump 版本后再装。

包内自带 cordis.patch.yml 行,写入 dsh.profile.bundles 即完成注册;该行本身无需额外 config,参数均由设置页写入。

飞书侧应用

  1. 在飞书开发者后台创建企业自建应用,开启 机器人 能力。
  2. 事件订阅:选择长连接模式,订阅 im.message.receive_v1;不要配置请求 URL(bridge 主动连飞书,无需入站端口)。
  3. 权限:im:message、im:message:send_as_bot。
  4. 发布版本后,将机器人拉进群或发起私聊。
  5. 在插件设置页填入 App ID、App secret,并打开 bridge。

群聊中只有 @ 机器人的消息会被推送;私聊无需 @。第一个与机器人说话的会话会成为通知目标,并写入 profile 设置以跨重启保留。

典型用法

在已绑定通知目标的飞书会话中:

  1. 等待各 session 回合结束,阅读带 Workspace / Session 标签的摘要或失败说明。
  2. 对编号问题回复选项号(如 2)、多选用逗号(如 1,3),或任意文字作为自定义答案;权限请求回复 1(允许一次)或 2(拒绝);多条待答时用 #<n> 前缀,例如 #2 1。
  3. 需要指定目标时先 /use <n|id>,下一条消息即进入该 session;或 /new [workspace] 立即建 session;不确定路由原因时用设置页 Preview routing 或 /status 查看连接与等待项。

适用场景与注意

适合:需要在手机或 IM 里统一查看多 workspace、多 session 进展,并用自然语言回复且希望由模型自动选 session 的 dsh 用户。

务必注意:

  • 插件以当前 dsh 进程权限运行,可触达该 Harness 能访问的 workspace 与 session;安装前请阅读源码与 MIT 许可证,自行评估飞书凭证与模型路由风险。
  • 路由与摘要各消耗一次 LLM 调用,需在设置页配置 provider / model;社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,DSH 生态理念是「一切皆插件」,本文事实以仓库 README 为准。

结尾

dsh-feishu-session-manager 把「摘要出站、回复入站」收敛到一条飞书会话,并用双模型(摘要 + 路由)与斜杠命令兜底,减少在多 session 间手动切换的成本。

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

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

小夜