dsh-wechat-pro:把 DSH 接入微信的 ClawBot 通道插件

前言

做 DSH 開發時,很多操作最終都會落到消息交互上:查看會話、切換工作區、處理工具審批、發送文件、查看連接狀態。如果這些動作只發生在 Web 端,開發時的上下文切換會比較頻繁。

bwhite55/dsh-wechat-pro 是一個 DeepSeek Harness(DSH)進程內微信 ClawBot 通道插件,目標是把 DSH 接到微信裏,讓你在微信中繼續與真實 DSH 會話交互。它的定位可以概括爲:把 DSH 變成微信裏的一隻「龍蝦」。

這是什麼

dsh-wechat-pro 由 bwhite55 維護,許可證爲 MIT,版本號爲 0.1.0。

它是一個 DSH 進程內微信 ClawBot 通道插件,核心能力包括:

  • 微信掃碼連接,憑證 24h 自動續連併到期提醒。
  • 微信裏的會話與 Web 共享真實 DSH 會話,可跨端續接,屬於 Codex 式附着。
  • 在微信內切換工作區、切換工作路徑、切換模型和思考強度。
  • 在微信內執行 harness 原生命令,例如 /plan、/permission、/compact、/goal、/feedback、/export。
  • 把高風險工具調用審批轉發到微信,回覆 /yes 允許、/no 拒絕。
  • 即時推送思考、工具調用等過程事件,最終答覆長文自動分片。
  • 支持微信與電腦之間的文件收發。
  • agent 可通過 weixin_send 工具向微信推送消息。

運行環境要求 Node >=22,peerDependencies 要求 @deepseek-ai/cordis ^4.0.1 等 DSH 相關包。

核心功能

掃碼連接與續連

插件通過微信 ClawBot 配對連接。連接後,憑證可自動續連,並有到期提醒。

如果 dsh web 在隱藏窗口中運行,終端裏看不到二維碼,可以通過狀態接口獲取二維碼鏈接:

http://127.0.0.1:3080/api/dsh-wechat-pro/status

響應裏的 qrLink 是當前登錄二維碼鏈接。若需要強制重新掃碼,可以調用:

POST /api/dsh-wechat-pro/connect

會話共享

微信裏新建或切換的會話,是真實 DSH 會話,不是單獨維護的一套影子會話。

常用操作包括:

  • /new <名字>:當前工作區內新建會話並切換。
  • /attach <序號|會話ID>:附着 Web 已有會話,實現跨端續接。

這樣可以先在一端建立上下文,再在微信端繼續同一會話。

工作區切換

微信內支持兩類工作區操作:

  • /workspace:在註冊工作區間切換,通常通過回覆數字選擇。
  • /workdir <路徑>:切換到任意工作路徑,並自動註冊爲工作區。

這適合在不同項目目錄之間來回切,而不用重啓或切換 Web 頁面。

模型與思考強度

微信內支持按會話切換模型和思考強度:

  • /model:切換模型,下一輪生效。
  • /thinking:切換思考強度,下一輪生效。

輸出等級也可以用 /level [級別] 切換,可選 minimal、normal、verbose。

harness 原生命令

微信內可以直接執行 harness 原生命令,例如:

/plan
/permission
/compact
/goal
/feedback
/export

這些命令不是額外封裝的快捷方式,而是直接在 DSH 會話中執行。

工具審批轉發微信

當 DSH 觸發高風險工具調用時,審批提示會轉發到微信。

在微信中回覆:

/yes

表示允許。

回覆:

/no

表示拒絕。

如果同時存在多個待審批項,可以回覆:

允許 <4位碼>

來精確選擇某一條審批。

流式輸出與長文分片

思考、工具調用等過程事件可以即時推送到微信。最終答覆如果較長,會自動分片。

微信單條消息約有 2048 字符限制,插件的 replyMaxChars 默認爲 3800,超出後會分片發送。

長答覆還有一個降級策略:maxReplyChunks 默認爲 8。如果分片數超過預算,會降級爲「首片 + 完整內容落盤爲文件發送」,避免完整內容丟失。

媒體收發

電腦側可以向微信發送文件:

/send <路徑> [說明]

微信側收到的圖片、文件、視頻、語音,會自動下載、解密並落盤。

