前言¶
DeepSeek Harness(dsh)把 agent 跑在本机或你控制的进程里,GUI 和终端好用,但日常协作往往还在 IM 里。自建 webhook、转发脚本可以打通,却要自己维护会话映射、媒体落盘和权限确认,和 dsh 自带的工具循环也容易脱节。
下面介绍社区插件 dsh-wechat-media(维护者 wjh-ux,分类为客户端):通过腾讯 iLink 通道扫码绑定个人微信,并在同一套会话机制上支持企业微信(含智能机器人长连接)。每个联系人或群对应独立 DSH 会话,文字与多种媒体双向互通;agent 还可经专用工具主动发消息或文件。插件归属 MIT 许可,当前 package 版本为 0.48.2(见 GitHub 仓库)。
这是什么¶
dsh-wechat-media 是面向 DeepSeek Harness 的 IM 桥接插件:个人侧扫一次二维码即可在微信里对话 agent;企业侧可配置群机器人 webhook、自建应用或智能机器人 API 长连接,其中长连接无需公网回调 URL,即可双向收发信息。状态、令牌、会话路由与白名单等持久化在 $DSH_HOME/dsh-wechat-media/(及收件目录等路径),重启 dsh 后一般无需重复扫码。
核心能力¶
个人微信¶
| 能力 | 说明 |
|---|---|
| 扫码配对 | 在插件卡片展示二维码;登录令牌存于 $DSH_HOME,重启 dsh 通常不必重扫;可一键重新配对 |
| 一会话一聊天 | 每个联系人、群自动创建或恢复独立 DSH 会话与上下文 |
| 双向文字与媒体 | 入站图片、视频、文档、压缩包解密到收件目录;出站由 agent 工具上传发送 |
| 多账号 | 可同时配对多个微信号,各自令牌、游标与会话映射 |
| 远程审批 | 需 GUI 确认的工具调用可推到同一微信会话,回复 1/同意 或 2/拒绝(默认超时 120 秒,超时回退 GUI) |
| 白名单与「仅好友私聊」 | 可按联系人/群 Allow/Ignore;可选仅处理 1:1 私聊并静默忽略群消息(默认关闭,避免升级后误伤) |
入站消息会带 [微信 <name> <wxid>] 前缀,便于 agent 在 wechat_send_text 等工具里指定 to;群 ID 形如 12345678@chatroom。
企业微信¶
企业微信与个人微信共用会话、白名单、审批与回复中继逻辑,出站有三条路径、入站主要靠长连接:
| 路径 | 配置来源 | 方向 |
|---|---|---|
| 群机器人 webhook | 群内「群机器人 → 添加」 | 出站:文本、markdown、图片 |
| 自建应用 | corpid、corpsecret、agentid | 出站:文本、markdown、图片、文件、语音、视频 |
| 智能机器人长连接 | BotID + Secret(API 模式 → 长连接) | 双向:收消息并在同会话回复 |
在 http://127.0.0.1:19387/dsh-wechat-media/wecom(插件卡片与控制面板亦有入口)填写配置并发送测试消息。长连接由插件连 wss://openws.work.weixin.qq.com,本地桥接不能依赖需公网 HTTPS 的回调 API。经机器人收到的图片、文件、视频会下载解密到与个人微信相同的收件目录,并给模型路径及 read_image 提示。
agent 额外工具包括 wecom_send_text、wecom_send_file;企业微信还支持 /delivery stream 逐字流式回复(个人微信无法编辑已发消息,故无同等预览)。
Agent 常用工具(个人微信)¶
| 工具 | 用途 |
|---|---|
wechat_send_text |
额外文本,或通过 to 发往其他会话 |
wechat_send_file |
发送本地文件(图片/视频按类型,其余为文件附件) |
wechat_status |
查看已配对账号与会话 |
环境要求¶
- dsh 0.2.0-rc.2 及以上,需标准 agent 循环与工具(
dsh web/ 桌面 profile 即可) - Node.js >= 22(README 注明 Node 24 已测),Windows / macOS / Linux
- 可扫码的个人微信账号;README 强烈建议用小号:个人微信自动化违反服务条款,存在封号风险
- 出站需访问
ilinkai.weixin.qq.com、novac2c.cdn.weixin.qq.com
安装与启用¶
从 GitHub 安装(须使用 README 原文命令,且指定 web profile):
dsh plugin --profile web add github:wjh-ux/dsh-wechat-media
若使用本地检出目录:
dsh plugin --profile web add link:/absolute/path/to/dsh-wechat-media
安装后重启 dsh,打开 插件 → dsh-wechat-media,点击 添加账号(扫码) 开始配对。
配对步骤简述:
- 卡片展示二维码(过期自动刷新;误开可点 Cancel,不必等 5 分钟过期)
- 手机微信扫码并在手机上确认;若要求输入数字,在卡片中提交
- 账号行状态为
monitoring表示长轮询已运行;不同微信号再次扫码即新增账号,同一账号扫码则刷新登录
企业微信在 /dsh-wechat-media/wecom 配置 webhook、自建应用或长连接机器人;敏感项写入 $DSH_HOME/dsh-wechat-media/wecom.json(权限 0600)。
收件目录与配置¶
默认入站媒体目录:
$DSH_HOME/wechat-inbox/<date>/<chat>/
可通过插件卡片、控制面板 /dsh-wechat-media/panel、系统文件夹选择器,或插件选项中的 inboxDir(绝对路径)修改;优先级为运行时偏好 → 配置 → 默认路径。相对路径会被拒绝。有效路径可通过 GET /dsh-wechat-media/state 的 inboxRoot 查看。
远程审批若只想留在 GUI,可在插件配置中设置 approval: "ignore"。
典型用法¶
- 完成安装与个人微信扫码(按需配置企业微信长连接)。
- 在微信或企业微信中直接向已配对账号/机器人发送消息;agent 正常回合结束后,桥接会把最终文本回传到 IM。
- 需要主动推送文件或跨会话发言时,在 dsh 会话里让 agent 调用
wechat_send_file/wecom_send_file等;模型可读收件目录中的图片路径并结合read_image。 - 生产使用前建议在卡片中打开「仅接受白名单会话」,并对联系人逐条 Allow;若只服务私聊,可启用「只处理好友私聊(1:1)」。
远程审批示例(消息会出现在当前 IM 会话,回复不会进入新回合):
⚠️ 需要你批准一次操作(远程审批)
工具:pwsh
原因:write outside the workspace
回 1 = 批准一次 · 回 2 = 拒绝
适用场景与注意¶
适合谁: 已在用 DeepSeek Harness、希望从微信或企业微信触发 agent、且能接受 IM 桥接运维与合规风险的开发者或小团队;企业侧适合已有智能机器人长连接或仅需 outbound webhook/自建应用通知的场景。
务必知晓:
- 插件以当前 dsh 进程的权限运行,可触达本机文件与 dsh 工具;安装前请阅读 源码与 MIT 许可证,并理解
$DSH_HOME下存储的令牌与wecom.json等敏感文件。 - 个人微信自动化存在封号可能;企业微信侧应使用官方支持的 API 模式,勿将 webhook 密钥提交到版本库。
- DeepSeek Harness 生态强调「一切皆插件」;SkillHub 目录页 为社区收录站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-wechat-media 把 dsh 的会话、工具与审批模型延伸到微信与企业微信:扫码即可个人侧双向媒体对话,企业侧可用长连接实现无公网回调的双向智能机器人。若你要在 IM 里复用同一套 agent 而非另写一套 bot 框架,可从官方安装命令与插件卡片配对起步。
- 目录页:https://www.skillhub.cn/plugins/wjh-ux/dsh-wechat-media
- GitHub:https://github.com/wjh-ux/dsh-wechat-media