前言¶
在 DSH 里跑智能体时,模型和工具通常只围绕「当前会话的工作目录」活动。实际开发里却经常要对照另一份仓库、共享配置树或只读参考代码——把这些路径硬写进提示词既难维护,也容易和真实可访问范围不一致。
下面介绍社区插件 dsh-extra-workspaces(维护者 dongkid,SkillHub 分类为「记忆」):在会话设置里维护一份「额外工作区」清单,并在清单变化时向模型注入一条运行时上下文提醒,说明每个目录的别名、绝对路径、备注,以及当前权限档下能否修改这些目录。它不把目录注册为 DSH 正式工作区,也不改 DSH 本体或挂钩子。
这是什么¶
dsh-extra-workspaces 给单个 DSH 会话提供可配置的额外本地工作目录列表。清单保存在会话设置中(路径形如 <DSH_HOME>/storages/session_settings/sessions/<会话id>.json),DSH 重启后同一会话仍保留。提醒只在清单变化时注入,不是每轮对话重复发送。
核心功能¶
会话设置里的「额外工作区」¶
右侧栏 会话设置 页会多出一节 额外工作区。你可以:
- 通过 DSH 自带的目录选择器添加目录;
- 为每条目录设置别名、一句备注;
- 删除已有条目。
运行时上下文提醒¶
当清单发生变化时,模型侧的最新上下文里会出现一条提醒,列出各条目的别名、绝对路径、备注,并按会话实际权限档说明能否修改这些目录,避免模型误以为可写而实际被拒绝。
权限:不扩大 DSH 可写范围¶
本插件不扩大 DSH 允许写入的范围。DSH 的可写根仍是会话自己的工作目录(外加系统临时目录)。行为可概括为:
| 会话权限档 | 主工作区 | 额外工作区 |
|---|---|---|
| 仅可查看 | 读得到,改不了 | 读得到,改不了 |
| 工作区可写 | 读得到,改得了 | 读得到,改不了;只读类命令可跑,要写文件的命令会被拒绝 |
| 完全权限 | 完全对等 | 完全对等 |
校验规则¶
- 同一目录重复添加会被拒绝;
- 与已有条目存在父子包含关系(父目录或子目录)也会被拒绝,避免出现「加了父目录后主工作区反而落在其子路径下」的状态;
- 每个会话默认最多 8 条,可通过配置调整(上限 64)。
配置项¶
| 字段 | 默认 | 说明 |
|---|---|---|
maxWorkspaces |
8 |
每个会话最多几条(上限 64) |
reminderLanguage |
'zh' |
提醒文本语言('zh' / 'en') |
安装与启用¶
README 中的安装方式不是一条 dsh plugin add 命令,而是把包放进 profile 能解析的位置,并挂进 profile 与宿主补丁。典型步骤如下。
- 将插件包放到 profile 可解析的位置,例如使用本地 link 形式:
link:D:/projects/dsh-plugins/dsh-extra-workspaces
-
把该包加入 profile 的
dsh.profile.bundles配置。 -
按包内
cordis.patch.yml中的说明,把宿主半边挂上。
客户端半边由包内 dsh.client 声明自动装配(向 dsh-session-settings 注入),无需额外步骤。插件声明对 @deepseek-ai/cordis 的 peer 依赖为 ^4.0.4;与 DSH 特性、补丁点及升级时需复查的内容见仓库内 docs/dsh-dependencies.md。
典型用法¶
- 安装并启用插件后,打开目标会话的 会话设置。
- 在 额外工作区 中添加需要引用的本地目录,设置别名和备注。
- 保存或变更清单后,在同一会话中向模型提问;模型会在上下文提醒中看到额外目录及当前权限下的读写说明。
- 若需要英文提醒,在插件配置中将
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