前言¶
DeepSeek Harness (DSH) 的生态以插件化为核心。如果你需要在 DSH 中接入微信消息,官方的 ClawBot(iLink)协议是标准途径。现有的集成方式往往依赖 SDK 或需要自行处理复杂的 Token 保存逻辑。下面介绍 yauntyour/dsh-wx-msg-tool,它封装了扫码登录、Token 管理与消息收发的全流程,让 DSH 能够直接通过 HTTP/JSON 协议收发微信消息。
插件简介¶
这是一个基于腾讯官方微信 ClawBot(iLink)API 的 DSH 插件。它通过设置页提供扫码登录功能,登录态自动保存至本地文件,并提供了 wx_login、wx_send、wx_poll、wx_status 四个工具,支持后台自动长轮询与自动会话回复。
核心功能¶
设置页扫码登录与 Token 管理¶
在 DSH Web 端设置页找到「微信消息」页,点击「扫码登录」。插件会在浏览器本地绘制二维码,手机确认后,api-token 会自动保存至 <DSH_HOME>/plugins/wx-msg-tool/state.json(仅存本机,浏览器无法获取)。该插件自带 HTTP 通道与宿主通信,绕过了官方设置页对第三方插件的限制。
工具集¶
插件提供四个核心工具,通过 DSH 的命令行或 API 调用:
wx_login:发起扫码登录(qrcode子命令)、查询登录态(status)、退出并清除 token(logout)。wx_send:发送文本消息。to与context_token参数需从wx_poll返回的消息中获取,以关联会话。wx_poll:收取消息。当设置页关闭自动轮询时,该工具可直连服务器进行长轮询;开启时则读取后台监控的收件箱。wx_status:查询通道状态,包括登录态、Token 存在性、监控状态以及收件箱条数。
后台自动长轮询¶
在设置页开启自动轮询后,DSH 宿主进程会持续长轮询微信服务器,并将消息暂存到 inbox.jsonl 文件,供后续读取。当遇到会话过期(errcode -14)时,轮询会自动停止并提示重新登录。
自动会话回复¶
在设置页开启「收到消息自动触发 DSH 会话回复」后,每条微信消息将驱动一轮真实的 DSH 会话。系统会为每个用户维护一个持久会话(记录在 chats.json,重启后可恢复),用默认模型跑完一轮后自动将回复发回微信。注意此功能会消耗模型调用次数。
Headless 兼容¶
插件支持 Headless 模式。在 Web 端登录后 Token 已落盘,Headless profile 可直接复用。或者通过环境变量 WX_MSG_API_TOKEN、WX_MSG_BASE_URL 和 WX_MSG_AUTO_POLL=1 来覆盖配置。
安装与启用¶
1. 构建并安装¶
首先进入插件目录,构建并打包插件:
cd DSH-WX-Msg-Tool
npm install --ignore-scripts
npm run build
npm pack
构建完成后,将生成的 .tgz 文件挂载到 DSH Web Profile:
dsh plugin --profile web add "D:/Developments/Workspace/DSH-WX-Msg-Tool/deepseek-ai-dsh-wx-msg-tool-1.1.0.tgz"
2. 重启服务¶
挂载插件后,需重启 dsh web 命令使配置生效。
典型用法¶
登录与状态检查¶
# 发起扫码登录
wx_login qrcode
# 查询当前登录状态
wx_status
消息收发¶
# 收取消息
wx_poll
# 发送文本消息(需配合 wx_poll 返回的上下文)
wx_send text="Hello" to="user_id"
注意事项¶
- 协议与风险:基于 HTTP/JSON 协议,无 SDK 依赖、无 Hook、无封号风险。使用前请阅读并遵守《微信ClawBot功能使用条款》。
- 会话限制:iLink 协议限制,Bot 无法给没有会话的用户发首条消息(需对方先发一条消息)。
- 资源消耗:自动会话回复会消耗模型调用。
- 错误处理:会话过期(errcode -14)时会自动停轮询并提示重新登录。
结尾¶
该插件通过官方 API 提供了稳定的微信接入能力,适合需要在 DSH 中构建微信自动化或客服机器人的场景。源码与目录页见下方链接。