dsh-lark-link:把 DeepSeek Harness 智能體接入飛書

前言

DeepSeek Harness(DSH)在本地或 Web GUI 裏跑 Agent 時,工具調用、文件讀寫、子代理都齊全,但對話入口通常綁在終端或瀏覽器。團隊日常在飛書溝通,想從手機給 Agent 派任務、看結果,常見做法是自建飛書開放平臺應用:申請應用、配事件回調、找公網地址收 webhook,再自己把消息轉進 DSH。鏈路長、運維成本高,進程重啓還容易丟消息。

dsh-lark-link 是社區維護的 DSH 客戶端插件,把 DSH Agent 與飛書/Lark 做成雙向橋接。掃碼即可完成應用創建與認證,出站 Outbox 與入站 WAL 雙持久化降低消息丟失風險,切換模式、權限、模型走飛書單選卡片,不必記一長串命令拼寫。

這是什麼

dsh-lark-link(npm 包名同名,當前版本 0.5.2)由維護者 amlyczz 發佈,分類爲客戶端插件,GitHub 倉庫 26 stars、5 forks,許可證 MIT。插件以 Cordis bundle 形式併入 DSH profile,橋接層負責飛書 SDK 適配、消息入站出站、會話管理與卡片交互;底層仍是原生 DSH session,可與 DSH Web GUI 共用同一套聊天、流式輸出與工具面板。

項目爲社區插件,與 DeepSeek、飛書或 Lark 無隸屬關係。SkillHub 目錄頁:https://www.skillhub.cn/plugins/amlyczz/dsh-lark-link

核心功能

下面按已文檔化的能力分組說明。

認證與連接

/lark setup 掃碼創建飛書應用,自動訂閱消息事件並申請羣聊與表情相關權限,README 稱約 30 秒可完成上線;也可通過環境變量 DSH_LARK_APP_IDDSH_LARK_SECRET 走手動通道。憑據寫入 DSH credentials 服務,不進普通配置文件。

連接側有 probe 驅動的受控重連、QuotaGovernor 配額熔斷(窗口過期後自動解除並重連)、斷連補償,以及環境代理自動規避。

出站零丟失(Outbox)

出站消息走持久 Outbox:JSONL 存儲、at-least-once 投遞、冪等鍵、分航道並行、失敗條目離隊不阻塞整條隊列、週期清理。進程被 kill、插件熱更或 dsh 重啓後,未發出的回覆會自動續投;橋命令的回覆同樣走 Outbox。

入站請求補發(Inbound WAL)

用戶消息在 Agent 處理到一半時若插件或 DSH 崩潰,重啓後會按 WAL 對賬並重新觸發該條用戶消息,而不是靜默丟棄。有次數上限與時間窗以防空轉;/status 可查看待補發條數。

多模式 Agent 與權限

支持 standard、code、minimal、cordis 等 preset,以及 GUI 自建的 preset。飛書發 /mode 彈出單選卡片切換,默認 code(一次執行多步工具調用)。/permission 卡片切換隻讀、工作區寫、Full access 三種權限,默認 danger-full-access

卡片化命令與 DSH 原生命令

/model/mode/permission 均爲單選按鈕卡片,模型列表按供應商分組。/goal 可在飛書啓動長任務閉環,支持 pauseresumeclear/new/resume/workspace 管理會話與工作區;/doctor 生成 ZIP 診斷包(session log、脫敏配置、ISSUE.md 模板);/lark-config key=value 熱改配置並持久化。

命令分流規則:橋特有命令由橋處理;DSH 已註冊命令(如 /compact)原生執行;/goal、未知 /xxx、普通文本原樣注入 Agent。skill 無需前綴,直接描述任務即可。模型通過 ask_user_question 提問時,會轉成飛書意圖確認卡片(選項、多選、自定義輸入)。

多媒體進出

入站:飛書圖片存入 attachment 供視覺模型讀取;文件做有界文本提取後寫入提示詞。出站:模型可通過 lark_send_local_file 回傳本地圖片或文件(工作區白名單、大小校驗、格式自動降級)。

展示與交互

回覆自動檢測 Markdown,複雜內容用 CardKit 卡片渲染(標題、列表、代碼塊、表格),純文本走文本消息。/lark-config streaming.enabled=true 可熱開 CardKit schema 2.0 流式卡片逐字輸出,默認關閉。收到消息可隨機表情回執,完成時打 DONE 類 emoji(僅使用飛書實測有效的表情)。

Web GUI 複用與會話隔離

