前言¶
DeepSeek Harness 的核心設計理念是「一切皆插件」。在構建自動化工作流時,除了通過對話直接調用 Agent,通常還需要處理週期性任務或外部事件觸發。傳統的 Cron 方式只能按固定時間執行預設腳本,缺乏智能判斷和自主處理能力。
dsh-reactor 是一個面向 DeepSeek Harness 的事件驅動自主 Agent 運行時。它將 Agent 從「隨叫隨到的助理」轉變爲「主動感知環境、自主完成目標的守護進程」。插件通過定義事件源、條件評估和目標(ECG 模式),讓 LLM 在後臺持續觀察環境,一旦條件命中,便拉起隔離的 Session,利用 ReAct 機制自主完成任務。
插件簡介¶
- 定位:面向 DeepSeek Harness 的事件驅動自主 Agent 運行時 (ECG)。
- 開發者:snhna-a。
- 類別:工作流。
- 核心價值:通過事件驅動代替固定時間調度,讓 Agent 在後臺自主感知變化並執行任務。
安裝與啓用¶
插件以社區形式提供,非 DeepSeek 官方出品。安裝前請確認你的 DeepSeek Harness 版本滿足要求(≥ 0.1.2-rc.1)。
1、執行以下命令安裝插件:
dsh plugin --profile web add dsh-reactor
2、安裝完成後重啓 dsh web 服務。
3、在 DSH Web 界面的右下角,會出現一個時鐘主題的可視化掛件。你可以通過拖拽調整位置,或點擊進入管理面板查看規則狀態。
核心功能¶
dsh-reactor 提供了一套完整的事件處理與 Agent 執行機制:
- ECG 運行時:將傳統的 ECA(Event-Condition-Action)升級爲 ECG(Event-Condition-Goal)。事件發生後先評估條件,再決定是否拉起 Agent。
- 多種事件源:支持通過
http-poll(輪詢)、file-watch(監聽文件)、command(執行命令)、webhook(接收推送)來獲取外部或本地事件。 - 條件評估:使用 JSONPath 提取數據,配合運算符(eq/ne/gt/contains/exists/changed)以及邏輯組合(AND/OR)來判斷事件是否需要觸發。
- Goal 模式:這是推薦的執行方式。它會在隔離的 Agent Session 中運行。LLM 會接收到目標描述和事件上下文,利用 ReAct 機制自主決定如何完成任務(如讀取文件、執行命令、調用工具)。
- 確定性驗證:任務完成後,系統會自動進行驗證(如檢查文件是否存在或命令退出碼),只有驗證通過才視爲成功。
- 智能恢復:系統具備失敗分類機制,能識別 transient(瞬時故障)、repairable(可修復)等錯誤類型,並自動進行重試。
- 可審計性:提供完整的運行軌跡,記錄每次觸發的決策鏈、Token 消耗和執行細節。
典型用法¶
安裝後,你可以在 DSH 對話中直接使用自然語言定義規則。Agent 會自動調用 reactor_define 等工具接口創建後臺規則。
以下是基於插件功能描述的典型場景:
1、監控 GitHub commits,當 HEAD 變化時自動拉取代碼並構建:
“幫我監控 https://api.github.com/repos/snhna-a/dsh-reactor 的最新 commit,當 HEAD 變化時,在 C:\work\dsh-reactor 目錄裏 git pull 最新代碼並跑 npm run build,然後告訴我結果。”
2、監控本地配置文件變化並觸發通知:
“監控 deploy.json 文件,當 version 字段變化時,發 webhook 通知。”
3、定期分析代碼變更:
“每 5 分鐘跑
git log --oneline -1,當輸出變化時,在新會話裏分析這次提交。”
4、主動診斷修復錯誤:
“輪詢監控某網站的 API,當 status 變成 error 時,讓 Agent 自動診斷並修復。”
安全與注意事項¶
- 權限控制:在 Goal 模式下,使用
permissionPreset參數來控制 Agent 的能力邊界,防止 Agent 執行超出預期的操作。 - 數據存儲:所有規則和歷史數據存儲在本地
~/.dsh/reactor/目錄下,不上傳第三方服務器。 - Webhook 安全:默認情況下,Webhook 僅監聽本地迴環地址。如果需要對外提供服務,必須配置
webhookToken並配合 TLS 加密。 - Shell 執行:插件在 DSH 運行環境中執行命令,僅信任你自己創建的規則。建議在執行 Shell 動作前仔細審查規則內容。