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 倉庫。

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

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

小夜