前言¶
在 DSH 里跑微信相关 agent 时,常见做法是接 WeChatAgent 桥接做收发。若只希望 agent 在群聊或私聊里发「微信原生表情」、而不是外链图或纯文字,还要让表情随会话自动沉淀、多会话共用,就需要在桥接之上再挂一层:候选池、打标、发送工具与安全边界。下面介绍社区插件 dsh-wechat-send(维护者 mikunkol-hub),它面向上述场景,把收集、标签、共享池与受控发送串成一条链路。
这是什么¶
dsh-wechat-send 是 DeepSeek Harness 的客户端类插件(当前 package 版本 0.2.0,许可证 MIT)。一句话定位:让 DSH agent 向微信会话(群/私聊)发送原生表情包,并自动收集、学习、共享表情。
与「只转发桥接能力」不同,本插件提供两个模型工具(wechat_sticker_pool、wechat_send_sticker),由插件驱动收集(绕过 WeChatAgent 的自动收集):桥接只通知新表情,本插件拉图、复用标签、导入共享池;账号级共享表情池上限 50 张,满池由 DS 看图评选保留;关键配置内置安全基线,被改会自动纠正。
目录页:https://www.skillhub.cn/plugins/mikunkol-hub/dsh-wechat-send
源码:https://github.com/mikunkol-hub/dsh-wechat-send
核心功能¶
两个模型工具¶
| 工具 | 说明 |
|---|---|
wechat_sticker_pool |
列出某会话可发送的共享池表情候选(id + 描述 + 标签,最多 20 张) |
wechat_send_sticker |
发送一张原生表情(dry=true 只预演;缺省真发,走桥接持久队列与送达确认) |
收集与学习¶
- 插件驱动收集:微信收到表情后,WeChatAgent 桥接在白名单校验后只向
127.0.0.1:11232/collect发通知(不处理字节);本插件通过 reader 拉图,查已有标签或调用 GLM-4V-Flash 主动打标(描述 + 情绪/用途标签),再导入共享池。 - 标签双通道:插件收集时的 GLM 打标,与会话里顺带学习的标签,复用同一标签库。
- 满池评选:池上限 50 张;满池时由 DS 看图评选保留(预览拼图 + 标签 + 使用次数)。池存储默认在 WeChatAgent 侧(README 示例路径
E:\Deep Seek\表情池,可通过poolDir配置)。
发送链路¶
agent 先用 wechat_sticker_pool 看候选,再用 wechat_send_sticker 选定 id;请求经桥接 127.0.0.1:11231/send-sticker,经白名单、发送开关、限额与 MediaOutbox 持久队列后送达微信会话。发送 id 必须来自 wechat_sticker_pool;文档约定先 dry 预演再真发。
配置防篡改¶
cordis.patch.yml 中关键项带内置基线:被修改会自动备份恢复;白名单 allowedKeys 只可增不可删,运行时兜底。
安装与启用¶
官方 README 未提供 dsh plugin add github:... 一类命令,安装方式为 link 进 profile:
- 在 profile 的
node_modules建立 junction,并在package.json的dependencies增加:
"dsh-wechat-send": "link:<本目录绝对路径>"
- 在
dsh.profile.bundles中加入"dsh-wechat-send"。 - 重启 DSH,使 bundle 组装生效。
插件以当前 DSH 进程权限运行;安装前应自行阅读仓库源码与 MIT 许可证,确认 token、白名单与发送行为符合你的环境。
配置要点(cordis.patch.yml)¶
| 键 | 缺省 | 说明 |
|---|---|---|
bridgeUrl |
http://127.0.0.1:11231 |
桥接受控发送端点 |
tokenFile |
D:/WeChatAgent/data/workspace/state/social-dsh-token.txt |
桥接鉴权 token(与 DSH 侧插件共用) |
timeoutMs |
15000 |
单次 HTTP 超时 |
readerUrl |
http://127.0.0.1:5031 |
WeChatAgent reader 服务(拉图 / 导入共享池) |
readerTokenFile |
D:/WeChatAgent/data/workspace/state/wechat-io-config.json |
reader 鉴权(读其中的 reader_token) |
collectPort |
11232 |
本插件收集通知监听端口(仅回环) |
allowedKeys |
好友与群白名单 | 允许发送与收集的会话(基线条目不可被移除) |
缺省路径带 Windows 盘符,Linux 部署时需按本机 WeChatAgent 实际路径改写。
典型用法(agent 侧)¶
- 对目标会话调用
wechat_sticker_pool,拿到 id、描述与标签(最多 20 条候选)。 - 选定一张后调用
wechat_send_sticker,建议先设dry=true预演,确认无误后再真发。 - 日常在微信白名单会话里收发的原生表情,会经 collect 通知进入共享池;无标签时由 GLM-4V-Flash 补标,满 50 张时触发 DS 评选。
整体数据流可参考 README 中的链路说明:收表情 → collect 通知 → 拉图打标入池;agent 发图 → 池候选 → send-sticker → 桥接队列 → 微信。
适用场景与注意¶
适合:已在用 WeChatAgent + DSH,希望 agent 用「共享表情池」回复群/私聊,并愿意维护白名单、桥接 token 与 reader 服务。
注意:
- 收集端点只监听回环地址,只收白名单会话,串行处理并去重;发送是真实对外动作,务必遵守 dry 再发的约定。
- 依赖
@deepseek-ai/dsh-tools(peerDependencies),以及 GLM-4V-Flash 打标、满池 DS 评选等模型能力,需保证 DSH 侧模型与密钥配置可用。 - SkillHub 目录为社区索引,与 DeepSeek / 幻方无官方从属关系;星标与版本以仓库与目录页为准。
结尾¶
dsh-wechat-send 把微信原生表情的收集、GLM/会话双通道标签、50 张共享池与 DS 满池评选,封装成 agent 可直接调用的两个工具,并在配置与白名单上做了防篡改基线。若你要在 DSH 里做「会发表情、池子越用越贴会话」的微信 agent,可从目录页与 GitHub README 对照安装与 cordis.patch.yml 逐项落地。