前言¶
DeepSeek Harness (dsh) 的插件體系允許把 agent 能力接到更多入口裏。對需要在 IM 客戶端中使用 dsh agent 的人來說,常見問題是釘釘、QQ、個人微信的消息協議、會話狀態、審批請求、提問請求和長文本限制各不相同,單獨適配每個渠道會分散精力。
@lijian-ui/dsh-im-gateway 針對這類場景提供一個網關插件:把釘釘、QQ、個人微信接入同一個 ctx.imGateway,讓 agent 在聊天窗口裏獲得流式回覆、工具審批、交互提問、長文本分片、多段合併等能力。
下面介紹這個插件的定位、核心能力、安裝方式和典型用法。
這是什麼¶
@lijian-ui/dsh-im-gateway 是一個爲 dsh 提供多 IM 通道接入的網關插件,支持釘釘 / QQ / 個人微信。
它的主要能力包括掃碼綁定、流式回覆、工具審批、交互提問、長文本分片、多段合併和雙語界面。維護者爲 lijian-ui,許可證爲 MIT,GitHub 倉庫地址爲 https://github.com/lijian-ui/dsh-im-gateway 。
核心能力¶
多通道與統一網關¶
插件支持以下通道:
- 釘釘
- 個人微信
多個通道會匯聚到統一的網關服務 ctx.imGateway,提供會話管理、斜槓命令、流式回覆和狀態廣播。
它也支持多機器人實例:同一通道類型可以配置多個實例,每個實例使用各自獨立的憑據。
插件會在 dsh web UI 內渲染「IM 通道」設置頁,通道綁定和配置可以從這裏完成。
流式回覆與長文本處理¶
流式回覆支持:
- 釘釘 AI 卡片
- QQ
stream_messages
如果渠道不支持流式回覆,插件會回退爲純文本。
當回覆超過渠道單條上限時,長回覆會被自動切分,並帶有分段前綴。
工具審批與交互提問¶
當 agent 調用需要審批的工具時,插件提供工具審批橋。用戶可以在 IM 中直接回復批准或拒絕。超時後,請求會委託回 dsh 原生審批體系。默認審批超時爲 approvalTimeoutSecs: 120 秒。
當 agent 調用 ask_user_question 時,插件提供交互提問橋。問題會同步推送到 IM,用戶回覆選項編號或文字即可作答。超時後會轉回 Web 端。默認提問超時爲 questionTimeoutSecs: 600 秒。
多段輸入合併¶
用戶連續發送多條消息時,插件會自動合併輸入。
控制後綴如下:
- 無後綴:進入合併窗口
..:續傳合併!!:立即提交
文件發送¶
插件提供 im_send_file 工具,用於把工作區文件發送到當前 IM 會話。
語言與權限¶
插件支持雙語界面。配置 im-gateway.language 爲 zh 或 en,可以切換用戶可見回覆的語言。
權限控制使用用戶白名單:
allowAllUsersallowedUserIds
allowAllUsers 是全局放行所有用戶,僅適合開發環境,生產環境不建議開啓。
安裝與啓用¶
先安裝插件:
dsh plugin --profile web add @lijian-ui/dsh-im-gateway
npm 包自帶預構建的 lib/,無需構建授權。
如果從 Git 安裝,拉取的是源碼,首次安裝需要批准包的 prepare 構建腳本。pnpm >= 10 場景下,按提示把包鍵加進 profile 的 pnpm-workspace.yaml 中的 allowBuilds。優先使用 npm 或 tarball 方式可以跳過這一步。
安裝後可以用下面命令查看配置:
dsh --profile web --dump-config
然後啓動 dsh web UI,打開「設置 → IM 通道」完成通道配置。
需要注意,插件對 dsh 相關依賴有版本範圍要求。它會依賴 @deepseek-ai/cordis、schemastery 等包,並要求特定範圍的 @deepseek-ai/dsh-agent、dsh-llm、dsh-session。安裝前應確認當前 dsh 環境是否匹配。
Windows 環境下,如果修改了 src/,必須重新構建後再重啓 dsh 進程:
npm run build
典型用法¶
添加通道¶
下面介紹在 dsh web UI 中添加通道的基本步驟。
1、打開 dsh web UI → 設置 → IM 通道。
2、點擊添加通道,選擇 QQ、個人微信或釘釘。
3、按通道完成綁定。
QQ:
- 點擊掃碼登錄
- 用手機 QQ 掃碼
- 憑據自動填入後保存
個人微信:
- 點擊掃碼登錄
- 用手機微信掃碼
- 如要求則輸入配對碼
- 憑據自動填入後保存
釘釘:
- 手動填寫
AppKey/AppSecret - 或者直接編輯配置文件
- 保存配置
配置會存儲在 ~/.dsh/settings.yaml 的 im-gateway.channels。在 UI 中保存配置會熱重載通道,無需重啓。
發送消息和斜槓命令¶
在 IM 客戶端給機器人發消息後,回覆會即時流式返回。
插件內置以下斜槓命令:
/help
/model
/status
/new
/reset
/stop
/sessions
/continue
/workspaces
/workspace
常見用法包括:
/model
/status
/new
/sessions
/continue <會話id>
/workspaces
/workspace <路徑>
審批迴復¶
當 agent 請求審批時,可以在 IM 中直接回復。
批准類回覆:
批准
同意
yes
y
allow
拒絕類回覆:
拒絕
no
n
reject
deny
多段輸入¶
連續輸入時使用後綴控制:
..
!!
.. 用於續傳合併,!! 用於立即提交。
切換界面語言¶
配置 im-gateway.language 爲 zh 或 en:
im-gateway:
language: zh
適用場景與注意¶
這個插件適合以下場景:
- 需要把 dsh agent 接到釘釘、QQ 或個人微信
- 希望在 IM 中直接處理工具審批和交互提問
- 需要多個機器人實例分別使用獨立憑據
- 需要長回覆自動分片和多段輸入合併
- 需要在聊天窗口中發送工作區文件
使用注意:
- 個人微信僅支持單聊。
allowAllUsers僅適合開發環境,生產環境建議使用allowedUserIds做白名單。- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼和 MIT 許可證。
- 從 Git 安裝時需要注意
allowBuilds構建授權。 - 如果本地修改了源碼,需要重新構建後再重啓 dsh 進程。
結尾¶
@lijian-ui/dsh-im-gateway 的價值在於把釘釘、QQ、個人微信三個通道統一到 ctx.imGateway,減少爲每個 IM 單獨維護消息、審批、提問和會話邏輯的成本。
當前資料未給出可用的目錄頁地址,因此這裏不列出具體目錄頁鏈接。可直接使用 GitHub 倉庫地址:
https://github.com/lijian-ui/dsh-im-gateway