前言¶
DSH 的 Agent 模型本質上是請求-響應過程。一旦回合結束,Agent 進入休眠狀態,沒有內置的計時器或進程監聽機制。當需要執行長任務(如下載大文件、編譯、等待服務啓動)時,任務完成後 Agent 不會自動醒來彙報,用戶必須主動詢問。
dsh-proactive 作爲一個 DSH 插件,解決了這個問題。它在 Agent 回合結束後充當“守夜人”的角色,在條件滿足時注入消息並喚醒 Agent,使其主動彙報任務完成情況。
定位¶
這是一個工作流類插件,由開發者 mili1360 維護。核心價值是在 Agent 回合結束後自動喚醒 Agent 報告長任務完成狀態。
核心功能¶
- 自動喚醒:在 Agent 回合結束後,通過注入消息喚醒 Agent。
- 多種觸發器:支持文件穩定、進程退出、端口開啓、定時等多種監控方式。
- 消息注入:使用
agent.steer()注入指令,機制同dsh-subagent向父代理彙報。 - 消息重試:支持
repeatSeconds配置,對持續變化的文件(如日誌)進行持續監控。 - 隱蔽通知:默認不渲染爲用戶氣泡(
source.kind=plugin),用戶只會看到 Agent 的回覆。
安裝與啓用¶
安裝此插件只需一條命令:
dsh plugin add --profile web github:mili1360/dsh-proactive
安裝完成後,必須重啓 DSH 進程才能使插件生效。
典型用法¶
-
場景示例:
用戶:“fetch that 20 GB thing and tell me when it’s done”
Agent(開始下載 -> 回合結束 -> 休眠)
…數小時後…
插件(檢測到文件大小停止變化 -> 注入消息 -> 喚醒 Agent)
Agent:“Done — 20.3 GB, and I verified the checksum against the published one.” -
配置步驟:
- 在配置中添加
watch.example.json文件。 - 將配置項添加到
dsh.profile.bundles數組中。 - 插件啓動定時器,按設定間隔檢查觸發條件。
- 在配置中添加
適用場景與注意¶
-
依賴與兼容性:
該插件依賴@deepseek-ai/dsh-llm包。目前僅支持 DSH0.1.0-rc.7(自定義構建版本)。 -
消息渲染:
插件源消息默認不在 UI 渲染(source.kind=plugin),Agent 主動彙報時體驗更自然。若需要渲染爲用戶氣泡,需顯式設置sourceKind: 'user'。 -
會話選擇:
當未指定sessionId時,插件會喚醒最近活躍的會話。如果指定的會話不存在,該條目會被跳過並保持待命狀態。
總結¶
對於需要處理長時間後臺任務的場景,該插件填補了 Agent 休眠期間的狀態同步空白。你可以通過 社區目錄 查看更多詳情,或在 GitHub 查看源碼與文檔。