前言¶
做 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_* 環境變量。
常見配置項包括:
autoConnectallowFromdataDirbaseUrlreplyMaxCharsstreamLevelmirrorWebTurnsreplyTimeoutMsannounceToAgent
其中幾個比較關鍵的點:
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