DeepSeek Harness(DSH)采用插件化架构。在运行多轮智能体会话时,任务可能会在后台停止(完成、出错、等待审批等),人工监控耗时且容易遗漏。dsh-message-push 是一个 Cordis 插件,用于在会话停止时将消息推送到 QQ、Telegram、飞书或微信等平台。
该插件由 DNAlec 维护,采用 MIT 许可证。它是一个纯粹的“推送层”,只负责通知,不参与审批决策或注入入站消息。同时,它为其他插件提供了 ctx.messagePush API,允许复用同一套渠道与去重逻辑。
安装与启用¶
安装该插件需要 pnpm 环境。安装后必须重启 dsh web,设置页面才会出现“消息推送”入口。
dsh plugin --profile web add github:DNAlec/dsh-message-push
核心功能¶
插件支持在以下场景触发推送:
- 任务完成
- 任务中断
- 任务阻塞
- 任务出错(附错误信息)
- 达到长度上限
- 需要审批
- 需要回答问题
每条推送会附带会话名、最后一段回复的预览以及“打开网页处理”的链接。插件内置去重机制,同一会话在同一时间窗口内的同类事件会合并为一条通知。
配置与使用¶
- 打开设置:进入 设置 → 消息推送。
- 连接渠道:至少要有一个渠道处于“已启用 + 已绑定目标 + 已连接”的状态。
- QQ:支持扫码创建机器人,或手动填写 AppID / AppSecret。
- Telegram:填写 Bot token。
- 飞书:填写开放平台 App ID / Secret。
- 微信:支持扫码登录(官方 iLink,仅私聊,建议专用小号)。
- 绑定目标:该插件设计为私人 bot。未绑定时,用手机私聊机器人回复
是或确认,该聊天即被设为推送目标。 - 发送测试:点击“发送测试推送”确认通道畅通。
其他插件可直接调用 ctx.messagePush API:
const push = ctx.get('messagePush');
push.notify({
kind: 'needs-approval',
sessionId: '...',
title: '修复推送插件',
body: '需要批准:删除 3 个文件'
});
架构与依赖¶
- 配置文件:位于
~/.dsh/message-push/(权限 0600)。 - 依赖项:
- 必需:
pnpm。 - 可选:
@tencent-connect/qqbot-connector:QQ 渠道依赖。@larksuiteoapi/node-sdk:飞书渠道依赖。qrcode:扫码功能依赖。
- 必需:
插件为纯 JS 实现,零 @deepseek-ai/* 依赖,仅使用 Cordis 的注入名(如 timer)与运行时自带的 fetch / WebSocket。
注意事项¶
- 推送层定位:插件只负责通知,不做决策、不在聊天里批复、不把入站消息注入 agent 会话。
- 私人 bot 设计:需要通过回复“是”来绑定推送目标,请勿将机器人放置在陌生人可私聊的环境中。QQ 群聊需 @ 机器人并在设置中填写发言人的 userId。