DeepSeek Harness 插件開發者常需關注 API 價格波動與賬戶餘額。若在開發過程中出現計費高峯,可能導致請求失敗;餘額不足亦會中斷工作流。dsh-tidewatch 旨在解決這一痛點,將時段狀態與餘額信息直接集成到開發環境界面中。
這是什麼¶
該插件是一個 DeepSeek Harness 插件,在頁面右上角顯示 DeepSeek API 高峯/低谷時段、倒計時與賬戶餘額的懸浮卡片。
核心功能¶
- 實時時段狀態燈:根據 DeepSeek 官方計價規則判定當前是高峯期還是低谷期。高峯時段爲北京時間週一至週五 09:00-12:00、14:00-18:00;其餘爲低谷時段,價格減半。
- 北京時鐘 + 倒計時:顯示距下一時段切換還有多久,每秒更新。
- 賬戶餘額:配置 API Key 後查詢餘額,每 5 分鐘自動刷新。
- 可拖拽、可摺疊:標題欄拖動定位,點“-”收起。
安裝與啓用¶
插件提供兩種形態:
- 常駐插件:開機即在,所有會話。使用命令安裝:
dsh plugin --profile web add /path/to/dsh-tidewatch
裝載後會自動應用包內的 `cordis.patch.yml`,重啓 profile 生效。
- 動態插件:僅當前會話,進程內。在 DSH 會話中用
cordis_define定義,再用cordis_run激活。動態插件只存在於當前進程內存,DSH 重啓即消失,長期使用建議使用方案 A。
配置 API Key¶
插件默認複用 harness 配置的模型憑據,解析順序如下:
- 當前生效模型所屬 provider 的憑據引用 —— 由
agentDefaultModel.currentSelection()得到 provider id,再用llm.listConfigurableProviders()定位配置對象,讀取其apiKeyEnv。 - 用戶在面板裏手動保存的 Key(環境變量
DSH_PLUGIN_DEEPSEEK_KEY)。 - 兜底環境變量
DEEPSEEK_API_KEY。
面板頂部會顯示當前模型與 provider,並提供數據源下拉框,選中即可切換數據源。
安全說明¶
- Key 永不回傳瀏覽器:前端只拿到憑據引用名、來源與可用性,以及餘額數值。
- 餘額請求由 Host 執行:Key 經環境變量傳遞,不出現在命令行、不寫入日誌。
- 餘額接口限制:只有 DeepSeek 系提供(
<baseURL>/user/balance);其餘 provider 會被標記爲不支持。
技術實現¶
插件使用 connection.fetch 註冊路由(POST /api/dsh-tidewatch),而非 connection.rpc。這是由於當前宿主實現的注入限制,rpc.handle 內部訪問 owner.webServer 時必然拋出錯誤,導致路由註冊失敗。connection.fetch 的註冊路徑不經過 owner.webServer,故不受影響。
生效方式¶
- 客戶端半邊(
lib/client.js):改動後刷新頁面即可,無構建步驟。 - 宿主半邊(
lib/index.js/lib/tide.js):改動需重啓 DSH profile。