在 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