在 DeepSeek Harness 中開發智能體時,模型調用成本是主要考量之一。插件 dsh-peak-hours 提供了運行窗口的切換能力,允許用戶在非高峯時段自動運行或暫停任務,以優化成本。
插件簡介¶
這是一個由 lion231226 維護的 DeepSeek Harness 工作流插件,基於 MIT 許可證。它允許在 Composer 工具欄添加控件,在“總是運行”和“僅非高峯時段運行”之間切換。在“僅非高峯時段運行”模式下,當北京時區的峯價窗口開始時,所有 dsh 任務(包括正在運行的任務)會自動暫停;窗口結束後自動恢復。
核心功能¶
- 界面控件:在 composer 工具欄添加運行模式切換控件,支持“總是運行”和“僅非高峯時段運行”兩種模式。
- 自動調度:高峯時段自動暫停所有任務,非高峯時段自動恢復。
- 時段判定:基於北京時區(UTC+8)的峯谷時段判定(週一至週五 09:00-12:00, 14:00-18:00)。
- 節假日支持:支持法定節假日和補班日判定。
- HTTP API:提供 API 接口用於狀態查詢、模式切換和時鐘模擬。
- 實現方式:無構建步驟,純 JavaScript 實現。
安裝與啓用¶
使用 DeepSeek Harness 的 CLI 進行安裝:
dsh plugin --profile web add github:lion231226/dsh-peak-hours
典型用法¶
界面操作¶
在 composer 界面中,點擊工具欄中模式按鈕右側的控件即可選擇運行策略。
API 操作¶
插件在宿主機的迴環 Web 服務器上註冊了以下接口:
- 查詢健康狀態:
GET /api/peak-hours/health
- 查詢當前狀態:
GET /api/peak-hours/state?session=<id>
不帶 `?session=` 參數時,報告 `default` 模式。
- 切換運行模式:
POST /api/peak-hours/mode
Content-Type: application/json
{
"mode": "always" | "idle-only" | null,
"session": "<id>",
"scope": "session" | "default"
}
設置 `mode: null` 並指定 session 可清除該 session 的覆蓋設置。
- 時鐘模擬:
POST /api/peak-hours/clock
Content-Type: application/json
{
"offsetMs": <int|null>,
"ttlMs": <int>
}
`ttlMs` 最大限制爲 30 分鐘。
技術細節與注意事項¶
- 安裝衝突:不要混用
dsh plugin add和install.ps1兩種安裝方式。dsh plugin add會註冊包,而install.ps1會手動寫入 patch 文件。混用會導致 patch 文件重複。 - 補班日邏輯:補班日被視爲空閒時段,不參與高峯時段判定。
- 時鐘覆蓋:
clockOverride的 TTL 最大限制爲 30 分鐘。 - 依賴項:依賴
@deepseek-ai/cordis(可選依賴)。 - 攔截機制:主要通過
agent/pre-step和tools/pre-execute攔截,llm/stream接口未被阻擋,因爲其返回類型與 agent loop 的調用路徑有關。
適用場景¶
該插件適合需要在特定時間段控制任務運行、以降低模型調用成本的 DeepSeek Harness 用戶。使用前請檢查源碼與許可證,插件以當前 dsh 進程權限運行。