dsh-lark:用飛書 / Lark 消息驅動本地 DeepSeek Harness 會話

前言

在本地跑 DeepSeek Harness(DSH)時,任務通常綁在終端或 Web UI 上:改代碼、查失敗測試、問倉庫結構,都要先切到那一側再發指令。若團隊日常在飛書或 Lark 裏溝通,把「發一條消息 → 本地 agent 執行 → 結果回到同一條會話」串起來,能減少上下文切換,同時仍可在 dsh Web UI 裏查看完整會話與工具調用。

下面介紹社區插件 dsh-lark(維護者 ChengqianHuang,SkillHub 分類爲工作流):在已安裝的 dsh 與已配置的 Lark/Feishu 機器人之上,用 lark-cli 訂閱消息事件,在本地工作區執行 turn,並把答覆回覆到觸發消息所在的聊天;不對外暴露公網 webhook。

這是什麼

dsh-lark 是 DeepSeek Harness 的 package-bundle 插件(倉庫 ChengqianHuang/dsh-lark)。README 概括爲:向 Lark 或 Feishu 機器人發送任務,Harness 在本地工作區運行,並回復到發起該任務的消息;審查變更、排查失敗測試、詢問代碼等,會話仍可在 dsh Web UI 中繼續查看。

插件通過 bundle 內的 cordis.patch.yml 安裝 lark 服務行;宿主負責 agent、工具、憑據、權限與持久化會話歷史。當前文檔中的兼容目標是 dsh 0.1.2-alpha.5(見 README「Use this package」);package 版本爲 0.2.0,許可證 MIT。

核心功能

以下能力均來自倉庫 README 與說明文檔索引,未在資料中展開的細節不展開寫。

會話與上下文

  • 私聊與羣話題各自維護會話;後續消息保留上下文。
  • 私聊發送 /sessions 可列出可選會話並切換繼續(需 session 卡片與 CLI card.action.trigger 支持,見 setup 文檔)。
  • 發送 /new 會取消橋接任務、清空待處理消息並重置當前聊天的會話。

任務與文件

  • 普通文本:在當前聊天的會話中執行一個任務;額外任務進入有界隊列。
  • 可接收圖片/文件;支持顯式文件投遞審批;任務進度卡片帶停止按鈕(可通過配置關閉各類卡片,見下文配置項)。
  • 橋接註冊 lark_send_file 等工具;具體可用動作取決於宿主 dsh 的工具與權限策略。

控制與安全

  • /status 查看當前會話、運行狀態與隊列;/stop 取消當前橋接任務並清空待處理消息;/help 立即列出命令。
  • 可限制發送者與聊天;空發送者白名單會導致啓動失敗,除非顯式啓用 allowAllSenders。
  • 事件經 lark-cli 本地訂閱處理,不打開公網 webhook 端點。
  • 會話繼承宿主的默認 agent 預設與權限策略;羣成員可見回覆,同話題內授權發送者共享上下文;配置的 filesystem workspace 在聊天會話間共享。

羣聊

  • 默認示例配置中 groupPolicy: disabled;啓用羣聊需例如 groupPolicy: mentions 並限制 allowedChats(見 configuration 文檔)。
  • 羣中需用機器人 @display name 精確開啓話題,在該話題內回覆以延續會話。

命令一覽

消息 結果
普通文本 在本聊天會話中運行一個任務;其餘任務排隊
/sessions 私聊中展示會話選擇
/status 當前會話、運行狀態與隊列
/stop 取消當前橋接任務並清空待處理消息
/new 取消工作、清空待處理並重置本會話
/help 顯示可用命令

未知斜槓命令會返回幫助,不會當作 agent 提示執行。機器人通知支持英文與簡體中文;模型答覆語言隨對話選擇。

安裝與啓用

前置條件(README 原文):可用的 dsh 安裝、Node.js ^22.19.0 || >=24.0.0、pnpm、已在 PATH 中配置好的 Lark/Feishu 機器人與 lark-cli。憑據、scope、發送者 ID 等見倉庫 docs/setup.md。

1. 構建並安裝 bundle

官方步驟爲從源碼構建後鏈入 web profile:

git clone https://github.com/ChengqianHuang/dsh-lark.git
cd dsh-lark
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile web add "$PWD"

本地 checkout 會鏈入 web profile;改源碼後需重新 build。若從 Harness 源碼運行 dsh,README 建議在該倉庫用 pnpm dsh 執行 dsh 命令,並向 add 傳入插件目錄的絕對路徑。

2. 允許賬號與工作區

將下列片段合併進 ${DSH_HOME:-$HOME/.dsh}/profiles/web/cordis.patch.yml,替換示例 sender ID,並保留文件中已有條目:

- id: lark
  config:
    allowedSenders: [ou_your_open_id]
    workspacePath: ~/projects/my-project
    groupPolicy: disabled
    locale: en

說明(README):session 與 interaction 卡片默認開啓,需 CLI 支持 card.action.trigger;啓動前按 setup 配置回調。若只要純文本,可設 sessionCards: false、interactionCards: false、progressCards: false,以及 receiveAttachments: false、fileDelivery: false。中文通知可設 locale: zh-CN。

3. 啓動與驗證

dsh --profile web --dump-config
dsh web

配置 dump 應包含 dsh-lark 層與你的設置;它不校驗 Lark 連通性。向機器人發 /help,再讓它描述工作區;在 Web UI 打開會話查看工具活動。權限請求與追問通過 interactions 中的卡片處理。

卸載:dsh plugin --profile web remove dsh-lark。已保存的 dsh 會話歷史仍受宿主保留策略約束。

典型用法

README 給出的示例提示(實際能力取決於你的工具與權限):

  • “Explain this repository’s entry points”
  • “Review the changes in my workspace”
  • “Find why the parser test fails”

建議流程:先私聊直連驗證 → 發 /help 熟悉命令 → 用自然語言描述任務 → 在 Web UI 查看完整回覆與工具軌跡;長回答可能被截斷,完整內容在 dsh 會話中查看(README「Known Limitations」)。

羣聊場景:按文檔配置 groupPolicy 與 allowedChats 後,用機器人顯示名 @ 開話題,在話題內連續對話。

適用場景與注意

適合誰

  • 已在本地使用 DSH,且團隊溝通在 Lark/Feishu,希望從 IM 觸發本地 coding agent 的開發者。
  • 需要私聊切換歷史會話、在聊天裏審批文件與權限、並用 /stop 打斷任務的工作流場景。

務必知曉

  • 橋接任務在 運行 dsh 的同一主機權限 下執行,並讀寫你配置的 workspacePath;安裝與啓用前應閱讀倉庫源碼、SECURITY.md 與 MIT 許可證。
  • 社區目錄 SkillHub 插件頁 與 GitHub 倉庫由維護者發佈;DSH 生態強調「一切皆插件」,該目錄爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。
  • 資料中記錄的 GitHub 星標爲 0;更多限制見 README「Known Limitations and Deferred Work」及 troubleshooting。

延伸閱讀

倉庫內文檔索引: Setup、Configuration、Sessions、Tasks、DESIGN.md。中文 README:README.zh-CN.md。

dsh-lark 把 IM 消息與本地 Harness 會話對齊:消息驅動任務、結果回到聊天、會話仍在 Web UI 可審計。目錄頁:https://www.skillhub.cn/plugins/ChengqianHuang/dsh-lark;源碼與安裝說明:https://github.com/ChengqianHuang/dsh-lark。

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

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

小夜