前言¶
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