DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-wechat-queue

Wechat Queue

带有持久化串行消息队列的 WeChat (iLink) DeepSeek Harness 渠道

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-wechat-queue@0.2.1
README兼容性版本

兼容性与来源证明

Wechat Queue 以 dsh-wechat-queue 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/27

版本

0.2.1stable
2026/10/27
0.2.0stable
2026/10/26
0.1.0stable
2026/10/21

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
257.4 kB
文件数
24
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
0
最近提交
2026/10/27
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-wechat-queue

在微信里和你的 AI 助手聊天。

发文字、发图、发文件、发视频,它在微信里回你。 一条回完才处理下一条,进程死了重启接着干 —— 你的消息不会丢。

Talk to your AI agent from WeChat. Text, images, files and videos in; one reply per turn out; messages survive a restart.

把微信接入 DeepSeek Harness —— 带一个落盘的串行消息队列。 A WeChat (iLink) channel for DeepSeek Harness with a durable serial message queue.


0.2.1 更新了什么

插件行为没有变化。这次只补了开源清单要的三个仓库文件:SECURITY.md、Dependabot 配置、 package-lock.json。代码没动。

它替你挡住的三种意外

你在微信发消息
     ↓
立即写盘(JSONL)      ← ① 进程此刻被杀,消息还在
     ↓
排队,严格串行          ← ② 不会两条消息抢着跑、回复交错
     ↓
跑完这一轮             ← ③ 中途的中间片段不外发,只回最终结果
     ↓
把完整回复发给你
意外会发生什么
进程崩了 / 你重启了电脑重启后从磁盘恢复,没处理完的消息接着跑
你连发三条按顺序一条条处理,不会乱序、不会回复串台
这一轮跑了三分钟中间不刷屏,跑完一次性给你结果

三十秒上手

npx -p @deepseek-ai/dsh dsh plugin --profile web add github:SteelUnion/dsh-wechat-queue

装完重启 DSH,在插件页点登录、手机扫码,就能在微信里找它说话了。


它替你省什么

你担心的实际情况
消息会不会丢不会。 每条消息一进来就写盘,进程被杀也没关系
会不会回一半停住不会。 攒到这一轮跑完,一次发完整回复
会不会和别的消息插队不会。 严格串行,一条处理完才拿下一条
手机能不能收到选项弹窗不能。 微信是回合制通道,所以本插件配合 dsh-confirm-gate 会自动改用文字提问

它解决什么(对比老插件)

用微信和你的 DSH agent 对话:发文字、发图、发文件、发视频,它在微信里回你。 一条回完才处理下一条,进程死了重启接着干。


English

A WeChat channel plugin for DeepSeek Harness. Messages are persisted to disk and processed strictly one at a time — the next message is only picked up after the previous turn has finished and been replied to. 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 (it polled with the oldest stale bot credential), mid-turn replies (it sent every assistant/message fragment), and deadlocks (no timeout, silent catch {}).


它解决什么

问题老插件本插件
收不到listAccounts()[0] 取最旧的僵尸账号登录时清空旧记录,永远只有一个
中途发每个 assistant/message 都发一段攒到 turn/end,一次发完
卡死runExclusive 无超时 + catch {} 静默三层超时,任何终态都推进队列

功能

  • 严格串行:一条回完才取下一条,不会在 inbox 里堆成多个 turn
  • 落盘队列:JSONL 存盘,进程死了重启接着处理
  • 对方正在输入:轮次开始上报,结束收掉;它坏了不影响主流程
  • DSH 原生命令转发:/compact、/goal 等进队列执行,与普通消息同序
  • 接收图片 / 文件 / 视频:失败不丢文字,只在那条附件上留一句说明
  • 发送文件:回复里提到 deliverables/ 下的文件就会发过去
  • 附件声明:告诉 agent 附件的名字、大小、uid,它不用翻目录猜
  • 扫码登录面板:单账号,登录时清空旧记录

安装

dsh plugin --profile desktop add <解压后的目录>

装完完全退出 DSH 再启动,宿主才能发现插件。

首次使用需要在 GUI 插件页扫码登录,或者用环境变量临时登录:

$env:DSH_WECHAT_QUEUE_TOKEN = "<accountId>:<token>"

配置

