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
羽毛球分组比赛记分
小程序二维码

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

小夜