前言¶
在 DSH (DeepSeek Harness) 的使用中,Agent 通常被限定在单一的工作目录下运行。当需要在同一个会话中同时处理多个项目或文件夹时,频繁切换工作目录或调整权限配置会增加操作复杂度。
dsh-multi-folder 插件为 DSH 项目引入了次要工作目录的概念。它允许 Agent 保持主工作区不变,同时通过 @ 语法访问配置好的次要目录,并在 workspace-write 模式下获得这些目录的读写执行权限。
插件简介¶
该插件由 HelloQingTao 维护,基于 AngelosZou/dsh-multi-folder 的早期工作(MIT 许可证)。它扩展了 DSH 的文件系统能力,使 Agent 能够像操作主目录一样操作多个辅助目录。
核心能力¶
- 菜单集成:在 Composer 的
+菜单中显示 “Multi-folder” 条目。点击可打开原生目录浏览器(当原生不可用时,会降级到插件自绘的目录浏览器)或直接进行添加/移除操作。 - 文件引用:在输入框中输入
@,系统会列出次要目录中的文件。选中的路径为绝对路径,Agent 可直接读取。支持使用 Tab 键在目录列表中下钻。 - 权限与重定向:在
workspace-write模式下,Agent 对次要目录拥有完整的读写执行权限。write、edit、pwsh、bash等工具会自动将上下文重定向到对应的次要目录。 - 跨窗口同步:配置存储在宿主级的共享存储中。在另一个窗口修改配置,或直接编辑 JSON 文件,当前窗口在下一次读取时即可生效,无需重启后端。
安装与启用¶
安装该插件需要满足以下前置条件:
* Node.js 版本 >= 20
* DSH 版本 >= 0.1.7
执行以下命令进行安装:
dsh plugin --profile web add @zfgcta/dsh-multi-folder
安装完成后,必须重启 DSH 后端以加载插件,并刷新浏览器页面。
典型用法¶
命令行管理¶
你可以通过命令行工具对次要目录进行管理:
/multi-folder list
/multi-folder add "D:\path\to\repo"
/multi-folder remove "D:\path\to\repo"
/multi-folder set "D:\a" "D:\b"
交互式引用¶
在输入框中输入 @,系统会将次要目录作为独立分组展示。选中目录后按 Tab 键可以进入子目录浏览。
注意事项¶
- 运行时冲突:该插件与
AngelosZou/dsh-multi-folder共享运行时命名空间,请勿同时安装两者。 - Windows ACL 限制:在 Windows 环境下,如果一个进程树只有一个可写根目录,命令若停留在主工作区则无法在次要目录中创建文件。遇到此类情况时,插件会在工具结果中提示必须传递
workdir参数(指向绝对路径)。 - 配置生效:配置更改在消息或工具调用边界时生效,无需中断当前会话。
总结¶
dsh-multi-folder 通过引入次要工作目录,解决了 DSH Agent 在单会话多项目场景下的文件操作限制。它提供了直观的菜单集成和命令行接口,并处理了权限和路径重定向的细节,适合需要在同一环境中管理多个代码库的开发者。