前言¶
DeepSeek Harness (DSH) 的原生模式通常是一个会话绑定一个工作区目录。要在多个项目间切换,通常需要另开会话,导致上下文丢失,无法连贯处理。
dsh-ProjectModel 插件解决了这个问题。它允许在一个会话里直接操作一组项目文件夹(项目组)。AI 可以读写组内任意文件、列出目录、运行命令,并查看各项目的 AGENTS.md。每个项目可附带一句说明,帮助 AI 快速定位目录。
安装¶
安装前请确保已安装 DeepSeek Harness (DSH) CLI 和 pnpm。
使用官方插件机制安装:
dsh plugin --profile web add .
安装过程会自动将插件注册为 profile 的依赖,并持久化配置到 settings.yaml。重启 DSH 后生效。
核心功能¶
项目组管理
支持将多个项目文件夹组织成一个组。组内文件路径默认允许读写(v1.1 起),不再弹出沙箱批准询问。命令执行仍走 project run。
项目说明
每个项目文件夹可设置一句 desc 说明。设置页直接编辑,list 工具和 AI 提示词都会带上(格式为“标题 路径(说明)”),方便 AI 判断目标目录。
跨文件夹工具
插件提供了以下工具,通过 folderId 指定目标,无需手动切换工作区:
* list:列出项目组及所有文件夹信息。
* readFile / writeFile / listDir:对指定文件夹读写文件、列目录。
* run:在指定文件夹运行命令(支持 PowerShell)。
* agents:查看指定项目的 AGENTS.md。
* setFolderDesc:设置文件夹说明。
安全与上下文
* 安全沙箱:文件操作限制在已注册文件夹内,fs.contains 越界拒绝。
* 上下文感知:Agent 的提示词会自动带上项目组与全部文件夹列表。
* 零侵入 UI:仅通过追加插槽实现,不改动原始侧栏与对话框样式。
典型用法¶
在对话中直接指令:
- 组织项目组:
“把E:\proj-a和E:\proj-b加进项目组「后端」” - 查看文件:
“在 QzoneDown-Go 里看下 go.mod” - 运行命令:
“对 SSL-Assistant 跑一下git status” - 跨项目对比:
“同时对比一下 QzoneDown-Go 和 SSL-Assistant 的 go.mod” - 查看规范:
“看看 QzoneDown-Go 的 AGENTS.md 里对代码风格有什么要求” - 设置默认:
“把这个工作区的默认项目组设为 github” - 添加说明:
“给 QzoneDown-Go 加一句说明:QQ 空间下载器主项目”
注意事项¶
- 插件依赖
@deepseek-ai/dsh-tools、@deepseek-ai/schemastery、@deepseek-ai/dsh-settings,这些依赖随 DSH 安装提供。 - 组内文件路径默认放行是基于当前会话的沙箱限制。
- MIT 开源协议。