dsh-extra-workspaces:为 DSH 会话挂上额外本地工作目录

前言

在 DSH 里跑智能体时,模型和工具通常只围绕「当前会话的工作目录」活动。实际开发里却经常要对照另一份仓库、共享配置树或只读参考代码——把这些路径硬写进提示词既难维护,也容易和真实可访问范围不一致。

下面介绍社区插件 dsh-extra-workspaces(维护者 dongkid,SkillHub 分类为「记忆」):在会话设置里维护一份「额外工作区」清单,并在清单变化时向模型注入一条运行时上下文提醒,说明每个目录的别名、绝对路径、备注,以及当前权限档下能否修改这些目录。它不把目录注册为 DSH 正式工作区,也不改 DSH 本体或挂钩子。

这是什么

dsh-extra-workspaces 给单个 DSH 会话提供可配置的额外本地工作目录列表。清单保存在会话设置中(路径形如 <DSH_HOME>/storages/session_settings/sessions/<会话id>.json),DSH 重启后同一会话仍保留。提醒只在清单变化时注入,不是每轮对话重复发送。

核心功能

会话设置里的「额外工作区」

右侧栏 会话设置 页会多出一节 额外工作区。你可以:

  1. 通过 DSH 自带的目录选择器添加目录;
  2. 为每条目录设置别名、一句备注;
  3. 删除已有条目。

运行时上下文提醒

当清单发生变化时,模型侧的最新上下文里会出现一条提醒,列出各条目的别名、绝对路径、备注,并按会话实际权限档说明能否修改这些目录,避免模型误以为可写而实际被拒绝。

权限:不扩大 DSH 可写范围

本插件不扩大 DSH 允许写入的范围。DSH 的可写根仍是会话自己的工作目录(外加系统临时目录)。行为可概括为:

会话权限档 主工作区 额外工作区
仅可查看 读得到,改不了 读得到,改不了
工作区可写 读得到,改得了 读得到,改不了;只读类命令可跑,要写文件的命令会被拒绝
完全权限 完全对等 完全对等

校验规则

  • 同一目录重复添加会被拒绝;
  • 与已有条目存在父子包含关系(父目录或子目录)也会被拒绝,避免出现「加了父目录后主工作区反而落在其子路径下」的状态;
  • 每个会话默认最多 8 条,可通过配置调整(上限 64)。

配置项

字段 默认 说明
maxWorkspaces 8 每个会话最多几条(上限 64)
reminderLanguage 'zh' 提醒文本语言('zh' / 'en')

安装与启用

README 中的安装方式不是一条 dsh plugin add 命令,而是把包放进 profile 能解析的位置,并挂进 profile 与宿主补丁。典型步骤如下。

  1. 将插件包放到 profile 可解析的位置,例如使用本地 link 形式:
link:D:/projects/dsh-plugins/dsh-extra-workspaces
  1. 把该包加入 profile 的 dsh.profile.bundles 配置。

  2. 按包内 cordis.patch.yml 中的说明,把宿主半边挂上。

客户端半边由包内 dsh.client 声明自动装配(向 dsh-session-settings 注入),无需额外步骤。插件声明对 @deepseek-ai/cordis 的 peer 依赖为 ^4.0.4;与 DSH 特性、补丁点及升级时需复查的内容见仓库内 docs/dsh-dependencies.md。

典型用法

  1. 安装并启用插件后,打开目标会话的 会话设置。
  2. 在 额外工作区 中添加需要引用的本地目录,设置别名和备注。
  3. 保存或变更清单后,在同一会话中向模型提问;模型会在上下文提醒中看到额外目录及当前权限下的读写说明。
  4. 若需要英文提醒,在插件配置中将 reminderLanguage 设为 'en';若条目较多,可在不超过上限的前提下调整 maxWorkspaces。

仓库内测试命令:

node --test "tests/**/*.spec.mjs"

适用场景与注意

适合谁: 需要在同一会话里让模型「知道」还有哪些本地路径可读或(在完全权限下)可写,又不想把这些路径写死在系统提示或每轮消息里的 DSH 用户。

务必知晓的边界:

  • 只支持本地目录;远程(SSH)工作区未支持。
  • 不主动判断目录是否仍存在:提醒里不断言存在性,请求路径上也不做磁盘探测(避免网络路径等同步阻塞整个进程)。
  • 目录被删除或移走后不会自动从清单移除;面板上的「读不到」类标注仅在目录选择器处于「网页内浏览」形态时可用,含义是宿主读不到该目录。
  • 会话设置页仍会显示 DSH 自带的「默认值/已覆盖」框架,不由本插件控制。
  • 插件以当前 DSH 进程权限运行;安装前应自行查看源码与许可证(MIT,当前包版本 0.1.0)。

社区目录页 SkillHub 与 GitHub 仓库由维护者发布,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-extra-workspaces 用「会话设置 + 按需注入的上下文提醒」把额外本地目录和权限档说清楚,适合需要跨目录参考、又希望模型认知与 DSH 真实限制一致的场景。

  • 目录页:https://www.skillhub.cn/plugins/dongkid/dsh-extra-workspaces
  • 源码与 README:https://github.com/dongkid/dsh-extra-workspaces
羽毛球分组比赛记分
小程序二维码

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

小夜