前言¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在多会话并行开发或复杂任务拆解中,开发者常面临上下文混乱、记忆难以跨会话共享、以及长对话历史导致的 Token 消耗剧增等问题。dsh-projects-mode 是一个为 DSH Web GUI 打造的客户端插件,它引入了 WorkBuddy 风格的「项目模式」,旨在通过统一的项目视图和上下文管理机制,解决会话归属模糊、指令更新滞后和上下文冗余的问题。
核心功能¶
全屏管理台与侧边栏入口
插件在侧边栏功能行新增「📁 项目」入口,点击后会在中间栏全屏打开项目管理台。这是所有项目管理的操作中心,支持创建、重命名和删除项目(删除操作有二次确认,仅删除分组配置,不影响底层会话)。
实时上下文注入
这是该插件的核心差异化能力。它支持为项目编写「指令」和「记忆」:
* 指令:通过 DSH 的 system-prompt 动态段实现。写入后,指令会实时注入到本项目所有会话的上下文中,修改后立即生效,无需重启会话。
* 记忆:跨会话共享的记忆块。保存后,记忆内容会在下一个模型步骤中原位替换刷新,而非仅仅注入一次快照,确保上下文始终最新。
自动项目简报
为解决新会话建立时需要拖拽老会话历史导致 Token 消耗巨大的问题,插件会从本项目最近会话的真实历史中蒸馏出一份简报(包含标题、需求和会话时间)。
* 效果:新会话仅需约 1 千 token 的简报,相比拖拽完整历史可节省 95% 以上的 Token。
* 机制:简报按会话缓存 30 分钟,之后每步原位刷新。
Token 计量
在编辑指令或记忆的输入框中,插件会实时估算当前内容的 Token 占用。超过阈值(如 1500)会显示黄色警告,超过 4000 则显示红色,提醒开发者精简内容。
工作目录自动归属(v0.4)
在项目设置中指定工作目录路径后,该目录及其子目录下发起的会话会自动归入该项目,无需手动拖拽。
* 优先级:当多个项目路径重叠时,遵循「最长前缀优先」原则。
* 交互:手动归入会话会覆盖自动归属,且「退出选择」后不会被自动归属重新拉回。
失效归属清理与维护
* 清理:项目详情页提供「🧹 清理失效归属」功能,可一键移除指向已删除会话的记录。插件启动时会自动执行一轮清理。
* 活跃时间:会话的活跃时间基于日志文件的修改时间(mtime)计算,反映真实最后活动时刻。
* 状态行隐藏:插件会自动隐藏侧边栏底部的「Cordis Plugin · N running」状态行。
API 加固与安全
* 新增 Host 头校验和 Origin 同源校验,防止 DNS rebinding 和恶意页面跨域驱动 API。
* 简报缓存设置了上限(300 条)并在归属变更时修剪,防止长期运行导致内存膨胀。
安装与启用¶
请确保环境满足依赖要求:Node.js >= 20。
# 克隆插件到指定目录
git clone https://github.com/BertramWang12399/dsh-projects-mode.git ~/.dsh/plugins/dsh-projects-mode
# 通过 DSH CLI 注册插件
dsh plugin --profile web add link:$HOME/.dsh/plugins/dsh-projects-mode
安装完成后,需要重启 dsh web 进程(DSH Desktop 会自动拉起子进程)。在浏览器中,请执行硬刷新(Mac: Cmd+Shift+R,Windows: Ctrl+Shift+R)以清除缓存并加载新代码。
典型用法¶
- 启动项目台:点击侧边栏的「📁 项目」,在中间栏打开全屏管理台。
- 管理上下文:在管理台中编写项目的「指令」和「记忆」,保存后,新创建的会话或当前会话会立即获得这些上下文。
- 新建会话:在项目详情页点击「✨ 新建会话」,系统会自动注入项目简报,并立即将新会话归属到该项目。
- 监控 Token:在编辑指令或记忆时,观察输入框上方的实时 Token 估算,避免超出模型限制。
- 利用工作目录:将项目的工作目录设置为
/path/to/project,在该目录下打开新会话时,无需手动操作,系统会自动将其归入项目。 - 快速切换:在对话区右上角,点击浮动的项目徽标,可以快速切换当前会话所属的项目或移出项目。
- 维护会话列表:在项目详情页使用「🔎 过滤会话标题」快速定位特定会话,或在需要时使用「🧹 清理失效归属」清理数据。
注意事项¶
- 数据存储:插件的数据文件保存在
~/.dsh/.dsh-projects.,卸载时建议手动保留该文件(或迁移)。 - 兼容性:该插件在 macOS arm64 平台及 DSH Desktop(DSH 0.1.1-rc.2)上经过验证,理论兼容 Linux 和 Windows。
- 日志写入:插件不会向
session log写入任何自定义事件,以避免触发上游事件白名单导致的读取问题。 - 依赖:需要 Node.js 版本大于等于 20。
结语¶
dsh-projects-mode 通过将 DSH 的会话管理与项目化视图相结合,提供了一套从指令注入、记忆同步到 Token 优化的完整解决方案。对于需要在 DSH 中进行长期、多会话协作的开发者而言,这是一个实用的工具。