前言¶
在 DeepSeek Harness(DSH)里跑 agent,一轮 turn 常常要几分钟。更合理的用法是离开窗口去做别的事,但 DSH 本身不会在「该你回来」时给出明确信号。你只能反复切回应用看状态,或者一直盯着会话列表。
社区插件 dsh-plugin-agent-alerts(维护者 kjx-talesofai,分类:客户端)补上这一环:在 agent 完成一轮、向你提问、工具等待你批准(以及计划待审阅)时,播放提示音并弹出桌面通知;也可替换为自定义音效文件。下面介绍它的能力边界、安装方式与配置项。事实以 GitHub 仓库 README 为准;插件未发布到 npm,安装走 DSH 自带的「添加插件」流程。
这是什么¶
一句话:给 DSH 桌面端加上「声音 + macOS 桌面通知」,让你在不必盯窗口的情况下,知道该回到哪条会话。
插件依赖 DSH ≥ 0.2.0-rc.1(README 徽章与 package.json 中 engines.dsh 一致);当前资料中的发行版本为 v0.3.4,许可证 MIT。浏览器侧与 Host 侧逻辑都跑在 Harness 进程内,不是独立后台服务。
会在哪些时刻提醒¶
README 用表格归纳了三种(及计划待审)场景下的默认音效与通知内容:
| 时刻 | 默认音效 | 通知内容 |
|---|---|---|
| 一轮 turn 结束 | duo_finish.mp3 |
会话标题 |
| Agent 提问 | duo_question.mp3 |
问题正文 |
| 工具需审批 | duo_question.mp3 |
待审批的工具 |
| 计划待审阅 | duo_question.mp3 |
计划相关提示 |
声音和横幅是两条通道,因为失效方式不同:窗口被盖住时主要靠声音;横幅标明哪条会话,在默认模式下点击可前置窗口并打开该会话。设置页会说明点击是否已接通,避免「点了没反应」却无从察觉。
通知方式可在设置里选择:
| 方式 | 说明 |
|---|---|
| 应用横幅(默认) | 以 Harness 名称与图标展示,点击可跳转会话 |
| 系统兜底 | 由 macOS 代为通知,署名为「脚本编辑器」,不可点击;横幅长期不出现时可作备选 |
自带 assets/duo_finish.mp3 与 assets/duo_question.mp3(README 中文说明称哆啦 A 梦风格音效)。自定义音效需在设置中填写绝对路径;页面会显示是否成功读到文件。插件不提供音效包或文件选择器,路径需手填。
故意不做的三件事¶
理解边界有助于避免误期待:
- 子 agent 的 turn 结束不提醒。 一次 workflow 可能在短时间内结束大量子运行,逐个响会削弱注意力;但子 agent 提问或要审批仍会响,因为那仍需要你决策。
- 页面加载时不补报历史。 会话列表加载时会把历史空闲会话标为未读;若当作新事件会在每次打开应用时连续触发大量提醒。
- 刚结束又立刻继续的 turn 不提醒。 Goal 一轮结束后可能马上进入下一轮;插件会等待约 1.5 秒再确认,若会话仍在运行或结束原因其实是「在等你」,则不再报「做完了」。
安装与启用¶
在 DSH 「添加插件」对话框中填写下列规格(无需 npm 账号;不要对未发布包使用 npm install 作为安装路径):
github:kjx-talesofai/dsh-plugin-agent-alerts#v0.3.4
也可使用本地目录的绝对路径指向克隆或解压后的插件目录(README 示例:/path/to/dsh-plugin-agent-alerts)。
装完后重启桌面端:Host 半边仅在启动时加载;浏览器半边随页面重载。若添加插件时出现 connection to github.com timed out after 5000ms,README 说明那是管理器约 5 秒的 git 预检超时,可重试,或在 profile 目录用 pnpm add 安装同一 spec。
卸载:在 DSH「插件」列表卸载后重启;设置只留在该插件的 config 块,无其他残留。
设置与典型用法¶
路径:Settings → Plugins → Agent Alerts → 该行配置。开关修改后立即生效,无需再重启。
| 设置项 | 默认 | 说明 |
|---|---|---|
| A turn finished | 开 | 一轮结束 |
| The agent asked a question | 开 | 含计划待审阅 |
| A tool needs approval | 开 | 工具审批 |
| Play a sound | 开 | |
| How to notify | App banner | Off / App banner / System fallback |
| Skip the banner while the window is focused | 关 | 声音仍会播放 |
| Volume | 80% | |
| Sound for a finished turn | 空 | 绝对路径;空则用内置 |
| Sound for a question or approval | 空 | 绝对路径;空则用内置 |
通知方式旁有 Send a test,可立刻试一条,便于在本机确认横幅或兜底哪条通路可用。
设置同时写入 profile 的 cordis.patch.yml,也可直接编辑,例如:
- id: agent-alerts
name: dsh-plugin-agent-alerts
config:
turnEndSound: /Users/you/Sounds/done.mp3
quietWhenFocused: false
典型工作流:安装并重启 → 在 Agent Alerts 里用测试按钮确认通知与声音 → 按需关闭「窗口聚焦时跳过横幅」或替换音效路径 → 发起长任务后离开窗口,在 turn 结束、提问或审批节点听响/看横幅后点回对应会话。
适用场景与注意事项¶
适合谁: 经常在 DSH 里跑较长 agent turn、希望「离开窗口、有事再回来」的 macOS 用户。README 写明仅在 macOS 上端到端验证;Windows / Linux 未测。系统兜底在非 macOS 上会返回 501,而不是静默失败。
运行与权限: 插件以当前 DSH 进程权限运行,安装前宜浏览 源码与 LICENSE,自行判断是否纳入工作流。
使用前提:
- 应用必须保持打开。 退出 Harness 后不会有任何提醒。
- macOS 需允许通知。 横幅不出现时,检查 系统设置 → 通知 → DeepSeek Harness 的总开关与提醒样式(不能为「无」)。
- 专注模式可能压掉横幅,但压不掉插件自播的声音。
全局策略: 无按会话或按工作区的规则;开关为全局。无 per-session 静音表。
平台与 DSH 版本: package.json 要求 Node ≥ 22;与 DSH 0.2.1-rc.2 在 macOS(Apple Silicon)上 README 记载过契约复检;端到端手测记录基于 0.2.0-rc.2。升级 DSH 大版本前请对照仓库 engines.dsh 范围(<0.3.0-0)。
结尾¶
dsh-plugin-agent-alerts 用声音和(可选)桌面通知,在 agent 完成一轮、提问、待审批或计划待审时把你叫回对应会话,并刻意过滤子 agent 批量结束、历史加载和瞬时连 turn 等噪声场景。它是 DSH「一切皆插件」生态中的客户端插件;社区目录由独立站点维护,与 DeepSeek / 幻方无官方从属关系。