dsh-session-scope:DeepSeek Harness 会话级工作区隔离插件

前言

在使用 DeepSeek Harness (DSH) 进行 Agent 开发时,Agent 通常默认拥有对整个工作区的完全访问权限。这种全量可见性可能导致权限越界、误操作或暴露敏感目录。dsh-session-scope 旨在解决这一问题,它提供了一个独立的会话级工作区可见性层。

该插件的核心设计原则是:权限 != 范围。权限决定了 Agent 能对文件做什么(只读、写入或完全访问),而范围则决定了 Agent 能看到哪些目录。它允许在保持 Session 原始工作区不变的前提下,仅向 Agent 暴露选定的目录。

插件定位

  • 名称:dsh-session-scope
  • 维护者:xarleyn
  • 分类:admin-security
  • 核心价值:提供 full、focused、isolated 三种会话作用域状态,通过代码层面的文件系统投影和 Linux 下的进程隔离机制,限制 Agent 的可见性与操作范围。

核心功能

  • 权限与范围分离:独立管理权限(read-only、workspace-write、danger-full-access)和范围(full、focused、isolated)。
  • 会话级投影:通过 session-scope 投影,过滤目录列表和搜索根目录,隐藏未选中的文件。
  • Linux 进程隔离:在 Linux 后端,isolated 状态利用 bubblewrap 配置文件对 bash 和 PTY 创建进行强隔离,限制子进程行为。
  • 命令支持:提供 /scope 命令用于动态切换作用域状态。

安装与配置

该仓库已归档并设为只读。新的开发与发布已迁移至 xarleyn/dsh-plugins monorepo,发布包名为 @yadsh/dsh-session-scope。

旧的安装命令仍可使用,但建议使用新的包名:

npm install dsh-session-scope

或

npm install @yadsh/dsh-session-scope

前置要求:Node.js 20 或更高版本。

典型用法

安装插件后,DSH 会加载 cordis.patch.yml 并暴露服务。通过 /scope 命令设置当前会话的状态:

  1. 设置完全访问:
    /scope full
  1. 设置聚焦范围:
    /scope focused
  1. 设置隔离范围:
    /scope isolated

同时,可以设置会话权限。例如,将权限设置为只读:

# 权限设置为 read-only

适用场景与限制

  • 适用场景:需要精细控制 Agent 工作目录、防止 Agent 访问敏感配置文件、在多租户或沙盒环境中运行 Agent 的场景。
  • Linux 依赖:isolated 状态依赖于 Linux 后端,且需要启用 bubblewrap 配置文件。在 macOS 或 Windows 后端上,isolated 不可用。
  • 进程限制:focused 模式仅限制 DSH 的文件服务,不限制任意 Shell 进程。只有 isolated 模式在 Linux 下能限制 bash 和 PTY 进程。
  • 组合限制:isolated 状态目前不能与 danger-full-access 权限组合,否则会失败关闭。
  • 许可证:上游目录选择器部分采用 MIT 许可证。

总结

dsh-session-scope 为 DSH 提供了基础的安全隔离能力。通过 /scope 命令和权限控制,开发者可以构建更安全的 Agent 工作流。目前项目已迁移至 xarleyn/dsh-plugins 仓库。

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

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

小夜