用 dsh-lark-bot 把本機 DeepSeek Harness 接到飛書

前言

DeepSeek Harness(dsh)把模型、工具、會話、沙箱和界面都做成可替換插件,官方說法是「Everything is a plugin」。本機 coding agent 因此可以按 profile 自由組裝,但工作入口仍多半釘在電腦前的網頁或終端上:人一離開工位,任務進度、審批和臨時拍板就得等回到機器旁。

飛書 / Lark 已經是不少團隊的日常協作面。把本機 dsh 接到私聊、羣聊和話題裏,等於把指揮權從桌面挪到手機,而不必把智能體搬到公網服務器上。社區目錄「通知與集成」分類裏有多條飛書通道,本文介紹其中由 PlutoKeating 維護的 dsh-lark-bot:它不只是把對話轉進飛書,還把項目工作區、並行任務、角色分工和崩潰後的飛書自救收進同一套橋接。

下文按社區目錄詳情頁、GitHub 倉庫 README / package.json、npm 包頁和 DeepSeek Harness 官方說明覈對後整理。社區插件目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。

這是什麼

dsh-lark-bot 是一款通知與集成插件,把本機 DeepSeek Harness 橋接進飛書 / Lark 機器人。維護者是 PlutoKeating,源碼在 PlutoKeating/dsh-lark-bot,許可證爲 AGPL-3.0,主要語言是 TypeScript。npm 上的同源包是 dsh-lark-botdsh-feishu-bot,當前版本爲 0.15.0(2026-08-17 在 npm 與倉庫 package.json 中一致)。GitHub 倉庫當前 20 星;社區目錄頁顯示 12 星,更接近收錄時的快照。

目錄頁的定位是:把 DeepSeek Harness 橋接進飛書 / Lark 的 bot,含完整項目工作區管理。倉庫 README 寫得更具體:在私聊、羣聊、話題裏指揮本機 coding agent,發消息就收流式卡片和工具調用過程,並把對話、任務、卡片和項目工作區收進同一個協作流。倉庫同時聲明:這是非官方社區工具,與 DeepSeek、字節跳動 / 飛書(Lark)無關聯,也未獲得其背書。

它解決的是這類場景:人已經在飛書裏協作,但不想爲了改一行代碼或看一次 diff 再切回電腦上的 dsh 網頁;也不想暴露公網回調地址。橋接走飛書開放平臺的 WebSocket 出站長連接,README 寫明不需要公網服務器、域名或內網穿透。

核心功能

倉庫 README 把能力拆成幾塊,下面只寫兩邊資料能對上的部分。

飛書通道與流式卡片

綁定成功後,橋接引擎在 dsh 進程內運行。私聊直接發消息即可,羣聊和話題裏需要 @bot。回覆以流式卡片呈現思考、工具調用和輸出,可用 /density 在 compact / standard / detailed 之間切換卡片密度。飛書消息裏的圖片會下載到本地 media 目錄再交給 dsh;文本類文件會讀取內容並注入任務上下文。

默認適配器是官方 @deepseek-ai/dsh-sdk-clientDSH_LARK_ADAPTER=sdk)。需要審批卡時切到 acpheadless 是舊版子進程回退;web 則驅動本機 dsh web agent,讓網頁端成爲會話的唯一寫者。README 寫明已對照 dsh 0.1.0-rc.6 做過 SDK / ACP 握手和真實任務流式驗證(最後驗證日期 2026-08-15)。

項目工作區

這是目錄頁強調的差異點。飛書裏可以用:

  • /cd <路徑>:切換工作目錄並重置會話
  • /ws list / /ws save <名> / /ws use <名> / /ws remove <名>:命名工作空間的查看、保存、切換和刪除

會話跑在 Git 倉庫裏時,bot 會在 ~/.dsh-lark/profiles/<profile>/worktrees/ 下爲每個會話建隔離 worktree,並複製項目級 AGENTS.md。非 Git 目錄則直接使用指定路徑。工作區狀態保存在本機 ~/.dsh-lark,不經過第三方遙測。

並行任務與多角色

同一 scope(私聊 / 羣聊 / 話題)默認允許 2 個任務並行,可用 /concurrency 或環境變量 DSH_LARK_SCOPE_CONCURRENCY 調整;設爲 1 即嚴格串行。連續發來的消息會變成獨立 run,各自使用獨立的 dsh session。/status 列出全部運行中的 run,/stop 一次終止當前 scope 裏的全部任務。

