dsh-lark-session-monitor-plugin:用本人身份监听飞书会话并投递到 DSH

前言

在 DeepSeek Harness(DSH)里做自动化或辅助处理时,常见做法是让模型只在当前会话里响应你手动粘贴的内容。飞书里的群聊、私聊若需要「新消息进来就触发一次 DSH 会话」,往往要自建 webhook、机器人或外部脚本,还要单独处理鉴权与消息格式。下面介绍社区插件 dsh-lark-session-monitor-plugin(维护者 lifeopsgo):它以你的飞书用户身份读取已配置的会话,把新消息整理成可读文本后,投递到你指定的 DSH 工作区与会话中;插件本身不会向飞书回消息。

这是什么

dsh-lark-session-monitor-plugin 是 DSH 的联网类插件(社区目录分类:联网工具)。它解决的是:在授权范围内监听指定飞书会话,并将新消息作为 prompt 写入你选定的 DSH session。与「仅机器人收 @ 消息」不同,README 明确说明使用用户权限读取 p2p 与群聊;消息正文经渲染后再进入模型,不直接把飞书原始 JSON 丢给模型。

兼容环境

项目 要求
DSH 0.2.0-rc.1 及更高(README 标注已在当前 DSH Web runtime 上验证;0.1.x 不支持本发布线)
Node.js ≥ 22.6
安装 profile web(安装命令使用 dsh plugin --profile web)

核心功能

监听与投递

  1. 在设置页配置飞书应用的 App ID、App Secret,完成用户 OAuth 授权;用户 token 存放在 DSH 的 credentials 服务中并自动刷新,README 说明 Secret 与 token 不会经 RPC 返回。
  2. 通过 新建监听 绑定要监听的会话、前置 Prompt、目标工作区与目标会话;可按会话类型筛选,支持多条监听规则各自 启用/停用(轮询开关)。
  3. 新消息合并为一条 prompt 投递,格式为:你的 Prompt 在上,下方每行类似 [发送者] [消息ID] 消息正文;单次最多 10 条 消息,其余在下次成功投递后继续;游标仅在投递成功后前进,失败会重读同一批消息。

消息渲染与过滤

  • 文本化:可读文本才会投递;帖子拍平、卡片从 user_card_content 渲染为标题/正文/按钮链接等;链接以纯 URL 给出且不主动抓取;图片/文件/音视频等变为如 [图片] 的标签;无可读内容的消息跳过。每行带飞书 message id,便于会话内引用。
  • Skip own messages:默认关闭;开启后不投递你自己发的消息(若无法读取你的身份则按原逻辑投递)。
  • Senders:默认可收所有人;可限定用户或机器人(无显示名时可能显示 App ID)。
  • Also @bot mentions:默认关闭;开启后,即使发送者不在 Senders 白名单,@ 本应用机器人 的消息也会投递。
  • Blocked keywords / Allowed keywords:黑名单优先;空 Allowed 表示不过滤关键词。

目标会话行为

目标会话 自动创建并置顶 行为
已选会话 — 消息累积在同一 session
留空 勾选 首次投递创建 session 并置顶
留空 不勾选 每次投递新建 session

轮询为每个 monitor 单飞(single-flight),非飞书 push;离线消息不会在初始窗口之外回填(README Limitations)。

安装与启用

安装前请自行查看 GitHub 源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,仅访问你授权的飞书 API 与所选 DSH session。

  1. 确认 Node.js ≥ 22.6,DSH 为 0.2.0-rc.1 或更高。
  2. 执行官方安装命令(版本 pin 以 README 为准):
dsh plugin --profile web add github:lifeopsgo/dsh-lark-session-monitor-plugin#v2.1.0
  1. 重启 DSH,刷新页面。打开 Settings → Plugins → 飞书会话监听。

升级可再次执行上述 add;移除示例:

dsh plugin --profile web remove dsh-lark-session-monitor-plugin

典型用法:从飞书应用到第一条监听

1. 创建飞书应用并填凭证

在 飞书开放平台 创建企业自建应用,启用 README 列出的用户权限:

Scope 用途
im:message.p2p_msg:get_as_user 读取私聊
im:message.group_msg:get_as_user 读取群聊
im:chat:read 解析会话名称
offline_access 免重复授权刷新 token

在插件设置页填入 App ID、App Secret 并保存。

2. 用户授权

点击 开始授权,在浏览器中打开链接并在飞书中同意 scope,回到 DSH 点击 我已完成授权。

3. 新建监听

点击 新建监听,按字段含义配置(名称、会话类型、监听会话、Prompt、目标工作区、目标会话等)。需要只处理 @ 机器人时可配合 Senders 与 Also @bot mentions;需要降噪时使用关键词黑白名单。保存并 启用 该 monitor 后开始轮询投递。

投递内容示例结构(README):

<your prompt>

[发送者] [消息ID] 消息正文

[发送者] [消息ID] 第二条消息

适用场景与注意

适合谁:已在 DSH Web 侧使用插件 profile、希望把飞书指定会话的新消息自动喂给某个工作区/session 的开发者或团队(例如值班群摘要、指定发送人消息触发 Harness 流程)。不适合期望实时 push、富媒体原样进模型、或插件代发飞书回复的场景——README 标明仅文本类可读内容、轮询有间隔、且不向飞书发消息。

隐私与边界(摘自 README):只读你配置的会话;网络访问限于已授权的飞书 API(含解析 @ 机器人身份时应用自身凭证);无遥测;设置接口走 DSH 已认证的 /api,且 rpcAuthority: loopback 时要求 loopback 的 Host 与 Origin。

安全习惯:安装前阅读仓库源码;凭证落在 DSH 设置与 credentials 服务中,仍应按组织规范保管 App Secret 与 DSH 实例访问权限。

结尾

dsh-lark-session-monitor-plugin 把「飞书会话 → DSH session」收成插件内配置:用户身份读会话、渲染后再投递,并支持发送者、@ 机器人与关键词等过滤。DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye