dsh-fschannel:讓 DeepSeek Harness Web 會話與飛書機器人雙向通信

前言

在 DSH 裏做一個智能體時,常見需求是:會話已經建好,但希望臨時在飛書裏發消息、看結果,而不是隻盯着 Web 界面。如果飛書機器人需要公網回調,接入成本會更高。dsh-fschannel 選擇使用飛書官方 @larksuite/channel SDK 的 WebSocket 長連接,無需公網回調地址,直接橋接 DSH Web 會話和飛書/Lark 聊天。

這是什麼

dsh-fschannel 是一個 DeepSeek Harness(DSH)插件。它把 DSH Web 會話綁定到飛書/Lark 聊天后,飛書消息會進入該 DSH 會話並由 Agent 處理,處理結果自動發回飛書。

倉庫用戶名爲 cershuang,源碼倉庫爲:

https://github.com/cershuang/dsh-fschannel

許可證爲 MIT。DSH 的擴展方式是「一切皆插件」;社區目錄屬於獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文不按官方應用商店口徑描述。

核心能力

會話與飛書聊天綁定

插件支持將 DSH Web 會話與飛書聊天做一對一綁定,綁定關係持久化到:

$DSH_HOME/feishu-bindings.json

會話進入待綁定狀態後,下一條飛書消息所在的聊天會完成綁定。這樣可以在 Web 中先建會話,再到飛書私聊或羣裏完成關聯。

消息通道

插件使用 @larksuite/channel SDK 建立 WebSocket 長連接,無需配置公網回調地址。羣聊中默認僅響應 @ 機器人;單成員羣可以免 @。未綁定聊天收到消息時,插件可按配置返回引導提示。

消息投遞層面,插件提供 SDK 級去重(30s),並按聊天串行投遞。當 Agent 正在處理時,飛書側會提示當前消息的排隊位置。

收到消息時,插件可以自動添加表情反饋;是否開啓以及不同階段使用什麼表情可以配置。

流式輸出與卡片

插件支持流式卡片輸出:回合開始時開卡,回覆逐字呈現,回合結束後保留最終結果。輸出內容支持 markdown 表格、代碼塊和圖片內嵌。

若飛書側沒有卡片權限,插件會回退爲普通消息;也可以設置:

output: 'plain'

讓每一步都發送一條普通消息。

圖片處理與發送

飛書發來的圖片會先暫存,不立即處理;當下一條文字消息到達時,插件會把圖片路徑交給 Agent,由視覺識別能力結合文字消息處理。該能力需要 @anionex/dsh-vision-toolkit 就緒,並且需要 runtime 就緒。

插件還提供會話圖片畫廊,並對歷史 feishu/image 日誌做自動修復。

Agent 在回合中也可以把結果發回飛書:

  • 調用 send_feishu_image 發送圖片,支持 PNG/JPEG/WebP/GIF,且圖片路徑須在會話工作區內。
  • 調用 send_feishu_file 發送文件,大小限制爲 ≤30 MiB。

飛書側命令

插件在飛書側提供模型與 effort 控制入口。發送「調整模型」「切換模型」「把 effort 調一下」等短語,會彈出模型與 effort 按鈕卡片。

也可以直接使用命令:

/model
/model list
/model use <provider>/<model>
/model effort <off|high|max>
/status
/stop
/help

其中 /model、/model list、/model use、/model effort 用於查詢或切換模型與思考強度;/status、/stop、/help 用於查看狀態、停止當前回合和查看命令。

安裝與啓用

前置要求:

Node 22.19+
dsh CLI
pnpm

憑據推薦保存在 DSH 憑據庫:

$DSH_HOME/.credentials.yaml

.env 文件只放路徑配置。

按 README 安裝時,通常按下面順序執行:

cp example.env .env
npm install && npm run build
dsh plugin --profile web add file:<插件倉庫路徑>
dsh web

這裏先複製示例環境文件,再構建客戶端包,然後以 file: 方式安裝到 web profile,最後啓動 dsh web 生效。安裝命令中的 <插件倉庫路徑> 是本機插件倉庫路徑,不要按 owner/repo 名稱自行拼接遠程安裝命令。

如果 pnpm 因 protobufjs 構建腳本報:

ERR_PNPM_IGNORED_BUILDS

需要在 profile 的 pnpm-workspace.yaml 中加入:

allowBuilds:
  protobufjs: false

修改插件源碼後,需要重新構建並重裝:

npm run build
dsh plugin --profile web add file:<插件倉庫路徑>
dsh web

典型用法

1、在 Web 界面新建會話後,點擊會話頭「連接飛書」,讓會話進入待綁定狀態。

2、在飛書私聊機器人,或在羣裏 @ 機器人發送一條消息,完成該聊天與當前 DSH 會話的綁定。

3、之後在飛書裏繼續發消息,消息會進入該 DSH 會話;Agent 的回覆會自動發回飛書聊天。

4、如果需要讓新會話默認進入待綁定,可打開「設置 → 飛書機器人」標籤頁中的「新會話默認連接飛書」,或點擊「新建會話並連接飛書」。

適用場景與注意

適合這類插件的場景是:你已經在用 DSH Web 會話,同時希望把同一個會話接入飛書/Lark,用於移動端、羣聊或日常協作入口;也希望 Agent 能向飛書發送圖片、文件,並使用模型切換、停止、狀態查看等命令。

使用前建議檢查以下事項:

  • 插件會作爲 DSH 插件運行,並以當前 dsh 進程權限讀取本地路徑與文件。安裝前應自行檢查源碼與許可證。
  • 許可證爲 MIT。
  • 憑據推薦保存在 $DSH_HOME/.credentials.yaml,.env 只放路徑配置。
  • HTTP API /feishu/* 僅接受 127.0.0.1 訪問。
  • 流式卡片依賴飛書卡片能力;無卡片權限時會自動回退普通消息。
  • 圖片暫存識別依賴 @anionex/dsh-vision-toolkit 且 runtime 就緒。
  • send_feishu_image 支持 PNG/JPEG/WebP/GIF,且路徑須在會話工作區內;send_feishu_file 限制 ≤30 MiB。
  • 羣聊默認僅響應 @ 機器人;單成員羣免 @。
  • dsh 升級後,插件本體、註冊行、綁定數據保留,無需重打補丁。

鏈接

源碼倉庫:

https://github.com/cershuang/dsh-fschannel

社區目錄線索:

https://www.skillhub.cn/plugins/cershuang/dsh-fschannel

該目錄鏈接來自線索,未在本次資料中核實;如需以源碼爲準,優先使用倉庫地址。

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

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

小夜