前言¶
DSH 的扩展方式是“一切皆插件”。对 agent 开发者来说,一个常见问题是:agent 启动了后台 subagent 或 shell background job 后,人仍然需要稍后回来提示它检查。dsh-timer-scheduler 处理这一步:它给 agent 提供一次性提醒工具,到点后让 agent 自己醒来并继续行动,同时在 Web UI 顶栏显示提醒和倒计时。
这是什么¶
dsh-timer-scheduler 是 GMH13552 维护的 DSH 插件,许可证为 MIT。README 中的包名是 dsh-timer-scheduler-ui,仓库名是 dsh-timer-scheduler。README 标注当前尚未发布到 npm;当前从源码安装。若之后发布到 npm,README 给出的命令是:
dsh plugin --profile web add dsh-timer-scheduler-ui
插件组合进 web profile 后,schedule_reminder、list_reminders、cancel_reminder 对所有 preset 的 agent 可用。
核心功能¶
下面介绍已核实的能力。
schedule_reminder:安排一次性提醒。相对时间使用delay_seconds,绝对时间使用at,支持 ISO 8601 或HH:MM[:SS]。subject自动取消:指定 background subagent 或 shell background job 作为subject。当它完成并进入父会话 inbox 时,插件自动取消匹配的提醒。list_reminders:列出待处理提醒。cancel_reminder:按 id 取消提醒。- 到点唤醒:提醒到期后,插件通过
agent.followup()发起新回合;agent 自行行动和报告,不需要人再次提示。 - 持久化:待处理提醒持久化到
$DSH_HOME/timer-reminders.json,重启后重新启用。 - Web UI 顶栏提醒菜单:显示每条提醒的
note和实时倒计时;没有提醒时隐藏;使用--dsw-alias-*主题 token。 - Host-plane 组合:三个工具可被所有 preset 的 agent 调用。若 preset 使用
tool-bootstrapfilter(例如anchored-standard),需保留:
residentTools: [schedule_reminder, list_reminders, cancel_reminder]
安装与启用¶
先做源码安装,再做重启和验证。
README 标注当前尚未发布到 npm,因此当前按源码安装:把包挂载为 web profile 的 dependency + bundle,然后执行:
cd <web-profile>
pnpm install
之后重启 dsh web,并在浏览器中硬刷新。
验证时,检查提醒接口:
curl 'http://127.0.0.1:<port>/api/timer-reminders?sessionId=x'
预期返回:
{"reminders":[]}
再检查客户端脚本:
curl 'http://127.0.0.1:<port>/plugins/dsh-timer-scheduler-ui/client.js'
预期返回 200,内容为 JS。
典型用法¶
在 agent 会话中,可以直接让 agent 安排提醒。README 给出以下示例:
- “30 分钟后提醒我检查那个后台任务”:
schedule_reminder(delay_seconds=1800, note=…, subject=<subagentId>)
- “下午 3 点检查部署”:
schedule_reminder(at="15:00", note=…)
- 管理和取消:
list_reminders
cancel_reminder
适用场景与注意¶
适合在 DSH web profile 中运行,并希望 agent 在后台任务或远程任务需要“稍后检查”时自动回来的开发者。插件以当前 dsh 进程权限运行,安装前应检查源码和许可证;许可证为 MIT。
使用前注意:
- 冷恢复需要会话持久化已配置,且会话可恢复;若
resume失败,提醒会被记录并跳过。 dsh进程停止期间到期的提醒,会在启动时重新启用并立即触发。- 超过约 24.8 天的延迟会分块处理,依赖进程保持运行。
- Web 客户端每秒轮询
/api/timer-reminders?sessionId=…。 - 如果 preset 使用
tool-bootstrapfilter(例如anchored-standard),需保留residentTools: [schedule_reminder, list_reminders, cancel_reminder]。
链接¶
GitHub 仓库:https://github.com/GMH13552/dsh-timer-scheduler