前言¶
在 DSH 里让智能体「代回微信」,常见做法是每轮对话里再调一层工具,检测、决策、发送都挤在 agent 轮次里,既占上下文,也难做稳定的轮询与限流。微信桌面版又是 Qt 自绘界面,UIA 树为空,靠无障碍读消息这条路基本走不通。
下面介绍的 dsh-super-wechat-bot(维护者 gautema8-hash)是 DSH 生态里的客户端类插件:用 PrintWindow 截图 + Windows OCR 读气泡文字,检测→决策→发送跑在独立桥进程里,不占 DSH 的 agent 轮次;在 DSH 会话里通过 wechat_* 工具启停、看草稿、批准发送。插件当前在 GitHub 上星标为 0,版本以发行包为准(资料中 package.json 为 0.2.1,MIT 许可证)。
这是什么¶
一句话:用主人本人口吻替你回微信桌面版,只在标题匹配的目标会话里工作,支持 draft(草稿人工批准)与 auto(自动发)两种模式。
- 读消息:PrintWindow + Windows OCR(绿色气泡
#95EC69判为自己,白/浅灰为对方;底色读不出则丢弃该行,不按位置猜) - 回复:预置短语约 1–1.5s 直达,模型生成约 2.5–4s(资料称 flash 首包约 1.5s);拟人延迟、连发合并、被催时快档等可配置
- 安全:会话标题校验、身份分级 T0–T3、连续升级停手、每分钟限流、全量审计
仅支持 Windows 10 / 11、微信桌面版 4.x(进程名默认 Weixin),DSH 版本要求 >= 0.2.1-rc.5 < 0.3.0-0,Node.js >= 20。
核心功能¶
独立桥与 DSH 工具¶
插件本体在 lib/index.js,暴露 9 个 wechat_* 工具并管理桥进程;常驻逻辑在 bridge/daemon.mjs,截图与 OCR、键鼠在 bridge/psagent.ps1(PowerShell + WinRT OCR)。
| 工具 | 作用 |
|---|---|
wechat_status |
模式/标题/统计/最近事件 |
wechat_start |
启动(draft 或 auto) |
wechat_stop |
停手 |
wechat_scan |
只读抓一屏 |
wechat_drafts |
草稿与升级待办 |
wechat_approve / wechat_reject |
批准发送 / 丢弃 |
wechat_send |
强制发一条(校验标题) |
wechat_config |
读写配置 |
设置与本地面板¶
装好后可在 DSH 设置 → 微信代聊 调整:会话与角色、节奏与拟人、限额与安全、话术、识别规则、预置短语、模型与密钥、自定义角色 JSON。保存前会经 bridge/validate.mjs 校验,坏正则、越界数值、空会话名不会写入运行时;会话名与微信窗口标题不一致时状态条会标红。
另有只监听 127.0.0.1 的面板:http://127.0.0.1:47821/,功能与设置页一致。
身份分级(内置策略)¶
| 级别 | 触发示例 | 动作 |
|---|---|---|
| T0 | 是不是机器人、你是谁啊、怎么秒回 | 固定话术 → 立即停手 |
| T1 | 咋这么怪、不对劲 | 「这会在忙」→ 转人工 |
| T2 | 钱/借/合同/验证码/约见等 | 「晚点细说」→ 转人工 |
| T3 | 普通闲聊 | 自动回 |
同一会话累计 2 次升级会强制改为 draft,不再自动发。角色预设(friend、teacher、engineer 等)还会附加禁区话术,避免代答报价、成绩、工期等敏感承诺。
已知限制¶
图片/视频/语音无法解析,只能处理文字气泡。OCR 依赖 Windows 中文语言包 zh-Hans-CN。发送需短暂占用前台(约 200–400ms)。微信不宜最小化到托盘;改版后布局比例可能在 bridge/psagent.ps1 的 $script:Cfg 里调整。
安装与启用¶
在 DSH 里安装发行包(推荐):
dsh plugin --profile web add https://github.com/gautema8-hash/dsh-super-wechat-bot/releases/latest/download/dsh-super-wechat-bot.tgz
或从 GitHub 源码安装:
dsh plugin --profile web add github:gautema8-hash/dsh-super-wechat-bot
装完重启 DSH,wechat_* 工具会出现在会话中。插件市场收录后也可在 设置 → 插件 → 市场 搜索安装。
配置文件默认路径:~/.dsh/dsh-super-wechat-bot/config.json(不存在会自动创建)。apiKey 留空时可复用 ~/.dsh/.credentials.yaml 中的 DEEPSEEK_API_KEY;默认模型为 deepseek-flash。maxRepliesPerMinute 默认 6,设为 0 即全停发,且不可被任何调用绕过。
安装前请自行查看仓库源码与 LICENSE,确认权限与合规;插件以当前 DSH 进程权限运行,会操作本机微信窗口与键盘输入。
典型用法¶
- 先在微信里打开目标会话(仅当窗口标题与会话名匹配时工作,防止发错人)。
- 调用
wechat_start,contact填标题中的昵称,mode选draft(默认)或auto。 - 用
wechat_drafts查看拟稿,wechat_approve发送或wechat_reject丢弃。 - 需要时用
wechat_stop停手。
更省事时可打开 http://127.0.0.1:47821/ 填会话名、切 draft/auto、逐条批准草稿。
离线自测(不碰微信、不联网):
node test/offline.test.mjs
适用场景与注意¶
适合需要在 Windows 上临时代聊单会话、又希望决策与限流脱离 agent 轮次的开发者或个人用户。不适合依赖 UIA、Hook 或官方 API 的集成方案;也不适合必须处理图片/语音消息的场景。
DeepSeek Harness 的理念是「一切皆插件」;SkillHub 目录页 是社区收录站点,与 DeepSeek / 幻方无官方从属关系。使用前请理解代聊风险:标题校验与 T0–T3 策略能降低误发与身份暴露,但不能替代人工判断。
链接¶
- 目录页:https://www.skillhub.cn/plugins/gautema8-hash/dsh-super-wechat-bot
- 仓库与 README:https://github.com/gautema8-hash/dsh-super-wechat-bot