dsh-clock:DeepSeek Harness 的日历与唤醒插件

前言

DeepSeek Harness (DSH) 的调度功能通常仅限于当前对话会话。当会话关闭后,提醒会一直挂起,直到有人重新打开该会话。这导致无法在特定时间点唤醒长流程任务,也无法在非活跃状态下触发自动化检查。

dsh-clock 插件填补了这一空白。它提供日历和时钟功能,允许在选定瞬间唤醒指定的对话。无论该对话当前是否处于关闭状态,系统都会注入准确的系统时间和时间漂移,并在消息中明确标注唤醒是否迟到。

功能概览

  • 唤醒对话:通过关键词在指定时间唤醒对话,即使对话处于关闭状态。
  • 时间与漂移注入:在唤醒消息中包含计划时间、实际时间、时间漂移和迟到警告。
  • Agent 工具与技能:提供 clock 工具供 Agent 调用(set, now, list, cancel),并内置 clock 技能以辅助对话。
  • 多层级定时:结合进程内定时器、Windows 任务计划程序镜像以及主机启动时的追赶重放,确保定时准确。
  • 日历面板:提供可视化的日历和时钟面板,支持直接在日历上创建提醒。
  • 分支处理:支持对话分支,在创建分支时提示复制警报以防止遗漏。
  • 漂移容忍度:对于 60 秒以内的迟到,仍标记为“准时”。

安装与启用

在插件目录下执行以下命令完成安装与构建:

npm install
npm run build
dsh plugin --profile web add link:<this-directory>

或者直接通过 Git URL 安装:

dsh plugin --profile web add <git-url>

安装完成后,重启 DeepSeek Harness Web 服务,侧边栏底部的“日历”按钮将出现,点击即可打开插件面板。

使用方式

通过 Agent 工具

Agent 可以直接调用 clock 工具来管理提醒。支持的参数包括:

  • 设置延迟提醒:在当前时间后 N 秒唤醒。
  • 设置精确时间提醒:在特定时间点(UTC 或指定时区)唤醒。
  • 查询与取消:查询当前时间、列出待办提醒或取消特定提醒。

示例:

// 设置延迟提醒
{
  "action": "set",
  "afterSeconds": 2700,
  "keyword": "check the build",
  "note": "the release job should be done by now"
}

// 设置精确时间提醒(指定时区)
{
  "action": "set",
  "at": "2026-09-11T09:30:00+08:00",
  "keyword": "standup",
  "sessionId": "session-...",
  "timeZone": "Asia/Shanghai"
}

// 查询当前时间
{ "action": "now" }

// 列出待办
{ "action": "list" }

// 取消提醒
{ "action": "cancel", "id": "a-..." }

通过日历面板

  1. 在侧边栏点击“日历”按钮打开面板。
  2. 点击具体日期,在日历视图上输入时间、关键词,并选择目标对话。
  3. 点击按钮确认创建。
  4. 面板会自动区分“待处理”和“已触发”的提醒,支持编辑(仅限待处理)、立即触发、取消或删除操作。

技术实现细节

该插件采用三层定时机制来保证唤醒的可靠性:

  1. 进程内定时器:处理常规情况,维护最早待处理提醒。
  2. Windows 任务计划程序:处理机器睡眠或主机挂起的情况,支持 StartWhenAvailable 和 wakeComputer(需配置)。
  3. 追赶重放:当主机未运行时,在启动时自动检查并补发所有遗漏的唤醒消息。

所有触发均采用 Claim-then-Delivery(声明后交付)模式,避免重复发送。系统会保留已触发的提醒 7 天,以便追溯。

注意事项

  • 运行依赖:唤醒功能需要 DeepSeek Harness 主机进程正在运行,这不是推送通知,无法在主机关闭时通过外部方式触达。
  • 一次性提醒:目前仅支持一次性提醒,暂不支持循环任务。
  • 任务名称冲突:Windows 任务计划程序中存在一个名为 dsh-clock-wake 的共享任务,同一台机器上的多个 Host 实例会共用该任务名称。
  • 面板主题:日历面板为浮动层,不支持通过 Shell 插槽进行主题化配置。

总结

dsh-clock 通过注入时间信息和漂移计算,解决了 DeepSeek Harness 在会话外无法可靠定时唤醒的问题。结合 Agent 工具与日历面板,它能够帮助开发者在长流程任务中实现精准的定时介入。

羽毛球分组比赛记分
小程序二维码

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

小夜