前言¶
DeepSeek Harness (DSH) 的後臺任務通常綁定在代理回合的生命週期上,回合結束任務即銷燬。直接使用 shell 定時器無法實現“在相同對話中延遲喚醒代理”的功能。本插件通過宿主機級定時器與官方 agent.followup() 通道,解決了跨回合喚醒與定時阻塞的問題。
插件介紹¶
dsh-delay-tools 是 DeepSeek Harness 的一個工作流插件,提供兩個核心工具:schedule_reminder 和 wait。前者用於在相同對話中延遲喚醒代理(智能體在等待時繼續工作),後者用於阻塞當前回合直到倒計時結束。
安裝¶
執行以下命令安裝插件:
dsh plugin add github:keyiadiannao/dsh-delay-tools#master
功能說明¶
1. 延遲喚醒 (schedule_reminder)¶
調用此工具後,智能體在等待期間會繼續處理其他任務。倒計時結束後,插件會通過 agent.followup() 將消息送回當前的對話上下文中。
- 多提醒支持:同一對話中可設置多個提醒,每個提醒有獨立的
reminder_id。 - 不干擾對話:無論倒計時期間發生多少次對話交互,提醒都會在指定時間準時送達。
2. 定時門控 (wait)¶
此工具會阻塞當前回合,智能體直到倒計時結束後纔會繼續執行後續邏輯。
- 消息隊列:在等待期間發送的消息會進入隊列,倒計時結束後統一處理。
- 可中斷:如果在等待期間點擊停止按鈕,等待會立即中斷,智能體不會掛起等待剩餘時間。
使用示例¶
調用 schedule_reminder¶
你可以要求智能體在 30 秒後提醒你喝水:
Call the
schedule_remindertool and remind me in 30 seconds to drink water.
智能體會返回預計觸發時間。倒計時結束後,它會在同一對話中回覆你。
調用 wait¶
如果需要等待一段時間再繼續:
Call the
waittool for 30 seconds, then continue.
智能體會阻塞當前回合,30 秒後自動繼續。
配置項¶
插件支持通過 YAML 配置調整默認延遲範圍。以下爲示例配置:
- id: dsh-delay-tools
config:
defaultDelayMs: 60000 # 默認延遲毫秒數
maxDelayMs: 3600000 # 單次延遲上限(1小時)
minDelayMs: 1000 # 單次延遲下限(防止瞬間重入)
注意事項¶
- 內存依賴:提醒僅存活於進程內存中。插件重載會取消所有待處理的提醒;DSH 主機重啓也會取消所有待處理的提醒。
- 持久化:目前不提供持久化存儲,重啓會導致提醒丟失。
總結¶
該插件解決了 DSH 中跨回合定時任務的痛點,提供了基於宿主機級定時器的可靠喚醒機制。適用於需要“稍後提醒”或“定時冷卻”的場景。