前言¶
在本地跑 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 卡片與 CLIcard.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。