DSH plugin 更新插件用什么命令?DeepSeek Harness 批量与单个升级流程

更新与升级发布于 2026-10-12作者: DeepSeek Plugin 插件市场
DeepSeek HarnessDSH plugin更新插件dsh plugin update升级命令批量更新
更新 DSH plugin 用的是 dsh plugin --profile <name> update <pkg>:带包名只更一个,不带包名则更新该 profile 里的全部插件,重启 dsh web 后生效。本文只回答「该敲哪条命令」,对照本体与插件两套命令、单个与批量两种写法,并给出更新失败时钉版本回退的办法。

更新 DSH plugin 的命令就一条:dsh plugin --profile <name> update <pkg>——带包名只更一个,不带包名则更新该 profile 里的全部插件,重启 dsh web 后生效(来源)。 这篇只回答「更新插件该敲哪条命令」这一问,按三个方向展开:命令与顺序、单个与批量的写法、以及失败后怎么退回。

概览:DSH plugin 更新命令速查,先分清「更什么」

更新前先问自己「要更的是程序还是插件」——两条线命令完全不同。

要更新什么该敲的命令
某个插件dsh plugin --profile <name> update <pkg>
该 profile 全部插件dsh plugin --profile <name> update
更新到精确版本dsh plugin --profile <name> add <pkg>@<version>
DeepSeek Harness 本体(全局)npm update -g @deepseek-ai/dsh
DeepSeek Harness 本体(npx)不用更,npx @deepseek-ai/dsh web 每次拉最新

关键事实是:dsh plugin --profile <name> 之后的参数会原样转发给 pnpm,所以 update、add、remove、why 这些 pnpm 动词直接可用(来源)。

更新 DSH plugin 的命令与顺序:先看版本,再更新,最后重启生效

顺序比命令更容易出错,按这三步走就不会乱:

  1. 先看有哪些可升 — 在目标 profile 下跑 dsh plugin --profile web outdated,列出有新版本的包。预期:看到当前版本与可升版本对照。若不想敲命令,市场里「可更新」徽标也会标出来。
  2. 再执行更新 — 单个用 update <pkg>,批量用不带包名的 update。预期:pnpm 完成拉取与写入,profile 的 package.json 与依赖被更新。
  3. 最后重启生效 — 更新不会热加载,重启 dsh web 才用上新版本(来源)。预期:重启后插件版本号变为新版。

图形化路径同样走这三步:在 DSH Plugin Hub 的已安装列表里点「可更新」,确认弹窗后原位覆盖安装,界面会提示待重启。市场里点更新与命令行更新改的是同一层,只是入口不同。

DSH Plugin Hub 确认更新

DSH plugin 单个还是批量更新:写法差别与 profile 归属

两种写法只差一个包名参数,但风险面完全不同。

  • 单个更新:dsh plugin --profile web update dsh-memory——只动指名的那一个包,其余依赖不受影响。适合只想升某个插件、担心连带回归的场景。更细的步骤见《dsh 更新单个插件》。
  • 批量更新:dsh plugin --profile web update——把该 profile 里的全部依赖升到允许范围内的最新版。适合定期统一升级,代价是改动的包多、出问题时排查面更广。步骤见《批量更新插件》。

两个前提别忽略:

  1. 选对 profile:插件按 profile 归属。你界面跑的是哪个 profile,就要 --profile 到那一个;改错 profile 等于没改。多环境并存的写法见《按 profile 更新插件》。
  2. 区分本体与插件:update -g 升的是程序,dsh plugin ... update 升的是插件,两者互不影响,别用错。

DSH plugin 更新失败与回退:钉版本、装回指定版本

更新失败或更新后异常,最快的退路是「装回精确版本」。

  1. 先重试与定位 — 失败先看是不是网络 / 镜像问题,重试一次;dsh plugin ... outdated 能帮你确认到底卡在哪个包。预期:网络类失败重试即过。
  2. 装回指定版本 — 用 dsh plugin --profile <name> add <pkg>@<version> 精确落到目标版本,它会同时改 profile 的 package.json 与依赖。预期:插件回到你指定的那个版本。
  3. 长期钉住版本 — 若某个版本必须长期固定、不再被批量更新带走,按版本钉住的写法处理。见《插件版本钉住》与《更新回滚》。

更新 DSH plugin 的注意事项

  1. 改完必须重启:不重启 dsh web,新版不会加载,别把「没生效」误判成更新失败。
  2. 批量更新前先记录版本:出问题时好对照,也方便用 add 包名@版本 精确回退。
  3. profile 别写错:--profile 必须指向你正在运行的那个环境,否则改动落在别处。
  4. 命令别混用:升级程序用 npm update -g,升级插件用 dsh plugin ... update,两套线各管各的。
  5. 钉版本要自觉:批量更新会按声明范围带升依赖,需要固定的包要显式钉住。

来源:dsh CLI README、DeepSeek Harness 源码 - CLI 参数定义、pnpm 官方文档 - pnpm update

常见问题

DSH plugin 更新插件到底用哪条命令,是先看版本还是直接更新?

更新 DSH plugin 用 dsh plugin --profile <name> update <pkg>:dsh plugin 把后面的参数原样转发给 pnpm,所以 pnpm 的 update 语义直接可用。 带包名只更那一个,不带包名则更新该 profile 里的全部依赖;更新完要重启 dsh web 才生效。

更新单个 DSH plugin 和批量更新全部插件,命令写法差在哪?

差别只在有没有包名:update <pkg> 是单个,update 不带包名是批量。 批量会把该 profile 里的所有依赖一起升到允许的最新版本,适合定期统一升级;单个适合只动一个包、避免连带风险。

更新 DSH plugin 和更新 DeepSeek Harness 本体是同一条命令吗?

不是,两套命令互不影响:本体更新是重新拉取 dsh 程序本身(npx 每次拉最新、全局用 npm update -g @deepseek-ai/dsh、源码版 git pull);插件更新才是 dsh plugin ... update。 别把插件命令当成升级程序用。

DSH plugin 更新完之后没生效是怎么回事,要重启吗?

多数情况是没重启:插件在启动时加载,更新后要重启 dsh web 才会用上新版本。 若重启仍不对,先确认你更新的是运行中的那个 profile——插件按 profile 归属,改错 profile 等于没改。

DSH plugin 更新失败或更新后异常时,怎么退回旧版本?

用 add 精确装回目标版本即可:dsh plugin --profile <name> add 包名@版本号,它会同时改 profile 的 package.json 与依赖。 想先看有哪些包可升,跑一遍 pnpm outdated;需要钉住版本长期不回退的写法见版本钉住指引。

相关术语

dsh plugin(插件管理子命令)
dsh plugin 是 DeepSeek Harness 的插件管理子命令,形式为 dsh plugin --profile <name> <pnpm args>;它把 --profile 之后的参数原样转发给 pnpm,因此 add、remove、update、why 等动词直接可用。— https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/src/args.ts
pnpm update(更新语义)
pnpm update 在依赖声明的版本范围内把包升到最新,dsh 通过 dsh plugin ... update 复用它:带包名只更新该包,不带包名则更新 profile 里的全部依赖。— https://pnpm.io/cli/update
profile(插件归属)
profile 是 DeepSeek Harness 里一套有序的插件与配置栈,插件按 profile 安装与生效;更新时必须指定运行中的那个 profile,否则改动不会影响当前界面。— https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
版本钉住(pin)
版本钉住是把依赖固定到精确版本号的做法,dsh 侧通过 dsh plugin ... add 包名@版本号 实现,把 profile 的 package.json 与依赖一起改到该版本。— https://pnpm.io/cli/update

来源