此外,agent 可以使用 weixin_send 工具,在任務過程中隨時向微信推送消息。

安裝與啓用

先安裝插件,再啓動 Web:

dsh plugin --profile web add github:bwhite55/dsh-wechat-pro
dsh web

啓動後,在微信中添加 ClawBot/龍蝦,掃二維碼配對,就可以開始對話。

如果在隱藏窗口中運行 dsh web,可以通過狀態接口拿到二維碼:

http://127.0.0.1:3080/api/dsh-wechat-pro/status

也可以強制重新掃碼:

POST /api/dsh-wechat-pro/connect

典型用法

下面這些指令來自插件說明,可以在微信中直接使用。

查看幫助、狀態和連接剩餘時間:

/help
/status
/time

切換工作區:

/workspace

按提示回覆數字,即可選擇目標工作區。

切換任意工作路徑:

/workdir <路徑>

新建會話並切換:

/new <名字>

附着 Web 已有會話:

/attach <序號|會話ID>

切換模型:

/model

切換思考強度:

/thinking

切換輸出等級:

/level minimal
/level normal
/level verbose

發送電腦文件到微信:

/send <路徑> [說明]

處理高風險審批:

/yes
/no
允許 <4位碼>

執行 harness 原生命令:

/plan
/permission
/compact
/goal
/feedback
/export

配置項

插件提供配置項,也支持 DSH_WXBOT_* 環境變量。

常見配置項包括:

  • autoConnect
  • allowFrom
  • dataDir
  • baseUrl
  • replyMaxChars
  • streamLevel
  • mirrorWebTurns
  • replyTimeoutMs
  • announceToAgent

其中幾個比較關鍵的點:

  • allowFrom:用於控制允許接入的微信用戶。建議只放行自己的微信號。
  • replyMaxChars:默認 3800。超出後會自動分片。
  • mirrorWebTurns:默認只推送微信發起的回合;如果設置爲 true,Web 發起的回合也會推送到微信。
  • streamLevel:可配置爲 minimal、normal、verbose。微信內也可以用 /level 覆蓋。資料中對默認值存在不一致表述,這裏不確認默認值;如果更關注發送額度,建議選擇 minimal。

發送限制與額度風險

騰訊 iLink 對單條入站消息的回覆發送有額度限制。

如果過程消息發送過多,尤其是 normal 或 verbose 下每個工具調用都推送一條,可能觸發:

sendMessage ret=-2 prepare failed

後續發送可能會被拒。因此,若不確定額度情況,優先選擇 minimal,只接收最終答覆與錯誤信息。

發送失敗時,關鍵消息會自動重試一次,並記錄到:

dataDir/logs/wechat-pro.log

數據與安全

使用前建議明確本地會保存哪些數據:

  • 憑證文件 weixin-auth.json 含 bot token,等於以該微信身份收發消息的憑據,不要外傳。
  • 聯繫人註冊表、媒體、日誌保存在 dataDir 對應目錄。
  • 發送失敗日誌位於 dataDir/logs/wechat-pro.log。
  • 控制路由 /api/dsh-wechat-pro/* 僅監聽迴環地址,LAN 暴露會被拒絕。

插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

建議保持 DSH 自身權限爲 workspace-write,並用 allowFrom 只放行自己的微信號。

本地測試

插件支持 mock iLink 本地測試和自動化測試,包括通道冒煙、harness 集成、真實模型 e2e。

先安裝依賴並構建:

pnpm install
pnpm run build

可以運行 mock iLink:

node tests/test-mock-ilink.mjs --port 8899

也可以運行通道冒煙測試:

node tests/channel-smoke.mjs

如果運行真實模型 e2e 測試,需要設置 DEEPSEEK_API_KEY,並會消耗少量配額。

結尾

dsh-wechat-pro 的價值在於把 DSH 的會話、工作區、模型切換、工具審批、文件收發等能力接到微信裏,同時保持與 Web 端共享真實 DSH 會話。它適合需要在消息入口中持續使用 DSH 的開發者。

目錄頁:https://www.skillhub.cn/plugins/bwhite55/dsh-wechat-pro

GitHub:https://github.com/bwhite55/dsh-wechat-pro

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

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

小夜