前言¶
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-..." }
通過日曆面板¶
- 在側邊欄點擊“日曆”按鈕打開面板。
- 點擊具體日期,在日曆視圖上輸入時間、關鍵詞,並選擇目標對話。
- 點擊按鈕確認創建。
- 面板會自動區分“待處理”和“已觸發”的提醒,支持編輯(僅限待處理)、立即觸發、取消或刪除操作。
技術實現細節¶
該插件採用三層定時機制來保證喚醒的可靠性:
- 進程內定時器:處理常規情況,維護最早待處理提醒。
- Windows 任務計劃程序:處理機器睡眠或主機掛起的情況,支持
StartWhenAvailable和wakeComputer(需配置)。 - 追趕重放:當主機未運行時,在啓動時自動檢查並補發所有遺漏的喚醒消息。
所有觸發均採用 Claim-then-Delivery(聲明後交付)模式,避免重複發送。系統會保留已觸發的提醒 7 天,以便追溯。
注意事項¶
- 運行依賴:喚醒功能需要 DeepSeek Harness 主機進程正在運行,這不是推送通知,無法在主機關閉時通過外部方式觸達。
- 一次性提醒:目前僅支持一次性提醒,暫不支持循環任務。
- 任務名稱衝突:Windows 任務計劃程序中存在一個名爲
dsh-clock-wake的共享任務,同一臺機器上的多個 Host 實例會共用該任務名稱。 - 面板主題:日曆面板爲浮動層,不支持通過 Shell 插槽進行主題化配置。
總結¶
dsh-clock 通過注入時間信息和漂移計算,解決了 DeepSeek Harness 在會話外無法可靠定時喚醒的問題。結合 Agent 工具與日曆面板,它能夠幫助開發者在長流程任務中實現精準的定時介入。