dsh-settings-params:集中管理環境變量與熱重載插件

在 DeepSeek Harness (DSH) 的開發場景中,環境變量常用於連接數據庫或配置密鑰。傳統做法是修改宿主機的 shell 配置文件並重啓 DSH,流程繁瑣。此外,部分插件(如 dsh-sql)在啓動時僅讀取一次環境變量的快照,後續修改無法生效。dsh-settings-params 插件通過界面化的 YAML 配置,解決了這兩個問題:它集中管理變量,支持持久化到 process.env,並能通過白名單機制對特定插件進行熱重載。

安裝與啓用

安裝插件需要使用官方提供的命令。安裝後必須重啓宿主進程才能加載新配置。

dsh plugin --profile web add github:felixpu/dsh-settings-params

核心功能

  1. 集中管理:所有變量存儲在一個 YAML 文件中,每個變量記錄“值”與“備註”,變量名即鍵。
  2. 持久化生效:保存配置後,變量會立即寫入 process.env 並持久化到磁盤。
  3. 按白名單熱重載:勾選特定插件(如 dsh-sql)到白名單,保存參數時觸發重載,使其無需重啓即可讀取新值。
  4. 訪問控制:默認所有變量都不可被模型讀取,需在界面上顯式授權。

使用方法

在 DSH 網頁版側欄點擊「插件」,進入 dsh-settings-params 插件詳情頁。

1. 編輯變量

在頁面中直接編輯 YAML 文件,保存即生效。

2. 授權模型讀取

默認情況下,任何變量都不可被模型讀取。必須在界面的「expose」列表中勾選變量名,模型才能通過工具讀取。

模型通過以下兩個工具訪問變量:

  • env_param_list:列出已授權變量,僅返回名稱、備註和掩碼,不包含明文。
  • env_param_get:讀取某個已授權變量的明文。

安全提示:讀取明文的內容會進入模型上下文與本次會話記錄,高敏感密鑰(如數據庫密碼)不建議授權。

3. 配置熱重載

在界面的「reload」部分,勾選需要熱重載的插件(例如 dsh-sql)。保存參數時,宿主會重新加載這些插件,使其能夠讀取新的環境變量值。

配置文件

插件配置文件位於 ~/.dsh/.dsh-settings-params/params.yml。

該路徑位於插件包目錄之外,因此卸載、重裝或升級插件時,配置不會丟失。文件格式如下:

variables:
  DSH_SQL_PASSWORD_OPENCROWD:
    value: "******"
    note: 生產庫只讀賬號
  DEEPSEEK_API_KEY:
    value: "sk-..."
    note: ""

expose: []          # 允許模型讀取明文的變量名(默認空 = 都不可讀)

reload:
  targets:          # 保存後需要熱重載的插件條目名
    - dsh-sql

注意事項

  1. 強制重啓:安裝後必須重啓宿主進程,配置才能生效。
  2. 敏感數據可見性:一旦在 expose 中授權,變量明文將進入模型上下文與本次會話記錄。
  3. 插件啓動機制:某些插件(如 dsh-sql)在啓動時只讀取一次環境變量,此插件通過熱重載機制解決了這個問題。
  4. 界面語言:支持中英文切換,跟隨平臺通用設置。

相關資源

  • GitHub 倉庫: https://github.com/felixpu/dsh-settings-params
  • 插件目錄: https://www.skillhub.cn/plugins/felixpu/dsh-settings-params
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