前言¶
DeepSeek Harness(DSH)把 Agent 跑在本地或桌面宿主上,会话、工作区和工具链都在 harness 里完成。日常若人不在电脑前,常见做法是另开通知渠道或远程桌面——消息和审批往往和 DSH 界面脱节。微信几乎是国内最随手可用的 IM;若能把「派任务、看结果、点审批」收进私聊,就不必为 harness 单独守一块屏幕。
下面介绍社区插件 dsh-wechat(维护者 zgat):宿主侧 cordis 插件,通过 iLink / ClawBot 协议扫码绑定微信机器人,之后在微信里发消息驱动 DSH 会话,并接收回合结果与 approval/request、user-questions/request 类交互。插件归类为 客户端,零运行时依赖;当前 package 版本为 0.3.5,许可证 MIT。插件索引见 SkillHub 目录页,源码与操作说明见 GitHub 仓库。
这是什么¶
dsh-wechat 的定位可以概括为:把 DSH 当成后端,把微信当成一个可绑定的会话客户端。
绑定完成后,一个微信私聊会话对应一个 DSH 会话(持久化映射,重启后会 resume)。你在微信里发自然语言或斜杠命令,消息进入 harness;Agent 的最终回答由插件自动分段回微信,无需模型重复调用发送工具。审批、多选题等 harness 侧交互会转发到微信,你回「允许 / 拒绝 / 取消」或选项序号即可。
实现上它是 DSH 的 cordis 插件,并带 客户端半边:DSH 设置 → 微信 卡片里可看连接状态、内联二维码、多 bot 管理与错误日志入口。与「只在网页里聊 Agent」相比,差别在于渠道在微信、且强调扫码一次、本机存凭据(权限 0600),不依赖 appid/secret 那套公众号配置。
核心功能¶
以下能力均来自仓库 README 与 package.json 声明,按使用路径归纳。
绑定与连接¶
- 扫码绑定:终端执行
node bin/dsh-wechat.mjs login时二维码打印在终端;GUI 里可在设置页卡片查看 SVG 二维码(/dsh-wechat/api/qr)。 - 无人值守:可用环境变量
DSH_WECHAT_BOT_TOKEN等注入凭据(优先于凭据文件、不落盘)。未设置DSH_WECHAT_USER_ID时,凭据无明确所有者,白名单内联系人都可能具备所有者级能力——生产环境应显式指定所有者或收紧allowlist。 - 多 bot:同一插件实例可绑定多只 iLink 机器人;设置页「添加绑定」扫码新增,已有 bot 继续在线。会话键带 bot id,互不串线;回复始终走收到消息的那只 bot。
- 断线自愈:长轮询退避重试且不丢游标;
ret=-14时自动清凭据并需重新扫码;登录失败 60 秒重试。
消息与会话¶
- 收发:长轮询收私聊;出站默认约 1800 字/段(
chunkChars),失败退避重试。 - 媒体:入站图片、文件、语音、视频解密落盘后把路径交给 Agent;Agent 可用
wechat_send_file等工具把产物发回。 - 跟读
/listen:其它客户端(如 GUI)在同一会话跑完的回合可推到微信;该会话的审批与提问在微信与 GUI 两侧都能答。 - 渠道提示词:插件会在本会话里告诉模型「当前在微信」:最终回答会自动送达、交付文件用
wechat_send_file等,减少模型只写磁盘不推送的情况。
命令与工具(不耗模型额度)¶
斜杠命令在进 Agent 前处理。常用包括:/help、/new 开新会话、/session 切换工作区内的对话、/workspace / /model / /reasoning 切工作区与模型、/stop 停回合、/listen / /mute 跟读、/status 类信息可通过 /settings、/whoami 等查看。带 🔒 的如 /permission、/logout 仅 所有者 可用。完整命令表见 README。
Agent 侧工具:
| 工具 | 用途 |
|---|---|
wechat_send_text |
往当前微信会话发阶段性文本 |
wechat_send_file |
把本地文件作为图片/文件发回 |
wechat_chat_info |
查当前会话、DSH 会话、工作区、模型与运行状态 |
最终回答由插件自动回传;README 明确写模型 不需要也不应该 重复发送最终答案。
访问控制与错误日志¶
- 默认
accessPolicy: allowlist,配合allowedUserIds;open则接受任意发送者。 - 错误日志独立页:
/dsh-wechat/errors?t=<令牌>;微信内/errors(所有者)可看最近 10 条。默认保留 30 天、最多 300 条,一分钟内同类错误合并计数;可调errorLogDays/errorLogEntries。
兼容性与依赖¶
- DSH:README 徽章写 0.2.0-rc.2;
package.json中dsh.compatibility为>=0.2.0-rc.2 <0.3.0,并标注0.2.1-rc.2为 compatible。 - Node:
>=20。 - Profile:
package.json列出 desktop。 - 网络:需能访问
https://ilinkai.weixin.qq.com与https://novac2c.cdn.weixin.qq.com;微信号需具备微信 ClawBot / iLink 机器人能力。
安装与启用¶
安装包从 Releases 取 tarball,不要用 git clone,也不要凭仓库名拼接 dsh plugin add github:...(官方 README 未提供该方式)。
# 1) 从 Releases 取 tarball:https://github.com/zgat/dsh-wechat/releases
dsh plugin --profile desktop add ./dsh-wechat-<版本>.tgz # 例如 README 示例 0.1.41;以 Releases 为准
# 也可以走 GUI:设置 → 插件 → 安装,粘贴该 tgz 路径
# 2) 扫码绑定(二维码打印在终端)
node bin/dsh-wechat.mjs login
# 3) 在微信里给机器人发任意一句话,会收到上手引导(/help 看全部指令)
桌面端注意:dsh plugin 会转发给 Electron 宿主,App 正忙时可能中断(README 提到退出码 254)。稳妥做法是 先完全退出桌面端 再 CLI 安装,或改用 GUI 插件页安装。
配置写在 profile 的 $DSH_HOME/profiles/<profile>/cordis.patch.yml。README 提醒:patch 会整体替换 config,请写全要保留的键。示例:
- id: dsh-wechat
name: 'dsh-wechat'
config:
enabled: true
accessPolicy: allowlist
allowedUserIds: ['oABC123example@im.wechat']
workspace: /Users/me/projects/demo
progress: brief
配置改动热生效;升级已加载的插件代码需要重启。可用 dsh --profile <profile> --dump-config | grep -A3 dsh-wechat 在不启动时自检。
典型用法¶
第一次打通¶
- 满足 DSH、Node、网络与 iLink 机器人前置条件。
- 安装 tgz 并执行
node bin/dsh-wechat.mjs login(或在 设置 → 微信 扫码)。 - 在微信对机器人发任意一句,按引导使用;需要全量指令时发
/help。
移动办公式派活¶
在微信直接描述任务,等价于在该绑定的 DSH 会话里发用户消息。长任务时插件会展示「对方正在输入」与工具进度(progress: brief)。若你同时在 GUI 跑同一会话,可 /listen 把 GUI 侧完成的回合推到微信,审批两边都能回。
切换工作区与模型¶
发 /workspace 列出并切换项目目录(切换会结束当前会话);/model、/reasoning 对 下一个新会话 生效。/session 可在当前工作区内切换历史对话,并可选择是否把最近若干段回执到微信。
无人值守或 CI 旁路¶
在受控机器上导出 DSH_WECHAT_BOT_TOKEN 等变量,并 务必 设置 DSH_WECHAT_USER_ID 或严格白名单,避免「无所有者凭据」下所有人等同所有者。
适用场景与注意¶
适合谁
- 已用 DSH desktop profile,希望把 harness 会话延伸到微信私聊的人。
- 需要在手机上收 Agent 结果、答审批/提问,或临时
/stop、/new管控回合的人。 - 同一 harness 上要挂多只 iLink bot、分 bot 隔离会话的场景。
使用前请自行确认
- 插件在 当前 DSH 进程权限 下运行,可访问你配置的工作区与网络;安装前建议阅读源码与 MIT 许可证,理解凭据与媒体文件的落盘位置(默认
stateDir为$DSH_HOME/integrations/dsh-wechat)。 - 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本文事实以 zgat/dsh-wechat 仓库文档为准。
- 实现细节、队列语义、副作用清单分别在 docs/design.md、docs/side-effects.md;排错可看 README「故障排查」一节。
结尾¶
dsh-wechat 把 DSH 的会话、工作区切换、审批与跟读能力接到微信 iLink / ClawBot 通道:扫码绑定、本机凭据、设置页与 CLI 双入口,适合把 harness 当成「后台引擎」、把微信当成「随身客户端」的用法。