前言¶
DeepSeek Harness (DSH) 的設計理念是“一切皆插件”,這要求開發者能夠靈活地擴展 Web Profile 的能力。在 Web Profile 中,通常需要手動觸發智能體任務。當需要定期執行任務(如每日數據彙總)或避開高峯時段運行時,手動操作並不適用。dsh-plugin-automations 插件通過在 DSH Web Profile 中引入定時任務機制,解決了這一問題。
插件定位¶
這是由開發者 Sev7een 維護的 DeepSeek Harness Web Profile 定時任務插件。它提供了一組基礎能力,支持一次性執行和標準 Cron 調度,並包含“準時執行”和“非高峯時段執行”兩種模式。
核心功能¶
該插件包含以下已覈實的功能特性:
-
界面與輪詢
提供設置頁面表單和任務列表,界面每 5 秒輪詢一次狀態。 -
執行模式
- 準時 (
on_time):任務到期後立即創建隔離的 Session 並開始執行。 - 非高峯時段 (
when_idle):任務僅在非北京高峯時段運行(避開 09:00-12:00 和 14:00-18:00)。如果任務在高峯時段到期,系統會自動推遲到下一個空閒窗口。
- 準時 (
-
調度類型
- 一次性 (
once):任務執行一次後即進入終端狀態,不再運行。 - Cron 表達式:支持標準的六字段 Cron 表達式。Cron 表達式在主機本地時區評估。
- 一次性 (
-
Session 管理
- 標題模板:支持自定義 Session 標題,可引用任務字段並使用 Moment 風格的日期格式(如
{{scheduledAt:YYYY-MM-DD}})。 - 隔離性:每次執行使用一個獨立的 Session,繼承默認 Agent 預設、模型和主機工作區根目錄。
- 狀態持久化:使用
ctx.storageDomain確保任務狀態的持久化。 - 超時與恢復:固定 30 分鐘執行超時,並包含顯式的
host_interrupted恢復機制。
- 標題模板:支持自定義 Session 標題,可引用任務字段並使用 Moment 風格的日期格式(如
-
安全與通信
- API 安全:嚴格的 JSON API 驗證、請求大小限制、同源檢查以及自定義 mutation 頭部。
- 消息來源:自動生成的消息帶有
{ kind: 'plugin', plugin: 'dsh-plugin-automations' }標記,不會冒充直接的人類輸入。
安裝與啓用¶
安裝該插件需要 DSH Web Profile 環境,並要求 Node.js 版本 >= 20。
- 執行安裝命令:
dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
-
安裝完成後,重啓 DSH Web 應用。
-
打開 Settings -> 定時任務 (Scheduled Tasks) 頁面即可看到插件界面。
典型用法¶
插件通過 HTTP API 提交任務,支持使用 curl 或其他 HTTP 客戶端。
創建定時任務¶
使用 POST /dsh-scheduled-tasks/api/v1/tasks 創建任務。
請求頭部:
Content-Type: application/json
X-DSH-Scheduled-Tasks: 1
請求體示例(Cron 模式,準時執行):
{
"prompt": "check project tests",
"schedule": {
"type": "cron",
"expression": "0 0 8 * * *"
},
"mode": "on_time",
"sessionTitleTemplate": "Daily Feed · {{scheduledAt:YYYY-MM-DD}}"
}
請求體示例(一次性任務):
{
"prompt": "summarize meeting notes",
"schedule": {
"type": "once"
},
"mode": "when_idle"
}
注意事項¶
- MVP 限制:當前版本(MVP)的 API 端點僅支持創建任務,暫不支持編輯、刪除、暫停、取消、重試或分頁功能。
- 時區問題:Cron 表達式解析基於主機的本地時區,而非 UTC。
- 開發環境:本地開發時需要使用
--legacy-peer-deps標誌以解決依賴兼容性問題。 - 權限與安全:插件以 DSH 進程的權限運行,在安裝前建議檢查源碼與許可證(MIT)。自動生成的消息明確標識爲插件行爲,不會模擬人類用戶。
總結¶
dsh-plugin-automations 爲 DeepSeek Harness Web Profile 提供了基礎的定時調度能力,特別是在非高峯時段執行方面提供了自動化支持。雖然功能尚處於 MVP 階段,但它爲構建週期性工作流提供了可行的技術路徑。