Repository navigation
v0.1.0 首个可用版本
dsh-wechat-queue v0.1.0
把微信接入 DeepSeek Harness —— 带一个落盘的串行消息队列。
用微信和你的 DSH agent 对话:发文字、发图、发文件、发视频,它在微信里回你。
一条回完才处理下一条,进程死了重启接着干。
English
A WeChat (iLink) channel plugin for DeepSeek Harness. Messages are persisted to disk
and processed strictly one at a time. The agent replies once per turn (at turn/end),
shows a native "typing" indicator, and can receive images, files and videos.
Built to replace dsh-channel-wechat, which had three structural problems:
missed messages, mid-turn replies, and deadlocks.
它解决什么
| 问题 | 老插件 | 本插件 |
|---|---|---|
| 收不到 | listAccounts()[0] 取最旧的僵尸账号 |
登录时清空旧记录,永远只有一个 |
| 中途发 | 每个 assistant/message 都发一段 |
攒到 turn/end,一次发完 |
| 卡死 | runExclusive 无超时 + catch {} 静默 |
三层超时,任何终态都推进队列 |
功能
- 严格串行 — 一条回完才取下一条
- 落盘队列 — JSONL 存盘,进程死了重启接着处理
- 对方正在输入 — 轮次开始上报,结束收掉;坏了不影响主流程
- DSH 原生命令转发 —
/compact、/goal等进队列执行,与普通消息同序 - 接收图片 / 文件 / 视频 — 失败不丢文字
- 发送文件 — 回复里提到
deliverables/下的文件就会发过去 - 附件声明 — 告诉 agent 附件的名字、大小、uid,它不用翻目录猜
- 扫码登录面板 — 单账号
安装
dsh plugin --profile desktop add <解压后的目录>装完完全退出 DSH 再启动。
配置要点
- id: wechat-queue
config:
enabled: true
cwd: 'C:\path\to\your\workspace'
permission: 'danger-full-access' # 管「能不能碰文件」
agentPreset: 'cordis' # 管「有没有工具可用」⚠️ permission 和 agentPreset 是两件事
只给 permission 不给 agentPreset,结果是权限全开、工具一个没有。
agent 会说「我没有工具,请你手动跑这条命令」—— 它说的是实话。
发文件给微信
把文件放进 <cwd>/deliverables/,然后在回复里提到它。
只有这个目录下的文件才会被自动发送 —— 否则模型说「我读了 SOUL.md」就会把人格文件发出去。
列举路径不等于要发文件。
测试
548 项,18 个套件,0 失败。覆盖串行与超时、状态机、JSONL 存储、
四种媒体、文件发送与上传、预设挂载契约、事件竞态、扫码登录。
零运行时依赖
peerDependencies 只声明 @deepseek-ai/cordis,DSH 本体版本要求写在 engines.dsh。
来源
协议层搬自 dsh-channel-wechat v0.2.5(MIT)。
lib/protocol/qrcode.js 是 vendored 的 qrcode-generator 2.0.4(MIT)。
详见 THIRD_PARTY_NOTICES.md。
许可
MIT。