dsh 更新插件用什么命令?DeepSeek Harness 单个插件更新、更新失败兜底与回滚指南
dsh 更新单个插件用 dsh plugin --profile <name> update <pkg>:dsh plugin 子命令会把剩余参数原样转发给 pnpm,所以 pnpm 的 update 语义原样可用。先分清本体更新和插件更新两套命令,再按步骤更新单个插件;失败时用 DSH Plugin Hub 重装或回滚兜底。
先分清:本体更新 vs 插件更新
更新 dsh 程序和更新 DSH plugin 是两套完全不同的命令,别混用。 DSH 本体是启动器 + 内置 bundle,插件是装进 profile 的外置包——更新路径不同(来源):
| 要更新什么 | 命令 | 说明 |
|---|---|---|
| DSH 本体(一次性运行) | npx @deepseek-ai/dsh web | 每次运行都拉取最新包 |
| DSH 本体(全局安装) | npm update -g @deepseek-ai/dsh | 更新已全局安装的 dsh |
| DSH 本体(源码版) | git pull + 重新构建 | 在仓库目录里拉最新源码 |
| 某个插件 | dsh plugin --profile <name> update <pkg> | 更新单个插件 |
| 全部插件 | dsh plugin --profile <name> update | 更新 profile 里所有依赖 |
关键点:dsh plugin --profile <name> 之后是 pnpm 参数——官方定义里写得很清楚,add、remove、update、why 等 pnpm 动词原样可用(来源)。
更新单个插件的完整步骤
只更新一个插件、不影响其他插件,核心就是给 update 指定包名。 按下面 5 步操作:
- 先看哪些插件有新版本:pnpm 的
outdated会检查 profile 里的依赖更新。dsh plugin把参数原样转发给 pnpm,所以直接在 profile 上跑:输出里列出「Current / Latest / Want」的就是可更新的包。bashdsh plugin --profile web outdated - 更新单个插件:
把bash
dsh plugin --profile web update dsh-memorydsh-memory换成你要更新的包名。pnpm 只更新这一个包,其他插件不动。 - 确认更新成功:再次跑
pnpm outdated,目标包应从列表消失;或在终端里确认没有报错。 - 重启 / 刷新验证:插件更新后,Web UI 里刷新页面(或重启
dsh web),确认功能正常、没有报错。 - 想更新到精确版本号:
update只做版本范围内的小步更新,要锁定精确版本用add:它会更新 profile 的 package.json 并安装目标版本。bashdsh plugin --profile web add [email protected]
更新失败怎么办:兜底与回滚
插件更新失败先看报错类型,再选兜底方案——重装或回滚,别一直重试同一条命令。 按顺序处理:
- 先重试一次:报错若是网络超时、镜像拉不动,重试或换镜像源即可。
- 用 DSH Plugin Hub 重装:打开 Web UI 的「设置 → 插件中心」——即社区插件市场 DSH Plugin Hub,找到该插件一键重新安装,图形化操作绕开命令行网络问题。
- 回滚到上一版本:更新后插件行为异常,用
add装回旧版本号:注意回滚后要在插件中心或bashdsh plugin --profile web add [email protected]pnpm outdated里核对兼容状态,避免旧版本与当前 DSH 不匹配。 - 更新失败影响使用时的通用兜底:git 分发缺构建产物的插件更新后可能加载失败,改装 npm 版(registry 有 npm 包时直接
add 包名不带github:前缀),或到 DSH Plugin Hub 确认该插件的兼容状态。

注意事项
dsh plugin之后接的是 pnpm 参数,update、add、remove、why、outdated等都可用(来源)。- 更新单个插件一定要带包名;不带包名的
update会更新整个 profile 的全部依赖。 - 更新前先跑
dsh plugin --profile <name> outdated,看清单再动手,避免盲目更新。 - 更新后刷新/重启验证一次,插件更新不兼容时立刻回滚。
- 需要精确版本时用
add 包名@版本号,update不做大版本跳跃。 - 想省事,单插件更新可直接在 DSH Plugin Hub「设置 → 插件中心」点更新按钮,检测到新版本一键完成。
常见问题
用 dsh plugin --profile <name> update <pkg>。dsh plugin 子命令会把后面的参数原样转发给 pnpm,所以 update 一个包就是 dsh plugin --profile web update 包名;更新前建议先跑一遍 pnpm outdated 看哪些包有新版本。
不一样。本体更新是重新拉取 dsh 程序本身(npx @deepseek-ai/dsh web 会拉最新、npm 全局安装用 npm update -g @deepseek-ai/dsh、源码版用 git pull);插件更新是 dsh plugin --profile <name> update <pkg>,两者互不影响。
dsh plugin 会把参数原样传给 pnpm,所以给 update 指定包名就是只更新它:dsh plugin --profile web update dsh-memory。不带包名的 update 才是更新 profile 里的全部依赖。
先看报错是不是网络/镜像问题,重试一次;还不行就在 DSH Plugin Hub 的「设置 → 插件中心」重新安装该插件,或参考 update-rollback 的流程把插件回滚到上一版本再试。
pnpm update 只做版本范围内的小步更新;要精确指定版本,用 add 直接装目标版本:dsh plugin --profile web add 包名@1.2.3。该命令会同时更新 profile 的 package.json 与依赖。
来源
- DeepSeek Harness 源码 - CLI 参数定义(plugin 子命令转发 pnpm)· deepseek-ai
- DeepSeek Harness CLI README(dsh plugin 用法)· deepseek-ai
- pnpm 官方文档 - pnpm update· pnpm