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 倉庫。

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

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

小夜