前言¶
在 DSH(DeepSeek Harness)里跑智能体时,默认沙箱会把写操作限制在当前会话的工作区内。笔记目录、兄弟仓库、git worktree 等往往落在工作区外;若每次都要人工审批 write/edit 或 bash 重定向,会打断任务流。社区插件 dsh-extra-paths(维护者 0x7a76)通过包装现有服务(不改 DSH 核心),为 fs 工具与受限 shell 声明一组「额外可写根」,使首次写入在配置范围内无需审批。下文介绍其定位、配置方式与使用注意。
这是什么¶
dsh-extra-paths 是 DSH 生态中的 admin-security 类插件:在设置里配置一组外部路径(或按目录结构匹配的模式),让 write/edit/str-replace 以及 bash 子进程在规则允许时第一次尝试即可写入,无需逐次批准。插件提供 Web 设置页,并实时预览当前工作区下每条规则解析后的绝对路径与模式匹配结果。目录页:skillhub.cn/plugins/0x7a76/dsh-extra-paths;源码:github.com/0x7a76/dsh-extra-paths(MIT,package 版本 0.1.1)。
核心功能¶
可写范围与 scope¶
每条路径可带 scope 与 surfaces:
| scope | session read-only |
session workspace-write |
|---|---|---|
write(默认) |
拒绝写入 | 可写 |
always-write |
可写 | 可写 |
surfaces:fs 表示 write/edit/str-replace;shell 表示 bash 子进程。读取与执行本身不受此插件额外收窄。
相对路径与通配模式¶
相对路径按各会话自己的工作区解析;设置页可用「base workspace」预览。例如 ../some-repo 指向工作区父目录下的单个兄弟仓库;~/notes/home 相对用户主目录,与当前 workspace 无关。
path 支持通配,把「某目录结构存在」变成授权条件,例如 <work root>/**/.worktrees/* 匹配各仓库下的 worktree,或 <work root>/<some-repo>/.worktrees/* 只覆盖某一仓库(文档推荐后者,遍历成本更低)。插件对通配有硬边界:模式前须有至少两段字面锚点;不进入 node_modules/.git,** 不进入隐藏目录;** 最多 3 层,匹配目录或命中数超限时整条模式失效(fail closed);展开结果缓存约 30 秒。
设置页¶
保存后立即生效,无需重启 DSH。页面展示每行解析后的绝对路径;模式行显示 [active ×N] 及具体根目录,零匹配或被拒绝的模式会明确标出。
安装与启用¶
需要 DSH 0.1.5、0.2.0 或 0.2.1;版本不在此范围时安装门会拒绝该包。
从注册表安装(将 <name> 换成你的 profile 名):
dsh plugin --profile <name> add dsh-extra-paths
从本地构建目录安装时,先在仓库内执行 pnpm install && pnpm build,再:
dsh plugin --profile <name> add /path/to/dsh-extra-paths
安装后可在 Settings → Plugins 的 Extra paths 卡片,或设置侧栏 Extra writable paths 中编辑。
典型配置¶
写入 ~/.dsh/settings.yaml 的 extra-paths 段,或直接在 Web 设置页保存。下面 <work root> 表示你放项目的目录(绝对路径或以 ~/ 开头),需换成自己的路径:
extra-paths:
paths:
- <work root>/notes/home
- path: ../../notes/home
scope: always-write
- path: <work root>/some-repo
scope: write
surfaces: [fs]
第二条示例:相对当前会话 workspace 解析,并设为 always-write,在只读会话下也可写。第三条仅放开 fs 工具,不写 shell 面。
worktree 场景可使用结构锚定(将 <work root> 与仓库名替换为实际值):
extra-paths:
paths:
- path: <work root>/<some-repo>/.worktrees/*
适用场景与注意¶
适合需要在工作区外稳定落盘、又不想每次点审批的开发者:跨仓笔记、多 worktree 并行改代码、固定目录下的构建产物等。插件以当前 dsh 进程的系统用户权限运行,配置的根目录即真实可写范围;安装前请自行审阅 GitHub 仓库 源码与 MIT 许可证。
文档列出的已知限制包括:bash 沙箱以整次调用为粒度,无法做到「单路径完全无约束」;同一相对路径在不同 workspace 会解析到不同目录;Windows 上 shell 侧未放宽;写到工作区外的文件不会出现在 deliverables 的 workspace-changes 卡片中。always-write 会削弱只读会话里 Stop 对该路径的保护,配置时需有意识收紧路径与 surfaces。
社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,插件由社区维护者发布,非官方应用商店条目。
结尾¶
dsh-extra-paths 用声明式额外可写根,把 DSH 沙箱从「仅当前 workspace」扩展到你可控的外部目录与 worktree 模式,并靠设置页即时预览降低配错成本。进一步说明见 插件目录页 与 GitHub README(含 中文 README)。