前言¶
在 DeepSeek Harness(DSH)里做自动化或辅助处理时,常见做法是让模型只在当前会话里响应你手动粘贴的内容。飞书里的群聊、私聊若需要「新消息进来就触发一次 DSH 会话」,往往要自建 webhook、机器人或外部脚本,还要单独处理鉴权与消息格式。下面介绍社区插件 dsh-lark-session-monitor-plugin(维护者 lifeopsgo):它以你的飞书用户身份读取已配置的会话,把新消息整理成可读文本后,投递到你指定的 DSH 工作区与会话中;插件本身不会向飞书回消息。
这是什么¶
dsh-lark-session-monitor-plugin 是 DSH 的联网类插件(社区目录分类:联网工具)。它解决的是:在授权范围内监听指定飞书会话,并将新消息作为 prompt 写入你选定的 DSH session。与「仅机器人收 @ 消息」不同,README 明确说明使用用户权限读取 p2p 与群聊;消息正文经渲染后再进入模型,不直接把飞书原始 JSON 丢给模型。
- 目录页:https://www.skillhub.cn/plugins/lifeopsgo/dsh-lark-session-monitor-plugin
- 源码与文档:https://github.com/lifeopsgo/dsh-lark-session-monitor-plugin
- 当前资料中的包版本:v2.1.0(MIT 许可证)
兼容环境¶
| 项目 | 要求 |
|---|---|
| DSH | 0.2.0-rc.1 及更高(README 标注已在当前 DSH Web runtime 上验证;0.1.x 不支持本发布线) |
| Node.js | ≥ 22.6 |
| 安装 profile | web(安装命令使用 dsh plugin --profile web) |
核心功能¶
监听与投递¶
- 在设置页配置飞书应用的 App ID、App Secret,完成用户 OAuth 授权;用户 token 存放在 DSH 的 credentials 服务中并自动刷新,README 说明 Secret 与 token 不会经 RPC 返回。
- 通过 新建监听 绑定要监听的会话、前置 Prompt、目标工作区与目标会话;可按会话类型筛选,支持多条监听规则各自 启用/停用(轮询开关)。
- 新消息合并为一条 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。
- 确认 Node.js ≥ 22.6,DSH 为 0.2.0-rc.1 或更高。
- 执行官方安装命令(版本 pin 以 README 为准):
dsh plugin --profile web add github:lifeopsgo/dsh-lark-session-monitor-plugin#v2.1.0
- 重启 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 仓库。