前言¶
在 DeepSeek Harness(DSH)里跑长任务时,窗口切到后台或最小化后,往往只能靠偶尔切回界面才知道 Agent 是否结束。浏览器里用 alert 或页面内提示,既打断操作,横幅归属也是网页或浏览器,而不是 DSH 本身。
社区插件 dsh-plugin-system-notify(维护者 DRheEheAMGary,分类:客户端)把「发系统级桌面通知」做成 Agent 可调用的工具:Harness 在服务端注册 system_notify,有 DSH 页面在线时由客户端用 Web Notification API 弹出通知;在 macOS、Windows 上实测时,通知身份来自 DSH 而非随机标签页。本文按 README 与 package 信息说明其定位、架构、安装与用法。
这是什么¶
dsh-plugin-system-notify 是面向 DeepSeek Harness 的 bundle 插件,版本 0.1.0,MIT 许可证,要求 Node >= 20。一句话:让 AI 调用工具向用户发送原生桌面通知(macOS 通知中心、Windows Toast、Linux 桌面提醒),且由 Harness 侧发起投递链路,尽量让横幅带上 DSH 身份。
插件不在仓库里写各平台专用代码,而是走标准 Web Notification API,由各平台运行时翻译成本地通知。
架构:Host 与 Client 的长轮询协作¶
README 将实现拆成两半,通过一条长轮询路由配合:
- Host(
index.js):注册工具,把通知请求放进收件箱,并暴露GET /api/system-notify/inbox。 - Client(
client.js):常驻一个长轮询请求;Host 一有通知立即返回,页面侧用new Notification()弹出。
采用长轮询而不是固定间隔轮询:有通知时延迟很低,空闲时几乎不产生额外请求。
客户端会区分 desktop(桌面窗口)与 browser(浏览器标签):桌面窗口优先,因为只有桌面窗口能给出 DSH 身份。若某客户端拿不到通知权限,则不会参与 drain,避免通知被领走却无法显示。
示意:
AI 调用 system_notify → 🔔 DeepSeek Harness
任务完成了
核心功能:system_notify 工具¶
Agent 可调用的工具名为 system_notify,单向投递:不切换前台、不等待用户点击回应。
| 参数 | 必填 | 说明 |
|---|---|---|
title |
是 | 标题,约 60 字符 |
body |
是 | 正文,一句话,约 120 字符 |
silent |
否 | 静音,默认 false |
成功时返回示例:
{ "ok": true, "id": 1, "delivery": "delivered", "surface": "desktop" }
delivery:delivered表示已有窗口接手;queued表示暂时没有可用窗口,连接后会补发。surface:例如desktop,表示由桌面窗口 surface 弹出。
安装与启用¶
安装方式以 README 为准,不要用未在文档中出现的 dsh plugin add 类命令自行拼接。
本地 bundle 安装:
plugin_manager install_bundle /path/to/dsh-plugin-system-notify
或在 profile 的 package.json 中声明依赖并加入 bundles:
"dependencies": { "dsh-plugin-system-notify": "github:DRheEheAMGary/dsh-plugin-system-notify" },
"dsh": { "profile": { "bundles": ["dsh-plugin-system-notify"] } }
package.json 中 dsh.client 为 web 平台、immediately: true,并通过 cordis.patch.yml 做 bundle patch。启用后需保证至少有一个 DSH 页面在线,否则通知会进入队列(README 写明最多约 2 分钟等待窗口连上)。
典型用法¶
在对话或工作流中,让 Agent 在任务完成、需要人工确认或后台作业结束时调用 system_notify,例如标题写「DeepSeek Harness」,正文写一句状态说明。调用方只需按上表传入 title、body,必要时设 silent: true 避免声音。
你无需在前端手写通知代码:Client 插件会在有权限的 DSH 页面上自动 drain 收件箱并弹出系统横幅。
平台与限制¶
| 平台 | 状态 |
|---|---|
| macOS | 实测,归属 com.deepseek.dsh |
| Windows | 实测(Toast) |
| Linux | 未实测 |
使用上需注意:
- 需要至少一个 DSH 页面开着;全部关闭时通知排队,等窗口重新连接。
- 仅在浏览器标签中打开 Web GUI 时,通知归属是该浏览器,而不是 DSH 桌面身份。
- 系统勿扰模式、专注助手等会拦截通知。
插件以当前 DSH 进程及已加载 bundle 的权限运行;安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境与安全策略。DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-plugin-system-notify 把「后台也能看到 Harness 说完话了」收敛成一个标准工具:长轮询收件箱、桌面窗口优先、单向系统通知。若你经常在 DSH 里跑长任务并希望横幅显示为 Harness 本身,可按上文安装 bundle 并为桌面客户端授予通知权限。
- 目录页:https://www.skillhub.cn/plugins/DRheEheAMGary/dsh-plugin-system-notify
- GitHub:https://github.com/DRheEheAMGary/dsh-plugin-system-notify