在 DeepSeek Harness (DSH) 的開發場景中,環境變量常用於連接數據庫或配置密鑰。傳統做法是修改宿主機的 shell 配置文件並重啓 DSH,流程繁瑣。此外,部分插件(如 dsh-sql)在啓動時僅讀取一次環境變量的快照,後續修改無法生效。dsh-settings-params 插件通過界面化的 YAML 配置,解決了這兩個問題:它集中管理變量,支持持久化到 process.env,並能通過白名單機制對特定插件進行熱重載。
安裝與啓用¶
安裝插件需要使用官方提供的命令。安裝後必須重啓宿主進程才能加載新配置。
dsh plugin --profile web add github:felixpu/dsh-settings-params
核心功能¶
- 集中管理:所有變量存儲在一個 YAML 文件中,每個變量記錄“值”與“備註”,變量名即鍵。
- 持久化生效:保存配置後,變量會立即寫入
process.env並持久化到磁盤。 - 按白名單熱重載:勾選特定插件(如
dsh-sql)到白名單,保存參數時觸發重載,使其無需重啓即可讀取新值。 - 訪問控制:默認所有變量都不可被模型讀取,需在界面上顯式授權。
使用方法¶
在 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
注意事項¶
- 強制重啓:安裝後必須重啓宿主進程,配置才能生效。
- 敏感數據可見性:一旦在
expose中授權,變量明文將進入模型上下文與本次會話記錄。 - 插件啓動機制:某些插件(如
dsh-sql)在啓動時只讀取一次環境變量,此插件通過熱重載機制解決了這個問題。 - 界面語言:支持中英文切換,跟隨平臺通用設置。
相關資源¶
- GitHub 倉庫: https://github.com/felixpu/dsh-settings-params
- 插件目錄: https://www.skillhub.cn/plugins/felixpu/dsh-settings-params