前言¶
DeepSeek Harness(DSH)裏的智能體常在本地完成長任務,結果卻要你盯着終端或 Web 界面才能看到。郵件、Webhook 能推消息,但和手機上的即時溝通往往仍是兩套系統。若你團隊日常在飛書上協作,更理想的做法是:任務結束能主動推到你飛書,你在手機裏 @ 機器人或私聊時,又能繼續同一套 DSH 會話。
下面介紹社區插件 dsh-lark-message(維護者 respawnlife)。它把飛書企業自建應用綁到 DSH:一次掃碼即可完成應用創建與綁定,智能體可通過工具或本地 HTTP 接口發通知,飛書側私信與羣 @ 也能回灌到 DSH,並在需要審批的回合裏把確認請求轉發到飛書。
這是什麼¶
dsh-lark-message 是面向 DSH profile 的 bundle 插件(npm 包名 dsh-lark-message,當前資料中的版本爲 0.1.1,許可證 MIT)。官方描述是:用二維碼綁定飛書/Lark 機器人,把智能體通知、任務結果和本地腳本消息推到飛書,並支持從飛書與助手對話。
插件聲明的運行環境爲 Node >=22,DSH >=0.2.2-rc.1 且 <0.3.0-0。目錄頁見 SkillHub,源碼與說明見 GitHub 倉庫。
核心能力(據 README 與 package 信息)¶
綁定與憑據¶
- 掃碼綁定:在 Settings → Lark Notify 中點擊 Link a bot,用飛書移動端掃碼並在確認頁點「同意」。插件會自動創建並綁定企業自建應用(默認名稱「DSH 通知助手」),無需手寫 App Secret。二維碼約 1 小時失效,可再次點擊生成。
- 已有自建應用:可展開 Enter App ID / Secret manually 手動填寫;投遞目標
open_id或chat_id可選。首次綁定時會校驗憑據(一次tenant_access_token請求)。 - 隱私:憑據保存在本機(權限
0600),不寫入 profile 配置,也不進代碼倉庫。 - 國際版 Lark:代碼通過
tenantBrand選擇飛書/Lark 域名;國際租戶可用手動填入該租戶應用憑據的方式綁定。
綁定後插件會配置機器人能力、消息收發與事件訂閱等範圍(如 im:message:send_as_bot、im.message.receive_v1 等),詳見倉庫 README 中的表格。
三條投遞路徑¶
- 智能體工具
lark_notify:任意 DSH 會話中,模型可主動發通知。必填參數text;可選image_path(本地 PNG/JPEG,最大 10MB)、chat_id(羣oc_xxxxxxxx,省略則發給綁定者私信)、markdown(以 Markdown 卡片發送)。 - 本機 HTTP API:掛在 DSH Host HTTP 服務上,僅監聽 loopback,端口與 DSH Web 端口一致。Bearer 令牌文件默認位於
~/.dsh/integrations/lark-notify/http-token(DSH_HOME默認爲~/.dsh)。 - 飛書內回覆:會話範圍內,助手在回合結束時會將最終文本發回原聊天;長連接入庫消息與附件處理由插件完成。
雙向對話與會話隔離¶
綁定後插件建立飛書 WebSocket 長連接:私信與羣內 @ 機器人 → 注入 DSH 會話 → 智能體處理 → 回覆發回原聊天。首條入站消息會註冊名爲 Feishu 的工作區,默認目錄 $DSH_HOME/workspaces/feishu,可用 config.cwd 覆蓋。
會話命名規則:綁定者私信爲 feishu-main;其他成員私信爲 feishu-dm-<open_id>;每個羣爲 feishu-group-<chat_id>。羣聊默認僅響應 @ 機器人(groupMode: "all" 可改爲回覆全部消息;allowGroups 可限制羣列表)。入站支持圖片、文件與引用回覆。
審批與投遞可靠性¶
- 審批中繼:需要用戶確認的回合會轉發到飛書,回覆
approve/deny(或中文「同意」「拒絕」)即可。 - 可靠投遞:失敗進入重試隊列;長文本自動分片;支持 Markdown 卡片。
安裝與啓用¶
插件以 DSH bundle 形式分發。安裝到指定 profile 後需重啓 DSH 生效。官方安裝命令如下(將 <name> 換成你的 profile 名稱):
dsh plugin --profile <name> add dsh-lark-message
亦可從 DSH 的 Plugins 頁面搜索安裝;本地開發時可鏈接源碼目錄:
dsh plugin --profile <name> add link:/path/to/dsh-lark-message
安裝完成後,Settings 下會出現 Lark Notify 插件頁。
首次配置(約 30 秒)¶
- 打開 Settings → Lark Notify。
- 點擊 Link a bot,飛書掃碼並在確認頁批准。
- 等待插件完成自建應用創建與權限配置。
- 點擊 Send test message,飛書應馬上收到測試通知。
- 若僅需單向推送、不需要雙向聊天,到此即可。
若綁定時跳過了部分媒體相關權限,之後需要收圖、收文件或讀羣名/成員名時,可在設置頁點擊 Grant media permissions 再掃一次碼,無需重新綁定。
典型用法¶
在會話裏讓智能體發飛書¶
綁定完成後,可在提示中直接要求模型調用工具,例如:
整理完結果後,用 lark_notify 發到我的飛書。
本地腳本走 HTTP 推送¶
先讀取令牌與端口(端口填你當前的 DSH Web 端口):
TOKEN=$(cat ~/.dsh/integrations/lark-notify/http-token)
PORT=<your DSH Web port>
發送純文本:
curl -s -X POST http://127.0.0.1:$PORT/plugins/lark-notify/notify \
-H "Authorization: Bearer $TOKEN" -H 'content-type: application/json' \
-d '{"text":"Build finished: all 3 tasks passed"}'
Markdown 卡片、本地圖片路徑、指定羣 chat_id 等示例見倉庫 README;notify 請求體至少包含 text、markdown、imagePath、filePath 之一,可選 target: { type: "chat_id" | "open_id", id }。
常用端點摘要:
| 方法 | 路徑 | 認證 | 說明 |
|---|---|---|---|
| POST | /plugins/lark-notify/notify |
Bearer | 發送文本 / Markdown / 圖片 / 文件 |
| GET | /plugins/lark-notify/health |
無 | 健康檢查,是否已綁定機器人 |
| GET | /plugins/lark-notify/chats |
Bearer | 列出機器人所在羣 |
| POST | /plugins/lark-notify/dsh-send |
Bearer | 向指定 DSH 會話注入用戶消息 |
| GET | /plugins/lark-notify/inbound |
無 | 長連接與審批等診斷信息 |
| POST | /plugins/lark-notify/reset |
Bearer | 清除本地綁定(破壞性操作) |
倉庫 examples/lark_notify_client.py 提供無第三方依賴的 Python 客戶端,可自動讀取 endpoint 文件,避免手寫端口。
在飛書裏繼續對話¶
在已綁定的私信或已配置的羣裏 @ 機器人發消息即可;回覆由 DSH 在對應隔離會話中處理並自動回傳到原聊天。
適用場景與注意¶
適合誰:已在用 DSH 做本地/私有化智能體開發,希望把「任務完成、審批、運維腳本結果」推到飛書,並偶爾用手機飛書續聊同一助手的人。僅需單向通知時,完成掃碼與測試消息即可,不必啓用複雜羣策略。
權限與信任:插件與當前 DSH 進程同權限運行,可訪問本機文件路徑(例如 lark_notify 的 image_path、HTTP API 的 imagePath),並持有飛書應用憑據。安裝前應閱讀 源碼 與 MIT 許可證,確認符合你的安全策略。HTTP 接口雖只綁定 loopback,Bearer 令牌仍應視爲本機敏感文件。
兼容性:面向飛書企業自建機器人應用;與 DeepSeek / 幻方無官方從屬關係。社區插件目錄 SkillHub 獨立於 DSH 本體分發,屬於「一切皆插件」生態中的第三方擴展。
結尾¶
經過上面的步驟,你可以把飛書當作 DSH 的外設通知渠道和輕量對話前端:智能體用 lark_notify 或腳本用本地 API 推送,你在飛書上的回覆與審批則回到同一套 Harness 會話。更多參數、配置項與截斷部分未列出的細節,以倉庫 README.zh.md 爲準。