前言¶
在 DSH(DeepSeek Harness)里跑智能体时,常见做法是用桌面或 Web 界面收发消息。若希望用手机微信当作同一套 Harness 的入口——发一条微信就进 DSH 会话,Harness 的回复、图片和文件再回到微信——需要一条稳定的「微信通道」,还要能在设置里管理登录状态,而不是每台机器手写路径和凭证。
下面介绍社区插件 dsh-weixin-plus(维护者 liushQAQ),它在 DSH 里做微信通道的全功能增强:基于 iLink 的双向桥接、单实例锁、大文件与大图投递,并在 DSH 设置中心嵌入「微信通道」管理面板。插件归类为客户端,在 SkillHub 插件目录 可查到条目;目录站为社区生态站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-weixin-plus 的定位是:把手机微信变成 DSH 的一个消息入口,并在 DSH 设置中心提供完整的「微信通道」管理界面。README 强调通用版思路——工作目录、模型、凭证走 DSH 运行时(~/.dsh)与可选配置项,不含机器专有路径,便于跨机器装完即用。
当前 README 与 package.json 记载版本为 1.0.8(2026-10-21),许可证 MIT。
核心功能¶
以下能力均来自仓库 README,按模块说明。
双向消息与媒体¶
- 文本、图片、文件在微信与 DSH 之间双向传输;入站媒体可归档到可配置目录(缺省
<DSH_HOME>/weixin-inbox)。 - 微信端文字选项提问:需要用户选择时,以 A/B/C 文字选项下发(微信端看不到交互卡片),并把回复解析回选项。
Web 设置与管理面板¶
客户端前端挂载在 DSH 设置中心的「微信通道」标签页,支持:
- 实时探测连通性与 Token 有效期(过期即时预警);
- 一键重新扫码登录(动态渲染二维码);
- 一键断开连接并安全清理本地凭证。
双通道通讯(免 403)¶
设置面板与宿主通信时:
- 首选 Cordis
connection.rpc通道,路径/dsh-weixin-plus,减轻 Electron / 浏览器模式下的安全拦截与鉴权问题; - 失败自动回退到独立 HTTP 路由
/dsh-weixin-plus-http/<action>(与 RPC 前缀分离,互不抢占)。HTTP 侧 action 包括status、qrcode、login、logout、cancel-scan等。
单实例选举锁¶
多宿主(例如 GUI 与后台无头服务)同时运行时,通过 ilink-owner.lock 只允许一个实例消费消息,避免游标竞争与丢消息。
大文件与大图投递¶
- filepush17:超过微信体积限制的本地文件先安全暂存再投递。
- filepush18(v1.0.5 起):出站图片 ≤2MB 走图片气泡直显;>2MB 自动走微信原图文件通道,在保留原始像素的前提下规避微信 CDN 500;加载时带自愈热补丁增强底层 SDK。
环境要求¶
安装前确认宿主满足 README 约定:
- DSH ≥ 0.1.0(需含 Cordis 加载器,且宿主提供
connection/webServer服务); - Node.js ≥ 20;
- 运行依赖由 npm 安装:
weixin-agent-sdk@^0.3.0、qrcode@^1.5.4(peer:@deepseek-ai/cordis >= 4.0.0)。
安装与启用¶
官方推荐在 profile bundle 中安装,而不是凭插件名拼接未在文档出现的 CLI 命令。
1. 在 profile 目录安装包¶
在 ~/.dsh/profiles/<你的 profile> 下执行:
npm i github:liushQAQ/dsh-weixin-plus
# 或使用 Release 附件:npm i ./dsh-weixin-plus-<version>.tgz
2. 加入 profile 的 bundle 列表¶
编辑该 profile 的 package.json:
{
"dependencies": { "dsh-weixin-plus": "github:liushQAQ/dsh-weixin-plus" },
"dsh": { "profile": { "bundles": ["...", "dsh-weixin-plus"] } }
}
插件自带 cordis.patch.yml(由 package.json 的 dsh.bundle.patch 指向),加载器据此挂载入口 weixin-plus。
3. 重启或热重载¶
重启 DSH(或触发加载器热重载)后,设置中心应出现「微信通道」。
开发场景下也可将仓库以
link:链入 profile,并用内容哈希文件名(p1.js → p2.js → …)做免重启热挂载——宿主按 URL 缓存 ESM 模块,原地改文件内容不会生效,须换文件名。
可选配置¶
| 键 | 说明 |
|---|---|
cwd |
agent 工作目录(缺省取已有工作区) |
provider / model |
覆盖默认 provider 路由与模型 |
inboxDir |
入站媒体归档目录(缺省 <DSH_HOME>/weixin-inbox) |
典型用法(管理面板与接口)¶
日常使用以 DSH 设置中心「微信通道」为主:查看状态与 Token、扫码登录、断开并清理凭证。
若需在宿主内直接调用,README 给出两类入口:
| 通道 | 路径 | 说明 |
|---|---|---|
| RPC | /dsh-weixin-plus |
客户端首选;connection.rpc.call |
| HTTP 回退 | /dsh-weixin-plus-http/<action> |
POST/GET |
消息与会话侧:在微信发消息进入 DSH 会话;从 DSH 侧回复、发图、发文件会回到微信。大图、超大文件由插件内部分流与暂存逻辑处理,无需在微信侧单独配置。
适用场景与注意¶
适合谁:已在用 DSH ≥ 0.1.0、希望用手机微信作为 Harness 入口的开发者;需要 GUI 里统一管理微信登录与连通性的场景;多进程/多宿主部署且担心重复消费 iLink 消息的环境。
务必注意:
- 插件以当前 DSH 进程权限运行,安装前请阅读 GitHub 源码 与 MIT 许可证,自行评估凭证与消息数据落盘位置(含
inboxDir与~/.dsh)。 - 微信通道依赖
weixin-agent-sdk与 iLink 轮询等实现,行为以仓库index.js(宿主逻辑)与client.js(设置页前端)为准。 - 社区目录页的星标等统计可能变动,以你访问时页面显示为准;功能与安装步骤以 README 为准。
结尾¶
dsh-weixin-plus 把微信双向桥接、单实例锁、大文件/大图投递和设置中心管理面板收进一个 DSH bundle,适合要把微信当作 DSH 入口、又希望少写机器相关配置的用法。