DeepSeek Harness Python SDK 怎么卸载?venv、DSH_HOME 与会话日志
卸载 DeepSeek Harness Python SDK 要分两块看:一块是 venv 里的 Python 包与内置 dsh 运行时,另一块是你显式传给 SDK 的 dsh_home。 两者互不依赖:只删 venv,profile、插件与会话还留在磁盘上;只删 home,Python 包还在,下次调用又会生成新 home。先想清楚“我只是不想用这个包了”还是“这台机器上的数据也要清掉”。
DeepSeek Harness:先分清要删哪一层
SDK 的安装位置和数据位置是分离的,这是它比全局 dsh 更容易“删不干净”的原因。 对照如下:(来源)
| 层 | 典型位置 | 删除后影响 |
|---|---|---|
| venv / wheel | 项目下的 .venv | Python 包与内置 dsh 命令消失 |
| dsh_home | 你构造时传入的路径 | profile、插件、凭据、设置、sessions 消失 |
| sessions | <dsh_home>/sessions/ | 会话日志消失,无法恢复 |
全局 ~/.dsh | 全局 dsh 的 home | 与 SDK 无关,不要误删 |
官方明确说明:SDK 与随附示例绝不静默读取 ~/.dsh。所以看到 ~/.dsh 里有数据,不代表 SDK 用过它;卸载前先确认项目代码里 dsh_home 指向哪里。
DeepSeek Harness 的 dsh_home 里到底有什么
删除前先按目录结构核对,避免把还要保留的会话一起清掉。 典型结构:(来源)
profiles/sdk-minimal/— profile 的package.json、cordis.patch.yml与插件依赖。sessions/— 未压缩 JSONL 会话日志,可能含完整对话与工具结果。- 凭据与设置文件 — provider 密钥、设置等,通常位于 home 根下。
- 其他 profile — 如果你在同一 home 里建过别的 profile,也会在这里。
先 ls 一遍,再决定是整目录删、只删 profiles,还是只删 sessions。只删 sessions 不会影响插件,只删 profiles 也不会清掉历史对话。
DeepSeek Harness:卸载 venv 与 Python 包
最干净的方式是删除整个 venv;如果只想移除 SDK 而保留其他依赖,就在 venv 里单独 uninstall。 两条路径:(来源)
- 直接删除 venv — 先退出环境,再删目录。预期:
which dsh不再指向该 venv。 - 在 venv 内 uninstall —
python -m pip uninstall deepseek-harness-sdk。预期:包被移除,但 venv 里其他依赖保留。 - 检查全局安装 — 如果曾经在系统 Python 或用户目录装过,需要在对应环境再卸一次。预期:
which -a dsh只列出你还要保留的入口。
命令示例:
deactivate 2>/dev/null || true
rm -rf /srv/work/demo/.venv
删除前先确认没有正在运行的 SDK 进程;如果内置 dsh 还在跑,先停进程再删目录,避免文件占用或半删状态。
DeepSeek Harness:清理 dsh_home
dsh_home 是数据层,删之前先列清单:profile、插件、凭据、设置、sessions 各占什么。 步骤:(来源)
- 确认路径 — 从代码或环境变量里找到实际
dsh_home。预期:不是想当然的~/.dsh。 - 列出内容 — 看
profiles/、sessions/与插件目录。预期:知道哪些要备份、哪些可直接删。 - 备份会话 — 把
sessions/复制到安全位置。预期:需要复盘时有原始 JSONL。 - 删除 home —
rm -rf <dsh_home>。预期:下次启动 SDK 会生成新的极简 home。
如果只想重置配置、保留会话,可以只删 profiles/;如果只想清对话、保留插件,可以只删 sessions/。不要一上来就整目录删除。
DeepSeek Harness:会话日志与凭据怎么处理
sessions 是未压缩 JSONL,凭据与设置也在 home 里;这两类数据的保留策略要分开定。 判断口径:(来源)
- 会话日志 — 含完整对话与工具结果,可能带敏感信息。建议:需要审计就备份,不需要就随 home 一起删。
- 凭据 — SDK 使用的 provider key 等敏感信息可能在 home 内。建议:确认不再使用后删除,不要只删会话留下凭据。
- 插件 — 装在 profile 的 node_modules 里,删 home 会一起消失。建议:记录插件清单,换环境时重装。
- 设置 — 与 profile 一起存在。建议:需要复用的配置先导出或备份 patch。
如果这台机器还要保留全局 dsh,务必只删 SDK 的 home,不要碰 ~/.dsh。
DeepSeek Harness:三种清理范围
按“只想卸包 / 想清数据 / 想彻底不留痕”三档选择,不要默认全删。 对比如下:(来源)
- 轻量:只删 venv — 保留 home,方便以后重装继续用。代价:磁盘上仍有会话与插件。
- 标准:删 venv + 删 home — 包与数据一起清。代价:会话无法恢复,重装要从零配置。
- 彻底:再清缓存与备份 — 删除 pip 缓存、临时目录与旧备份。代价:不可逆,操作前必须确认。
多数开发机用“标准”即可;只有在共享机器或合规要求下才需要“彻底”。
卸载前后的验证
卸载前确认删的是哪套,卸载后确认没有残留入口,才算完成。 三步验证:
- 卸载前记录路径 — 写下 venv 绝对路径与
dsh_home绝对路径。预期:操作时不会误删全局~/.dsh。 - 卸载后查命令 —
which -a dsh与python -m pip show deepseek-harness-sdk。预期:只剩你打算保留的安装。 - 重启一次调用 — 用新 venv 或系统 Python 跑最小任务。预期:不会重新生成旧 home 或加载旧插件。
如果第 3 步又生成了旧 home,说明代码里还硬编码着旧路径;先改代码,再继续清理。
DeepSeek Harness 常见问题
Q:卸载 SDK 后 dsh 命令还能用,是没卸干净吗?
不一定。dsh 可能来自全局安装或另一个 venv。用 which -a dsh 看来源,再决定卸哪一个。
Q:只删 sessions 会不会影响插件? 不会。sessions 只是会话日志;插件在 profile 目录里。删 sessions 后插件仍在,但旧对话无法恢复。
Q:重装后怎么复用旧配置?
复用同一个 dsh_home,并把原来的 cordis.patch.yml 放回 profile。不要复用旧 venv,运行时版本可能不匹配。
一句话收束: SDK 卸载的关键不是“删哪个目录”,而是先分清包与数据;venv 管运行,home 管数据,两者要分别决定去留。
常见问题
DeepSeek Harness 里,不够。venv 里是 Python 包与内置 dsh 运行时,会话、profile、插件、凭据与设置都在显式传入的 dsh_home 里。只删 venv 会留下数据,只删 home 也不会卸载 Python 包。
DeepSeek Harness 里,不会。SDK 与随附示例绝不静默读取 ~/.dsh,只使用你显式传入的 dsh_home。卸载时不要误删全局 dsh 的 ~/.dsh,先确认当前项目实际用的是哪个 home。
DeepSeek Harness 里,存在显式 dsh_home 下的 sessions/,是未压缩的 JSONL。可以直接删,但删除后无法恢复;需要保留对话记录时先备份再清。
DeepSeek Harness 里,看 dsh 来自哪里。SDK 的 dsh 命令在 venv 里,退出并删除 venv 后就不可用;如果 PATH 上还有全局安装的 dsh,那是另一套安装,需要单独卸载。
DeepSeek Harness 里,只要复用同一个 dsh_home 与 session id,旧会话日志还在。重装不会主动迁移或清理 sessions;如果新版本要求格式迁移,按启动提示处理。
相关术语
- dsh_home
- dsh_home 是 DeepSeek Harness SDK 使用的隔离 home,保存 profile、插件、凭据、设置与 sessions;SDK 只读显式传入的 home,不读 ~/.dsh。— DeepSeek Harness 官方文档 - Python SDK 入门
- venv
- venv 是 Python 虚拟环境,deepseek-harness-sdk 的 wheel 与内置 dsh 命令装在其中;删除 venv 会同时移除 Python 包与这套运行时。— DeepSeek Harness 官方文档 - Python SDK 入门
- sessions
- sessions 是 dsh_home 下保存会话日志的目录,SDK 默认写入未压缩 JSONL;删除后无法恢复对话记录。— DeepSeek Harness 官方文档 - Python SDK 入门
- sdk-minimal
- sdk-minimal 是 SDK 随附的极简 profile,保存在 dsh_home/profiles/sdk-minimal;卸载 SDK 时它不会自动删除,需要按清理范围决定是否移除。— DeepSeek Harness 官方文档 - Python SDK 入门
来源
- DeepSeek Harness 官方文档 - Python SDK 入门· deepseek-ai
- DeepSeek Harness 官方参考 - dsh CLI 行为· deepseek-ai