前言¶
DeepSeek Harness(DSH)把工作区绑定在本地目录上:侧栏点「工作区」旁的 +,默认会弹出文件夹选择器,你要先选好路径再注册工作区。若你按「数学 / 开发 / 硬件」这类分类管理多个工作区,每次建区都要在文件树里点一遍,节奏会被打断。会话一旦落在某个工作区的目录下,原生流程也不会提供「改归属」的接口——想归到新分类,通常只能在新工作区重新开对话。
dsh-workspace-plus(GitHub:ColdRainLab/dsh-workspace-plus)是 ColdRainLab 维护的客户端插件:把 + 换成「新建工作区」命名框,由宿主自动建同名文件夹并注册工作区;另外在会话菜单里提供「移动到工作区…」,以及设置里的「工作区记忆」与模型工具 workspace_memory。下面按安装、用法与限制说明。
这是什么¶
插件全名 dsh-workspace-plus,当前资料中的版本为 0.3.2,许可证 MIT,要求 engines.dsh >=0.2.1-rc.2(在 0.2.1-rc.3 上做过验证)。它不改 DSH「工作区必须绑定目录」的规则,只是把「选目录」收成「起名字 + 自动建目录」;并在此基础上扩展会话迁移与按工作区的上下文续接能力。
社区目录页:https://www.skillhub.cn/plugins/ColdRainLab/dsh-workspace-plus
源码与完整说明:https://github.com/ColdRainLab/dsh-workspace-plus
核心功能¶
命名新建工作区¶
侧栏「工作区」右侧 +,或快捷键 Ctrl+Alt+O(Ctrl+O 也可触发),弹出「新建工作区」对话框,不再出现原生文件夹选择器。
- 输入名称(作分类名,例如「数学」「开发」);父目录可改,默认等于最早创建的工作区的父目录(与现有工作区做邻居);尚无工作区时回退到
<DSH_HOME>/workspaces。 - 对话框实时显示「将创建:<父目录>\<名称>」。
- 点「创建」:宿主建同名文件夹(已存在则复用且不覆盖内容;若已有工作区指向该目录则报错),再经 DSH 原生接口注册工作区并打开新会话。
名称会作为文件夹名:不能包含 <>:"/\|?*,不能以句点结尾,不能是 Windows 保留名,最长 80 字符。
移动会话到其他工作区¶
任意会话行尾 「…」 菜单多出一项 「移动到工作区…」。
- 选择除当前工作区外的目标(列表含会话数)。
- 成功后:目标工作区出现同标题、完整历史的新会话并自动打开;原会话归档(可在「已归档」筛选中找回或取消归档)。
- 若会话正在运行,移动前会先
stopActivity,避免静默卡住。
语义是克隆 + 归档原会话:新会话有新 ID;0.3.2 起会在克隆前改写日志里 session-log-deepseek/delivery-accepted 的 data.sessionId,避免 DSH v4 报「历史加载失败」。更早版本已移动出来的会话需按 README「说明与限制」手动改标记后重新压缩。
工作区记忆¶
设置 → 工作区记忆 为每个工作区提供开关,写入 <DSH_HOME>/workspace-plus/workspace-memory.json。
开启后:当本会话上下文达上限、DSH 触发自动压缩(compaction/summary)且本轮结束(turn/end)时,宿主排队续接记录;浏览器轮询后在同一工作区打开新会话,输入框预填续接提示(含旧标题、上限说明、压缩摘要节选),由你确认后发送。
新会话中可使用模型工具 workspace_memory(仅在本工作区开关开启时):
action=list:列出本工作区最近会话;action=search+query:全文检索本工作区历史;action=read+session_id:读取指定会话最近内容。
工具校验调用者所在工作区,跨工作区拒绝;关闭开关后不再自动续接,工具对该工作区返回「未开启」。宿主侧路由与事件监听更新后需重启 DSH;浏览器侧可走 HMR。
安装与启用¶
README 中的安装示例(路径需按本机 dsh.cmd 与已下载的 .tgz 调整):
& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:/Users/ROG-STRIX/.dsh/plugin-archives/dsh-workspace-plus/v0.3.2/dsh-workspace-plus-0.3.2.tgz"
卸载:
& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-workspace-plus
安装后宿主热加载,刷新页面(Ctrl+R)后客户端行为生效;卸载即恢复原生文件夹选择器。
插件以当前 DSH 进程权限访问本地文件系统与会话日志,安装前请阅读源码与 MIT 许可证,确认路径与路由只绑定本机回环(README 实现要点中说明服务端不联网、不执行外部命令)。
典型用法¶
按分类快速铺工作区
Ctrl+Alt+O→ 名称填「开发」→ 创建。- 重复为「数学」「硬件」等建邻居目录下的工作区,侧栏即按名称分区。
把长对话归到另一个工作区
- 在原工作区会话 … → 移动到工作区… → 选中目标 → 移动。
- 在新工作区打开的是带完整历史的副本;原会话在归档中保留。
长上下文项目开启记忆
- 在设置里对该项目工作区打开「工作区记忆」。
- 上下文触顶压缩且本轮结束后,按提示在新会话续聊;需要回顾时用
workspace_memory的 list / search / read。
空白草稿(未写过第一轮)没有持久化日志,移动会提示「无法读取会话」——先在原工作区聊一轮或新建会话后再移动。
适用场景与注意¶
适合需要多工作区、按名称建目录、偶尔整段迁移会话、或在单工作区内做压缩后续接与历史检索的 DSH 用户。不适合指望「原地改会话目录」:已有会话的 cwd 不会因插件而改变,只能新建或移动(克隆)。
移动后少数按会话 ID 记录的附属数据(变更摘要、present 等)不会复制,首次打开可能缺个别侧栏徽标或出现相关 API 404/500,不影响继续对话。workspace_memory 的 search 依赖宿主 sessionQuery.searchSessions,缺能力时 list/read 仍可用、search 会报错。
DSH 生态主张「一切皆插件」;SkillHub 等社区目录与 DeepSeek / 幻方无官方从属关系,本插件亦如此。
结尾¶
dsh-workspace-plus 把侧栏 + 收成命名建区,并补上「移动到工作区…」与可选的工作区记忆,在仍遵守「工作区绑定目录」的前提下,减少选文件夹和手动分拣的成本。