管理員可用 /role save 定義 PM / 開發 / 文檔等角色(人設、模型偏好、工具指引、角色規則),再用 /role set <角色> 綁到當前 scope。角色定義持久化在 ~/.dsh-lark/profiles/<profile>/roles.json。角色模型優先於默認模型,但仍低於當前會話的 /model use

歸檔、跨會話通知和問答卡

每個飛書 scope 默認保留最近 40 條對話,可用 /retention 調整;超出窗口的消息歸檔到 ~/.dsh-lark/profiles/<profile>/archives/(Markdown + JSONL,目錄本身是 Git 倉庫)。/archive 可手動歸檔、查看和清理。

跨會話通知有兩條路:管理員發 /notify <scope|chatId> <文本>;agent 側則內置 lark_notify 工具,任務結束後可向其他羣 / 話題推送並 @ 指定成員。回調監聽在 127.0.0.1,帶每次啓動隨機的 token,不暴露公網。

agent 需要拍板或補信息時,會通過 lark_ask_user 彈出問答卡(單選 / 多選 / 自由文本),回答後任務繼續;等待期間運行超時看門狗暫停。用戶也可以用 /ask 主動髮結構化問題,方向正好相反。

對話內管理模型與密鑰

/model/providers/provider/key 直接讀寫 dsh 官方配置(~/.dsh/settings.yaml~/.dsh/.credentials.yaml,與網頁 Settings → Models 同一套存儲協議),下一輪請求生效,不必重啓 bot。settings 只保存 apiKeyEnv 引用,字面密鑰進憑據文件(權限 0600),不會回顯在聊天回覆裏。倉庫提醒:在飛書會話裏輸入密鑰會對該會話可見成員暴露密鑰,建議只在私聊使用,或用環境變量 / dsh 網頁錄入。

安全網守護

setup 默認安裝一個獨立於 dsh 的最小守護(Linux systemd user unit / macOS LaunchAgent / Windows 啓動項)。dsh 正常時守護靜默;進程下線或 profile 無法 boot 時,它接管飛書通道,用戶不必碰命令行:

  • /safemode:進入僅核心安全模式(dsh-base + dsh-headless,不加載第三方插件)
  • /safemode plugins:列出故障 profile 已裝插件
  • /safemode status / /safemode stop / /safemode exit:查看狀態、停任務、退出並交還通道

不需要守護時,安裝加 --no-guardian;單獨卸載用 dsh-lark-bot guardian uninstall

安裝與啓用

社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端運行即可:

dsh plugin add github:PlutoKeating/dsh-lark-bot

如需可復現安裝,目錄頁寫法是把 commit 哈希接在倉庫後面:

dsh plugin add github:PlutoKeating/dsh-lark-bot#<commit>

倉庫 README 把面向最終用戶的路徑寫成另一條,並稱爲「唯一安裝命令」:它會定位本機 dsh、預批准 pnpm 構建策略,再執行帶版本釘扎的 dsh plugin --profile dsh-lark add dsh-lark-bot@<版本>,同時默認裝上安全網守護。

npx dsh-lark-bot@latest setup --profile dsh-lark

前置條件見 docs/QUICK_START.md:Node.js ≥ 22.19、本機已安裝 DeepSeek Harness 並配置好 DEEPSEEK_API_KEY、以及一個飛書 / Lark 賬號。package.jsonengines 與 README 一致。手動 dsh plugin add 時如果遇到 ERR_PNPM_IGNORED_BUILDS,README 要求在 profile 的 pnpm-workspace.yaml 加上 allowBuilds: { protobufjs: true } 後重試。

啓動並完成首次綁定:

dsh --profile dsh-lark

首次啓動會在終端打印二維碼,用飛書 / Lark App 掃碼創建或選擇 PersonalAgent 應用。已有憑據時可跳過掃碼:

DSH_LARK_APP_ID=cli_xxx DSH_LARK_APP_SECRET=<secret> DSH_LARK_TENANT=feishu \
  dsh --profile dsh-lark

DSH_LARK_TENANTfeishu(國內飛書)或 lark(國際版)。卸載:

dsh plugin --profile dsh-lark remove dsh-lark-bot

卸載後本地狀態仍留在 ~/.dsh-lark;若裝過守護,還需執行 dsh-lark-bot guardian uninstall。v0.12.0 起可用 npx dsh-lark-bot@latest upgrade --profile dsh-lark --yes 升級包本體和守護。

