dsh-caller:DeepSeek Harness 强提醒插件

前言

DeepSeek Harness(DSH)的设计理念是“一切皆插件”,旨在让开发者通过组合工具扩展智能体能力。在实际开发中,智能体常需用户进行确认、做决定或处理已完成任务。如果缺乏有效交互手段,用户可能错过重要信息。dsh-caller 是为此设计的一个插件,它通过物理层面的声音和弹窗强制打断用户,确保“呼叫”一定会被感知。

这是什么

dsh-caller 是由 ChuxueTeam 维护的 DeepSeek Harness 客户端插件。当模型需要你本人回到电脑前时,它会调用 call_owner 工具。该插件设计初衷是强打扰:弹窗不会自动消失,提示音会循环播放,直到用户亲手关掉。

核心功能

该插件具备以下已核实的能力:

  • 可自定义弹窗:支持修改弹窗的标题、正文和一行说明文字。
  • 三种提示音来源:支持系统语音朗读(依赖 Windows SAPI)、内置音效、以及本地音频文件。
  • 强制循环播放:提示音会循环播放,任何关闭弹窗的操作(点击、Esc 键、被新呼叫挤掉)都会立即停止声音。
  • 紧急模式:通过设置 urgent: true,弹窗会切换为 🚨 样式,更加醒目。
  • 开关控制:用户可在设置中关闭“允许 AI 呼叫我”开关,此时模型调用工具将无法唤起弹窗。
  • 工具回执:工具返回 { delivered, clients, text?, note }。如果未打开窗口或开关关闭,delivered 为 false,模型可据此调整策略。
  • 系统通知:作为可选的辅助手段,当窗口不在最前面时,会发送系统通知。
  • 零侵入:不修改 DSH 内置包、不读取业务 DOM、不发起任何外部网络请求。

安装与启用

安装该插件需要使用 DSH 的命令行工具。

dsh plugin --profile desktop add github:ChuxueTeam/dshOwnerCaller

如需本地开发,可克隆仓库后通过本地链接添加:

git clone https://github.com/ChuxueTeam/dshOwnerCaller.git
dsh plugin --profile desktop add link:<你的路径>/dshOwnerCaller

插件采用“单包双面”架构:lib/index.js 是宿主半边,负责处理工具调用和事件总线;lib/client.js 是浏览器半边,负责设置面板、弹窗渲染和音频播放。

使用方法

安装完成后,按以下步骤配置和使用:

  1. 配置设置
    打开 设置 → 呼叫主人。在此界面可以调整弹窗文案、提示音源、音量,并配置是否允许 AI 呼叫。

  2. 测试呼叫
    在设置面板中,可以使用三个测试按钮:

    • 立即呼叫(测试):完整模拟一次呼叫效果。
    • 只预览弹窗:查看样式,不播放声音。
    • 试听提示音(只响一遍):单独测试音频效果。
  3. 模型调用
    模型在需要你介入时,会调用 call_owner 工具。参数包括:

    • text:弹窗文案(最多 300 字),省略则使用默认文案。
    • reason:可选的一行说明。
    • urgent:布尔值,设为 true 开启紧急模式。
    • silent:布尔值,设为 true 仅弹窗不响。

工作原理

插件通过宿主进程与浏览器端的通信实现功能:

  • 宿主进程:模型调用 call_owner 工具后,事件进入宿主进程的事件总线。宿主通过 GET /api/dsh-caller/stream(SSE)或 GET /api/dsh-caller/poll(轮询)将事件推送给浏览器。
  • 浏览器端:lib/client.js 常驻 SSE 连接,收到 call 事件后触发弹窗并启动音频播放器。
  • 状态同步:弹窗的关闭回调持有播放器的 stop() 方法,确保关窗即静音。若音源播放失败(如文件被删),会自动退回内置音效兜底。

注意事项

  • 强打扰设计:请勿在公共场合或会议中开启高音量测试,弹窗必须手动关闭。
  • 环境依赖:使用系统语音朗读功能依赖 Windows 的 System.Speech(SAPI)。
  • 生效时机:修改 lib/client.js 需要刷新页面(Ctrl+R);修改 lib/index.js 需要重启 DSH 宿主。
  • 许可证:该插件采用 MIT 许可证。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