- id: wechat-queue
  config:
    enabled: true

    # 会话工作目录。决定微信那边读到的是谁的人格。
    cwd: 'C:\path\to\your\workspace'

    # 权限:管「能不能碰文件」
    permission: 'danger-full-access'

    # Agent 预设:管「有没有工具可用」
    agentPreset: 'cordis'

    deliverTimeoutMs: 600000
    turnTimeoutMs: 600000
    queueAckText: ''

⚠️ permission 和 agentPreset 是两件事

配了什么结果
只给 permission权限全开,但 agent 一个工具都没有
两个都给权限全开 + 工具齐全

只给 permission 时,agent 会说「我没有工具,请你手动跑这条命令」,而且它说的是实话。

agentPreset 不要留空串 —— 空串会回落到 profile 的默认预设,不一定是你在用的那个。


微信内命令

命令作用
/stop中止当前这一轮(写标记,不会卡住)
/status队列状态
/new开一段新对话
/help帮助,含 DSH 原生命令列表

其他 /xxx 如果 DSH 认识,会进队列在轮到时执行。


发文件给微信

把文件放进 <cwd>/deliverables/,然后在回复里提到它。

<你的工作区>/
└─ deliverables/
    └─ 报告.pdf          ← 放这里,提到就会发

只有 deliverables/ 下的文件才会被自动发送。

不加这个限制的话,模型说「我读了 SOUL.md、USER.md」就会把那些文件也发出去 —— 列举路径不等于要发文件。


数据在哪

内容位置
队列记录<DSH_HOME>/wechat-queue/queue-YYYY-MM-DD.jsonl
运行日志<DSH_HOME>/wechat-queue/wechat-queue-YYYY-MM-DD.log
轮询游标<DSH_HOME>/wechat-queue/cursor.txt
启动错误<DSH_HOME>/wechat-queue/startup-error.txt
账号凭证.credentials.yaml 的 wechat-queue/account

排查先看运行日志。 GUI 启动没有终端,console.error 的输出没人看得见。


消息状态

received → queued → delivered → running → replied
                                     ├→ failed   (带 stage + error)
                                     ├→ timeout  (带 stage)
                                     └→ stopped  (被 /stop)

任何终态都会让队列推进到下一条。 这是「永不堵死」的来源。


测试

node test/zz-all.mjs

548 项,18 个套件,0 失败。

覆盖:串行与超时、状态机、JSONL 存储、四种媒体(图片/文件/视频/语音)、 文件发送与上传、预设挂载契约、事件竞态、扫码登录。


打包

node pack.mjs           # 输出 dist/dsh-wechat-queue-v<version>.zip
node pack.mjs --list    # 只列清单

零运行时依赖。 peerDependencies 只声明 @deepseek-ai/cordis, DSH 本体版本要求写在 engines.dsh。


技术要点

为什么不用 ctx.get() 做软探测:它不是软探测,用到的服务必须写进 inject,否则直接抛。

为什么 agentPresets.resolve() 必须 await:它是 async 的。不 await 会拿到一个 Promise, preset?.id 永远是 undefined,于是预设从未挂载 —— 这就是「权限全开但一个工具都没有」的原因。

为什么媒体要「先下载完再入队」:worker 是独立循环,enqueue 一完成它就可能取走交付。 图片几十毫秒赶得上,视频几秒就赶不上 —— 附件会丢掉,而且队列记录看起来一切正常。

这些坑和更多细节都在 NOTES.md。


来源声明

协议层(lib/protocol/)搬自 dsh-channel-wechat v0.2.5(MIT)。 lib/protocol/qrcode.js 是 vendored 的 qrcode-generator 2.0.4(MIT)。

详见 THIRD_PARTY_NOTICES.md。

队列层、worker、桥接层、命令转发、typing 指示器、媒体处理是本插件自己的实现。

许可

MIT。全文见 LICENSE。

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rRemote Bridge@linxin666/dsh-remote-bridgeDSH 远程桥接:主机端通过唯一且精确的 /ios/v1 WebSocket 路由提供协议 v1——会话列表、历史记录基线、提示、包含工具活动的实时回合增量、中断以及进程内代理审批——连接到通过一次性配对的设备Ds Botds-botDS Bot:DeepSeek Harness 的一组长期运行的 Bot,支持主 Bot、Bot 间消息和群聊Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。