dsh-wechat-media:在微信与企业微信里驱动 DeepSeek Harness

前言

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,点击 添加账号(扫码) 开始配对。

配对步骤简述:

  1. 卡片展示二维码(过期自动刷新;误开可点 Cancel,不必等 5 分钟过期)
  2. 手机微信扫码并在手机上确认;若要求输入数字,在卡片中提交
  3. 账号行状态为 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"。

典型用法

  1. 完成安装与个人微信扫码(按需配置企业微信长连接)。
  2. 在微信或企业微信中直接向已配对账号/机器人发送消息;agent 正常回合结束后,桥接会把最终文本回传到 IM。
  3. 需要主动推送文件或跨会话发言时,在 dsh 会话里让 agent 调用 wechat_send_file / wecom_send_file 等;模型可读收件目录中的图片路径并结合 read_image。
  4. 生产使用前建议在卡片中打开「仅接受白名单会话」,并对联系人逐条 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye