dsh-multi-folder: Secondary Working Directories for DSH

前言

在 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 在单会话多项目场景下的文件操作限制。它提供了直观的菜单集成和命令行接口,并处理了权限和路径重定向的细节,适合需要在同一环境中管理多个代码库的开发者。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