前言¶
在 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 体系。
- 仓库:https://github.com/SenuMirai/dsh-whale-wechat
- 目录页:https://www.skillhub.cn/plugins/SenuMirai/dsh-whale-wechat
- 许可证:MIT(README 标明)
它是「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 设置中打开 微信 面板:
- 填写 OneBot 地址(默认
ws://127.0.0.1:3101) - 点击「启动」——拉起整条链路,首次可能弹出一次 UAC
- 面板显示
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 踩坑条目中明确说明)。
典型用法与链路行为¶
经过上面的安装与启动步骤后,日常使用可以理解为:
- 白名单内的私聊或群聊出现新消息时,插件经 OneBot 收进 DSH,由陪伴角色生成回复计划。
- 需要 @ 或引用时,桥接按微信 UI 规则操作(备注名 @、引用条)。
- 文本、图片、语音等经桥接发送;默认走后台通道,尽量不夺走键鼠焦点。
- 若安装了
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 为准。