每個飛書會話對應獨立 Agent 實例,工作區、模型、模式按會話持久化。/resume 用極簡卡片恢復歷史會話,支持點選、序號或 id 前綴,並提取會話真實標題,減輕跨重啓 live session 衝突。橋接會話自動歸入對應工作區,Web 面板可查看 Outbox 與補發計數。

訪問控制

allowlist 限定可對話的 open_id;groupPolicy 控制羣聊觸發策略(open 免 @、mentionkeywordsreply);denyList 可按命令前綴拒絕。默認 groupPolicy=open,羣聊可直接說話觸發。

安裝與啓用

前置條件:Node.js ≥ 24,已全局安裝 DeepSeek Harness(npm i -g @deepseek-ai/dsh)。

通過 DSH 官方 dsh plugin 機制安裝,包以 bundle 格式分發,安裝後併入 profile 的 dsh.profile.bundles 層:

dsh plugin --profile web add dsh-lark-link@latest --ignore-scripts

--ignore-scripts 用於跳過飛書 SDK 傳遞依賴 protobufjs 的 postinstall,在 pnpm 11 安全策略下避免非零退出碼;若環境已全局放行可省略。--profile web 指定安裝到 web profile,與 GUI 共用同一 profile 時保持 web

升級示例:

dsh plugin --profile web update dsh-lark-link --latest --ignore-scripts

若鏡像 dist-tags.latest 未刷新導致報 Already up to date,可先查官方源版本再顯式安裝:

npm view dsh-lark-link versions --registry https://registry.npmjs.org
dsh plugin --profile web add dsh-lark-link@<新版本號> --ignore-scripts

安裝後重啓 dsh web 生效。啓動與橋接:

dsh web

在 GUI 輸入框或終端執行:

/lark setup    # 掃碼創建飛書應用,面板顯示二維碼
/lark start    # 啓動橋接

飛書搜索機器人發任意消息,收到表情回執且收到完整回覆即表示端到端連通。

DSH 側生命週期命令:

/lark setup
/lark start|stop|restart|status
/lark uninstall-clean    # 清除憑據與狀態目錄

典型用法

切換模式與模型:在飛書發送 /mode/model,點選卡片即可,無需手打 preset 或模型 id。

長任務/goal 整理本週會議紀要並寫入工作區 啓動自主執行;中途 /goal pause/goal resume;結束或放棄用 /goal clear

會話與工作區/new 在當前工作區新開會話;/resume 從卡片選歷史會話;/workspace /path/to/project 切換工作區根目錄。

熱改羣聊策略

/lark-config groupPolicy=mention
/lark-config streaming.enabled=true
/lark-config agentPreset=standard

排障:飛書發 /doctor 獲取 ZIP 診斷包,或 /status 查看連接、Outbox、補發與會話健康。

發圖或文件:直接在飛書發送,圖片走視覺模型,文件提取文本後進 Agent 上下文。

常用配置項

以下均可通過 /lark-config 熱改,立即生效並持久化:

配置鍵 默認 說明
groupPolicy open 羣聊觸發:open / mention / keywords / reply
groupKeywords ["lark","bot"] keywords 模式觸發詞
agentPreset code Agent preset
permissionMode danger-full-access 權限模式
streaming.enabled false CardKit 流式卡片
reactions.enabled true 表情回執
allowlist [] open_id 白名單,空表示不限制
denyList [] 命令前綴拒絕列表
workspaceRoot 橋會話工作區根,空爲 process.cwd()
attachments.retentionHours 168 入站媒體保留小時數,0 爲永久
attachments.dir 入站媒體目錄覆蓋,空爲系統 tmpdir

適用場景與注意

適合已在用 DSH、希望把 Agent 入口放到飛書(尤其移動端)的團隊或個人:研發在羣裏問代碼問題、運維收 /status 健康信息、負責人用 /goal 驅動長任務,都無需守着終端。

安裝前建議閱讀 GitHub 源碼與 MIT 許可證。插件以當前 dsh 進程權限運行,默認 Full access(沙箱全訪問、審批 never),生產環境應結合 allowlistgroupPolicypermissionMode 收緊範圍。插件狀態爲 beta;CI 在 push/PR 時跑類型檢查、264 項測試與構建。

鏈接

  • SkillHub 目錄:https://www.skillhub.cn/plugins/amlyczz/dsh-lark-link
  • GitHub:https://github.com/amlyczz/dsh-lark-link
  • npm:https://www.npmjs.com/package/dsh-lark-link
羽毛球分组比赛记分
小程序二维码

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

小夜