dsh-wechat:把 DeepSeek Harness 接到微信里用

前言

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 在不启动时自检。

典型用法

第一次打通

  1. 满足 DSH、Node、网络与 iLink 机器人前置条件。
  2. 安装 tgz 并执行 node bin/dsh-wechat.mjs login(或在 设置 → 微信 扫码)。
  3. 在微信对机器人发任意一句,按引导使用;需要全量指令时发 /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 当成「后台引擎」、把微信当成「随身客户端」的用法。

羽毛球分组比赛记分
小程序二维码

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

小夜