典型用法

綁定完成後,在飛書裏向 bot 發普通消息就會進入當前工作區上的 agent 任務。倉庫列出的常用命令可以先記這幾組:

命令 作用
/new /reset 開始新會話
/cd <路徑> 切換工作目錄並重置會話
/ws list /ws save /ws use 查看、保存、切換命名工作空間
/status /stop 查看運行中的任務 / 全部終止
/concurrency [N] 查看或設置當前 scope 並行數
/role list /role set <角色> 查看 / 綁定多角色 Agent
/model /model use <模型> 查看或熱切換當前會話模型
/providers /key list 查看 provider 與憑據引用
/archive /retention 歸檔與保留窗口
/notify <scope> <文本> 跨會話通知(管理員)
/invite user\|admin\|group 管理訪問白名單
/help 命令幫助

核心環境變量(完整表見 README,模板見倉庫 .env.example):

變量 默認 說明
DSH_LARK_TENANT feishu feishulark
DSH_LARK_ADAPTER sdk sdk / acp / headless / web
DSH_LARK_WORKSPACE 未設置 新會話默認工作目錄
DSH_LARK_SCOPE_CONCURRENCY 2 每 scope 並行任務數
DSH_LARK_ACCESS_DEFAULT_DENY false 無白名單時是否拒絕私聊

啓動異常時先跑 dsh-lark-bot doctor,它會檢查 profile、工作目錄,並對當前 adapter 做真實握手探測。

適用場景與注意事項

適合已經把日常溝通放在飛書 / Lark,又希望用手機或羣聊指揮本機 dsh 的開發者和小團隊,尤其是需要多項目隔離、角色分工、並行任務和會話歸檔的協作。目錄頁把同類插件列在「通知與集成」下,相關條目包括 dsh-lark(飛書機器人通道)和桌面通知類插件;選哪一個取決於要不要工作區、並行、守護這些額外能力,而不是目錄頁有沒有「官方」標記。

使用前需要把權限邊界看清楚。目錄頁寫明:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼,安裝前應檢查源代碼倉庫和許可證。package.json 聲明的 workshop 權限包括文件讀寫、出站網絡、本地監聽、拉起進程、讀寫憑據,以及 harness 工具與事件。README 的「權限與數據」一節對應到:飛書 app_id / app_secret 明文寫入本機 ~/.dsh-lark/config.json(文件權限 600);讀寫你用 /cd/ws 指定的工作目錄(含執行 shell、改文件);向飛書開放平臺建 WebSocket、向 DeepSeek API 發送任務上下文。數據只在本機、飛書和 DeepSeek 之間流轉,倉庫稱不收集遙測。

許可證是 AGPL-3.0,複製、修改或通過網絡提供服務時要按該許可證履行源碼義務,不能按「隨手裝一個 MIT 插件」來理解。兼容性釘在 dsh 0.1.0-rc.6 和 Node.js ≥ 22.19;平臺爲 Linux / macOS / Windows。已知限制包括:ACP 模式會話每次全新、無續跑;SDK 協議暫無 mid-turn cancel,/stop 會關閉對應 runtime 再重建;飛書文檔評論和富文本回復仍是規劃中能力,尚未實現。

倉庫在 2026-08-17 的 README 里加了官方渠道聲明:唯一官方倉庫是 PlutoKeating/dsh-lark-bot,唯一官方 npm 包是 dsh-lark-bot(同源 dsh-feishu-bot,維護者 plutokeating)。項目從不提供 Windows .exe 或「下載後雙擊運行」的安裝包。同日記載的假冒倉庫 tarraencompassing61/dsh-lark-bot 以 exe 下載爲誘餌,不要從這類頁面取附件。

小結

dsh-lark-bot 把本機 DeepSeek Harness 接到飛書 / Lark:對話走流式卡片,項目用工作區和 git worktree 隔離,同一聊天可以並行多個任務,模型與密鑰也能在對話裏改。setup 默認帶上的安全網守護,是在 dsh 掛掉之後仍能從飛書發 /safemode 自救的那一層。它是社區維護的 AGPL-3.0 插件,不是 DeepSeek 或飛書的官方產品;安裝前讀源碼、核許可證、認準 PlutoKeating/dsh-lark-bot 這一處倉庫即可。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-lark-bot/

GitHub:https://github.com/PlutoKeating/dsh-lark-bot

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

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

小夜