DeepSeek Harness 磁盘布局全景:DSH plugin 装在哪、会话与缓存在哪

概念与架构发布于 2026-10-17作者: DeepSeek Plugin 插件市场
DeepSeek Harnessdshdsh plugin数据目录备份磁盘清理
DeepSeek Harness 在磁盘上放了什么:安装目录与数据目录的分工、DSH plugin 与 profile 的落盘位置、会话/缓存/日志各在哪,以及备份优先级、清理回收与迁移到外置盘的三种做法。

理解 DeepSeek Harness 的磁盘布局,只要先分清两棵树:程序安装目录与数据目录。 前者是「可重装的部分」(可执行文件与依赖),后者是「你的东西」(profile 配置、已装 DSH plugin 记录、会话、凭据)——插件的安装记录在数据目录里,不跟程序走,这就是为什么删掉程序目录重装后插件还在、而换个数据目录启动插件就「消失」了。搞清楚这条,备份、清理、迁移、多机对齐四件事都会变简单:该备份的是数据目录,该清理的是缓存,该重装的是程序。

DeepSeek Harness 的两棵树:安装目录、数据目录与三种管理做法

一句话结论:程序目录可删可重装、数据目录不可删;两者分离是理解其余所有问题的前提。

安装目录数据目录(DSH_HOME)
内容可执行文件、依赖包profile 配置、已装 DSH plugin 记录、会话、凭据
删掉后果重装即可恢复丢配置与会话,插件需重装
换位置重新安装改环境变量即可
备份价值无(可再生)高(不可再生)
多机一致性各自安装即可决定「两台机器像不像」
  1. 查数据目录:echo $DSH_HOME——为空说明用的是默认目录(位置由程序约定),此时更需要显式设定,避免「不知道数据在哪」。
  2. 查程序位置:which -a dsh 与 npm ls -g @deepseek-ai/dsh,确认装在哪、有几个入口。

方案 A:用环境变量固定数据目录(推荐)

一句话结论:显式设定数据目录是后续一切(备份、迁移、多入口共享)的基础动作,成本是一行配置。

  1. 设定并持久化:
bash
export DSH_HOME="$HOME/.dsh"      # 写进 ~/.bashrc / ~/.zshrc
mkdir -p "$DSH_HOME"
  1. 让所有入口读到同一值:CLI 继承 shell 环境;桌面端与网页端需要在其启动环境里也能读到该变量,否则会出现「桌面端和 CLI 数据不一样」。
  2. 验证:
bash
ls -la "$DSH_HOME"       # 预期:能看到 profile、会话等子目录(名称随版本可能不同)
  1. 好处:数据位置确定后,备份脚本、迁移、容器挂卷都能直接引用它。

方案 B:按 profile 隔离多套环境

一句话结论:需要「工作一套、实验一套」时用 profile 隔离,而不是靠切换数据目录——更清晰、也更少误操作。

  1. 用 --profile 指定不同 profile(参数名以 dsh --help 为准),各自持有独立配置与 DSH plugin 集合。
  2. 实验环境指向单独的数据目录,彻底与日常环境隔离——这也是排查插件冲突时推荐的隔离手段(见 DeepSeek Harness 插件冲突总览)。
  3. 给每套环境写一行说明(在哪个目录、装了什么插件),避免几个月后自己都分不清。
  4. 清理时按 profile 粒度走,不要整目录删。

方案 C:把数据目录放到别处(外置盘 / 大容量盘)

一句话结论:本地盘紧张或要跨机复用时,把数据目录整体外移;要点是「移动 + 改指向 + 验证」三步。

  1. 先备份再移动(移动前做一份副本,出问题能退回):
bash
cp -a "$DSH_HOME" "${DSH_HOME}.bak"
mv "$DSH_HOME" /Volumes/外置盘/dsh-data     # 路径按你的实际盘位替换
export DSH_HOME=/Volumes/外置盘/dsh-data
  1. 改指向并让所有入口生效(含桌面端/网页端的启动环境)。
  2. 验证三件事:会话能打开、插件清单完整、服务能启动。
  3. 外置盘的额外注意:网络盘或外置盘可能带来权限与文件系统差异(大小写敏感、锁行为),移动后先跑一轮再删旧副本。
  4. 确认无误后再清理旧目录,别急着删。

DSH plugin 数据的三张备份优先级表

一句话结论:数据目录里也要分轻重——凭据与配置必须备份、会话建议备份、缓存不必备份。

优先级内容说明
必须备份凭据文件、profile 配置丢了要重新配置与授权,且部分内容不可再生
建议备份会话数据丢了无法恢复历史;长期积累价值高
不必备份缓存、索引类中间产物可重建,重跑一次即可
  1. 备份频率:凭据与配置在改动后备份;会话按你的使用强度定期增量备份。
  2. 备份方式:直接复制数据目录(注意权限位),或按子目录分别打包。
  3. 验证备份可用:在另一台机器或临时数据目录里恢复一次——没验证过的备份不算备份。

DeepSeek Harness 磁盘清理与回收:三种做法

