前言¶
DeepSeek Harness (DSH) 采用插件化架构,旨在为各类智能体提供统一的开发与运行环境。开发者在使用 DSH 开发应用时,往往需要对接多种消息渠道。dsh-weixin 是一款基于腾讯 iLink Bot API 的渠道插件,它允许 DSH 直接通过个人微信收发消息,从而绕过复杂的第三方网关配置。
插件概览¶
该插件由维护者 5havv 开发,采用 MIT 许可证。它通过 npm 包的形式集成,与腾讯官方的 openclaw-weixin 及 Hermes 的微信适配器同源同协议。插件目前处于 v0.2 / M1–M4 阶段,实现了扫码登录、长轮询以及基本的消息收发能力。
核心功能¶
基于 iLink Bot API,该插件提供以下核心能力:
- 消息收发:支持文本、图片、文件、语音和视频的收发。入站媒体会自动下载解密并缓存,图片可直接交给视觉模型,语音会收到腾讯后端下发的转写文本。
- 独立会话:支持
per-peer模式,即每个联系人拥有独立的 agent/session,互不干扰。 - 工具调用:注册了
weixin_send工具,允许 agent 主动向特定联系人发送消息。 - 登录方式:支持终端扫码登录,无需公网地址或 WebSocket。
- 凭证复用:支持从 Hermes 导入同号凭证,避免重复扫码。
安装与启用¶
插件安装后,DSH 会加载两个独立的 Cordis 插件组件:weixin(负责渠道服务与工具)和 weixin-bridge(负责消息路由与编排)。
官方安装命令¶
dsh plugin --profile web add @5havv/dsh-weixin
开发期覆盖层(可选)¶
若需本地调试,可以使用覆盖层模式,但需先构建项目:
npm run build
dsh --profile web --patch ./examples/cordis.dev.yml
典型用法¶
安装完成后,可以通过 npm scripts 进行基础的连通性测试。
扫码登录¶
npm run smoke -- login
此命令会生成终端二维码,扫码后保存账号信息。
消息监听与收发¶
# 监听并打印入站消息(含媒体下载解密)
npm run smoke -- listen
# 向指定账号发送文本
npm run smoke -- send <accountId> <toUserId> 'hello'
# 发送本地文件
npm run smoke -- sendfile <accountId> <toUserId> ./photo.png '看图'
适用场景与注意事项¶
适用场景¶
- 私聊场景:该插件使用个人微信 / iLink bot 身份。多数账号类型无法接收普通微信群消息,仅私聊稳定可用。
系统限制¶
- 单实例:同一 token 同时只能有一个消费者在线。本插件使用文件锁机制保证这一点,若两个实例同时启动会报错。
- 会话刷新:若联系人长期未发消息,
context_token会失效。此时发送消息会自动降级重试,若仍失败需对方先发一条消息激活会话。 - 运行环境:插件依赖 Node.js 环境,要求版本 >= 22。
安全说明¶
插件注册的 weixin_send 工具允许模型调用本地文件路径。为防止数据外泄,该路径被限制在 mediaSendRoots 白名单内。默认值为进程工作目录和媒体缓存目录。若微信号可能收到不可信消息,建议将其收窄至专用目录。
总结¶
dsh-weixin 为 DSH 生态提供了原生的微信连接能力,适合需要在微信环境中运行 DSH 智能体的开发者。通过扫码登录和工具集成,它可以快速搭建起基于微信的自动化服务。