DSH 怎么配置和使用?配置文件、模型密钥与 profile 详解
DSH 的配置都集中在 $DSH_HOME(默认 ~/.dsh)下,改配置前先用 dsh --dump-config 看当前生效值,模型密钥则直接在 Web UI 的设置里填。
配置存在哪
DSH 用环境变量 $DSH_HOME 定位数据目录,默认是 ~/.dsh。 里面主要装三类东西:
~/.dsh/profiles/<名字>:每个 profile 一个目录,放这个 profile 的插件依赖(package.json)和它自己的cordis.patch.yml覆盖层。~/.dsh/cordis.patch.yml:home 级、所有 profile 共享的机器本地偏好。~/.dsh/sessions/:会话记录,和配置分开存放。
profile 目录的 package.json 不用手写,dsh plugin 命令会负责创建和维护(来源)。所以日常「改配置」通常只碰两处:Web UI 里的设置项,以及 cordis.patch.yml 覆盖层。
先看再改:dump-config
改配置前先看一眼当前组合后的结果,能少踩很多坑。 两条命令都不用真正启动 DSH:
dsh --dump-config # 组合后的配置树
dsh --dump-default-config # 内置默认值
--dump-config 会把「profile 内置组合包 → profile 覆盖层 → home 覆盖层 → --patch 参数」逐层叠加后的最终配置打印出来,方便你确认某个值到底从哪一层来的(来源)。
配置怎么分层叠加
DSH 的生效配置是在「空根」上逐层叠加出来的,后应用的层按行胜出。 顺序是:
- profile 的
dsh.profile.bundles列表里的组合包,按列表顺序; - profile 自己的
cordis.patch.yml; - home 级的
~/.dsh/cordis.patch.yml; - 命令行
--patch <path>覆盖层,按参数顺序。
也就是说,想让某个插件带自定义配置,最干净的做法是在 cordis.patch.yml 里按插件行的 id 覆盖它的 config,而不是改它源码。注意 patch 是整行替换 config,不是逐键深合并,覆盖时要把需要的键都写全。
模型密钥在哪配
模型连不上的九成原因,是 API Key 没配。 打开 Web UI 的设置 → 模型,输入 DeepSeek API 密钥保存,模型路由立即生效、不用重启(来源)。自定义端点走 OpenAI 兼容配置,参考官方 providers 文档。
Key 填错、额度用尽也会表现为连不上,排查见《DSH 常见问题排查》。
常用用法:端口与工作区
换端口用 --port,首次打开页面先选工作区。 默认 Web UI 开在 http://127.0.0.1:3080,端口被占就换一个:
dsh --profile web --port 8080
--port 是 Web 应用自己的参数,要跟在 --profile web 后面;dsh web 就是 --profile web 的别名。新的 Web UI 在添加工作区前不会选中任何工作区,需要先点选择工作区加入项目目录,会话输入框才可用(来源)。
认识 profile
profile 是一套可启动的组合,内置 web 和 headless 两个。 dsh web 启动的就是 web profile;headless 用于一次性跑任务。插件装进哪个 profile 就只影响哪个环境,多个 profile 互不干扰。首次使用会自动初始化内置 profile,其他 profile 通过 dsh plugin 命令创建。
想彻底不要某个 profile,直接删除 ~/.dsh/profiles/<名字> 即可,DSH 下次启动会重建 web、headless。改完配置想验证,回头用 dsh --dump-config 再确认一遍即可。DSH 还在开发者预览阶段,文件布局可能调整,动手前以官方文档为准。
常见问题
都在 $DSH_HOME 下,默认是 ~/.dsh。profile 配置在 ~/.dsh/profiles/<名字>,机器级共享配置在 ~/.dsh/cordis.patch.yml。
执行 dsh --dump-config 看组合后的配置树,dsh --dump-default-config 看默认值,都不用真正启动 DSH。
打开 Web UI 的设置 → 模型,输入 DeepSeek API 密钥保存即可,模型路由立即生效、不用重启。
执行 dsh --profile web --port 8080。--port 是 Web 应用自己的参数,跟在 profile 后面。
profile 是一套可启动的组合,内置 web 和 headless 两个。每个 profile 对应 ~/.dsh/profiles/<名字> 一个目录,插件装进哪个 profile 就只影响哪个环境。
来源
- dsh CLI README· deepseek-ai
- DeepSeek Harness 官方文档 - Quickstart· deepseek-harness