一句话结论:清理只动缓存与历史会话,别动配置与凭据;先看体积分布再动手。

  1. 做法一:清包缓存(最安全、见效快):
bash
npm cache verify        # 先校验
npm cache clean --force # 需要时再清(会影响下次安装速度)
  1. 做法二:清理历史会话:按保留策略删除过期会话(uninstall/delete-session 一类操作),比整目录删除安全。
  2. 做法三:重建索引与投影缓存:把它们删掉后由程序重建,通常能回收可观空间——前提是你确认这些目录属于缓存而不是业务数据。
  3. 先看体积再决定:
bash
du -sh "$DSH_HOME"/* 2>/dev/null | sort -h | tail -5
# 预期:列出占空间最多的子目录,按此决定清理对象
  1. 别用整目录删除代替清理——那会连配置与凭据一起丢掉。

DSH plugin 排查注意事项

一句话结论:数据位置的排查顺序永远是「先确认 DSH_HOME、再确认版本、最后才怀疑插件」。

  1. 插件不见了→ 查 DSH_HOME 是否变了(换 shell、换容器、换入口都会变)。
  2. 换机后插件缺失→ 按清单重装(包本体不随数据目录搬走)。
  3. 磁盘不够→ 按三张表清理:先缓存、再历史会话,最后才考虑迁移数据目录。
  4. 迁移后行为异常→ 查外置盘权限与文件系统差异。
  5. 要多套环境→ 用 profile 隔离,不要靠来回改数据目录(容易记错)。
  6. 修复状态如实:本文对目录职责的划分基于官方 CLI 的 home/profile 说明与通用实践;具体子目录名称与结构随版本变化,查证时以你机器上 ls "$DSH_HOME" 的实际结果与官方 README 为准。

不确定某个插件装没装、装在哪个 profile 时,DSH Plugin Hub 的已安装列表比翻目录更快给出答案。

设置

来源:apps/cli/README.md、apps/desktop/README.zh.md、npm Docs · npm cache。

常见问题

DeepSeek Harness 把文件都放在哪些目录?哪些删了会丢数据?

可以分成两类:程序安装目录(重新安装即可恢复)与数据目录(由 DSH_HOME 指向,里面是 profile 配置、已装 DSH plugin 记录、会话与凭据)。程序目录可以放心删,数据目录删了会丢会话与配置,插件也要重装。所以清理磁盘前,务必先确认删的是程序目录还是数据目录。

DSH plugin 装在哪个目录?为什么我把程序目录删了插件还在?

在 DeepSeek Harness 里,这是最常见的一个误解:插件的安装记录与配置落在数据目录(DSH_HOME)里,不跟随程序安装目录。所以删掉程序目录后重装,插件清单可能仍然在;反过来,换一个数据目录启动,插件看起来就「不见了」。判断依据永远是数据目录指向哪,而不是程序装在哪。

怎么把 DeepSeek Harness 的数据目录换到外置盘或其它位置?

在 DeepSeek Harness 里,把数据目录整体移到目标位置,再通过环境变量把 DSH_HOME 指向新路径即可;关键是保证所有入口(CLI、桌面端、网页端)都读到同一路径,否则会出现「换个入口数据就不一样」。移动前先备份,移动后验证会话与插件清单是否完整。

清理 DeepSeek Harness 占用的磁盘,哪些可以删、哪些不能删?

在 DeepSeek Harness 里,可以删的是缓存类(重新下载或重建即可恢复);不建议删的是数据目录里的 profile 配置、会话数据与凭据。执行清理前先看目录体积分布,通常缓存与历史会话是占地大头——优先处理它们,而不是整目录删除。

换电脑时怎么把 DeepSeek Harness 环境搬过去?

在 DeepSeek Harness 里,搬两样:数据目录(保住配置、会话与插件清单)与插件清单里的包(按清单在新机器重装,因为包本体在各自的安装位置)。搬完在新机器上验证三件事:会话能打开、插件清单一致、服务能正常启动。

相关术语

DSH_HOME(数据目录)
DSH_HOME 是 DeepSeek Harness 存放可变状态的目录,包含 profile 配置、已装 DSH plugin 的安装记录、会话数据与凭据。它与程序安装目录分离,因此可以独立备份、迁移与清理。— https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
安装目录(install directory)
安装目录是 DeepSeek Harness 程序本体所在的位置(例如全局安装目录)。它只包含可执行文件与依赖,删除或替换都不会影响你的会话与插件记录,是最安全的重装对象。— https://docs.npmjs.com/cli/v10/commands/npm-cache
profile
profile 是 DeepSeek Harness 隔离配置与插件集合的单元,其数据落在数据目录下。按 profile 分类存放,是「同一台机器跑多套互不干扰环境」的实现方式。— https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
缓存目录(cache directory)
缓存目录用于存放可重建的中间产物,例如包缓存与索引类数据。它的特点是删了不会丢业务数据,只会让下次运行变慢或需要重新下载,因此是清理磁盘的首选目标。— https://docs.npmjs.com/cli/v10/commands/npm-cache

来源