dsh-wecom-plugin:企業微信與 DeepSeek Harness 的雙向連接

前言

DeepSeek Harness (DSH) 鼓勵“一切皆插件”的架構。當需要在企業微信(WeCom)中直接與 DSH 智能體交互時,通常需要一個公網入口或 Webhook。dsh-wecom-plugin 是一個最小可行性插件,旨在將企業微信智能機器人(aibot WebSocket)與 DSH 雙向連通。它支持長連接常駐,且每個企微會話對應一個持久的 DSH agent 會話。

插件定位

本插件由 zhengmz 維護,是一個可行性驗證 demo。它通過實現官方 @wecom/aibot-node-sdk 協議,打通了從企微網關到本地 DSH 插件的鏈路。

安裝與啓用

在 dsh web profile 中安裝插件時,必須使用 file: 前綴以確保 ESM 模塊解析正確:

dsh plugin --profile web add "file:<本插件倉庫路徑>"

核心功能

插件通過以下模塊實現核心能力:

  • 企微智能機器人 WebSocket 客戶端:位於 src/aibot-client.js。實現了流式回覆、回執等待、心跳 ack、事件回調、846608 降級、認證失敗重試、防互踢等協議細節。
  • 會話路由:位於 src/bridge.js。將一條企微消息映射爲一個 DSH agent 會話,支持回覆採集、分塊和流式回推。
  • 本地模擬網關:test/mock-wecom.js。用於本地開發測試,與真實網關行爲一致(僅測試用,無 cmd 的 ack 幀)。

配置項

接入真實企業微信後,需要在配置文件中填入憑據。以下是關鍵配置項:

鍵 含義 默認值
botId / secret 企業微信智能機器人憑據 ''
websocketUrl 網關地址(本地 mock 測試時改) wss://openws.work.weixin.qq.com
allowedUserIds 允許對話的企微 userid,空=放行所有 []
agent.sessionScope 會話隔離模式:chat(羣共享)/ chat-user(羣成員隔離,推薦) chat
agent.groupMention 羣聊提及門控:none(每條都回)/ at(僅 @機器人時回) none
approval.enabled 企微內授權總開關(權限請求轉發到企微會話) true
agent.cwd agent 默認工作目錄 dsh 進程 cwd

使用示例

  1. 快速驗證:在安裝插件後,可運行測試腳本驗證協議和橋接功能:
    node test/smoke.mjs
此測試覆蓋了 43 項協議與橋接功能,包括媒體處理。
  1. 端到端演示:運行 node test/live-demo.mjs。這會在一個隔離的 DSH 環境里加載插件並連接本地 mock 企微網關,驗證“企微消息 → 真實 agent → 真實 LLM → 回覆”的完整鏈路。

注意事項

  1. Demo 狀態:當前版本爲可行性驗證 demo。
  2. 生產部署:必須使用 file: 前綴安裝,避免 ESM 模塊解析問題。
  3. 開發環境:如需使用裸路徑開發,倉庫根目錄的 node_modules 必須鏈接到 DSH 安裝目錄,否則會報 ERR_MODULE_NOT_FOUND。
  4. 企微內授權:需要一次性授權碼,用戶在企微內回覆關鍵詞(如“同意”)進行批准。

參考資料

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

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

小夜