dsh-whale-wechat:把 DSH 陪伴角色接到微信裏

前言

在 DeepSeek Harness(DSH)裏搭好陪伴角色之後,常見做法是自己在終端或 Web 面板裏來回對話。微信仍是很多人日常聯繫的入口,但 DSH 本身不直接驅動微信客戶端。若希望角色能在私聊或羣聊裏讀消息、回消息,還要儘量不打斷你正在用的前臺窗口,就需要一條專門的客戶端適配層。

senumirai/dsh-whale-wechat(npm 包名 dsh-wechat-group)由 SenuMirai 維護,歸類爲客戶端插件。它從同系列的 dsh-whale-qq 拆出並改寫,記憶、人設、日記與 QQ 版獨立,不和 QQ 那套混用。下面介紹它的定位、能力與在 Windows 上的安裝啓用方式。

這是什麼

一句話:把 DSH 裏的陪伴角色接到真實微信客戶端,通過 UIA 與窗口消息收發消息,傳輸側經 shim 轉成 OneBot,插件本體仍走 DSH 的 Cordis 體系。

它是「DSH Whale 系」成員之一;與同前綴的 dsh-whale-world、dsh-whale-qq 等可單獨安裝,裝在一起時記憶等能力可經 world 中樞銜接。npm 包 id 沿用 dsh-wechat-group,與系列內其他插件靠 id 聯動,不宜隨意改名。

核心功能

以下能力均來自項目 README 的功能表與架構說明。

能力 說明
私聊 / 羣聊 一對一與羣內接話;羣聊默認先判斷「這條該不該我說話」
@ 人 @ + 暱稱,用備註名命中,選中後成爲真正的 @ 對象
引用回覆 被隔開回復時引用原消息,羣聊裏可見在回誰
連發多條 多條獨立發送並逐條覈對
發圖 / 表情包 本地圖片、微信表情、自建表情包目錄
發語音 TTS → 虛擬聲卡 → 微信「按住說話」,對方收到語音條
後臺發送 窗口消息打字與點按鈕,不搶前臺焦點
主動搭話 久未說話可主動找話頭;頻率、時段、冷卻可配
記憶 / 日記 / 人設 掛在 dsh-whale-world 記憶中樞;與 QQ 側獨立
一鍵啓動 插件設置裏「啓動」按鈕,拉起 shim、outbox、橋接並自動連接

README 同時標明:僅 Windows。UIA 驅動微信沒有跨平臺替代;微信大版本升級後橋接可能需等待適配更新。

架構概覽

三個進程相互獨立,任一掛掉不影響另外兩個;插件內可查看各段是否存活。

微信客戶端 (Weixin.exe)
   ↕  UIA / 窗口消息(不搶焦點)
橋接 bridge (whale_girl)      —— 讀寫數據庫、收發消息、TTS
   ↕  HTTP + OneBot WebSocket
shim (onebot 3101 / webhook 8790)
   ↕
dsh-wechat-group 插件

安裝與啓用

1. 安裝插件與 Python 依賴

先安裝插件本體,再爲橋接與 shim 準備 Python 3.12 環境與依賴(README 寫明 Windows + Python 3.12):

# 1. 插件本體
dsh plugin add dsh-wechat-group

# 2. Python 運行時(橋接和 shim 要用)
#    Windows + Python 3.12,裝依賴:
pip install -r requirements.txt

requirements.txt 隨插件/倉庫資源提供,在 README 所指目錄執行上述 pip install,勿憑包名自行拼湊安裝命令。

2. 在 DSH 裏接 OneBot 並啓動鏈路

在 DSH 設置中打開 微信 面板:

  1. 填寫 OneBot 地址(默認 ws://127.0.0.1:3101)
  2. 點擊「啓動」——拉起整條鏈路,首次可能彈出一次 UAC
  3. 面板顯示 link: online 表示已連接

README 強調:不要把 Python 運行時放在受管目錄(例如 C:\DSHwork 下的 python.exe 可能被降權,導致對微信 OpenProcess 失敗、UIA 樹無法物化、發送報 tree_not_ready)。宜使用如 C:\Program Files\Python312\python.exe 這類官方路徑。

配置說明

配置文件路徑爲 ~/.dsh/dsh-wechat-group/qq.json(沿用 QQ 版文件名)。README 列出的主要鍵如下:

鍵 含義
enabled 總開關
url OneBot WebSocket 地址
privates / groups 白名單:僅列出的會話會回覆
wechat.windowHwnd 微信主窗句柄,0 = 自動
wechat.backgroundSend 後臺發送(默認開)
wechat.accountGuard 認不出微信號時寧可不發
tts.* 語音合成網關與音色

插件還以 cordis.patch.yml 等形式參與 DSH 裝配;修改此類配置後需重啓 DSH 進程纔會生效(README 踩坑條目中明確說明)。

典型用法與鏈路行爲

經過上面的安裝與啓動步驟後,日常使用可以理解爲:

  1. 白名單內的私聊或羣聊出現新消息時,插件經 OneBot 收進 DSH,由陪伴角色生成回覆計劃。
  2. 需要 @ 或引用時,橋接按微信 UI 規則操作(備註名 @、引用條)。
  3. 文本、圖片、語音等經橋接發送;默認走後臺通道,儘量不奪走鍵鼠焦點。
  4. 若安裝了 dsh-whale-world,長期記憶與人設、日記經 world 中樞維護,與 QQ 插件數據分離。

多平臺同時使用時需注意 README 中的 outlet / ticket 說明:QQ 與微信不宜在 bridge 層互相廣播同一條 reply,應按平臺帶 ticket 調用世界橋,避免串臺。

適用場景與注意

適合誰

  • 已在 DSH 中配置陪伴角色或類似對話體,希望在微信私聊、羣聊中與同一角色交互的開發者或高級用戶。
  • 接受在 Windows 上運行微信 PC 版,並願意爲橋接進程配置 Python 與 OneBot 鏈路的環境。

使用前建議

  • DSH 插件以當前 DSH 進程權限運行;安裝前請閱讀倉庫源碼與 MIT 許可證,確認隱私與安全邊界(橋接會讀寫微信相關數據與 UI)。
  • 首次啓動涉及 UAC;之後「啓動」可走計劃任務,README 稱不再每次彈窗。
  • 社區目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本介紹事實均以對應該倉庫 README 爲準。

README 還記錄了受管目錄 Python、UIA 多線程、錯誤窗口句柄、應用商店式啓動命令等詳細排障條目,部署若遇 tree_not_ready、發送失敗或進程異常退出,應優先對照倉庫「踩過的坑」章節,而非重複試錯。

結尾

senumirai/dsh-whale-wechat(dsh-wechat-group)把 DSH 陪伴角色接到微信:支持 @、引用、語音與後臺發送,傳輸經 OneBot shim 與 DSH 插件銜接。完整說明與更新以 GitHub 爲準。

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

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

小夜