dsh-second-agent-kit:在 macOS 上爲 DSH 疊一層可測的二次防護

前言

DeepSeek Harness(DSH)把智能體能力拆成可插拔插件,宿主仍要對瀏覽器寫入、發佈刪除、沙箱內 shell 等行爲做審批與隔離。社區裏「一切皆插件」的做法很常見,但把確認步驟、Seatbelt 收緊、記憶庫升級前檢查和離線文檔預覽放進同一套可 npm test 驗證的包裏,並不多見。下面介紹維護者 Chih-Kai-Wang 在 SkillHub 分類 admin-security 下的 dsh-second-agent-kit(當前包版本 0.1.4,MIT 許可證;不改變 DSH Desktop 自身許可證)。倉庫在 GitHub 上星標爲 0,定位是:在 macOS 上、面向 DSH 0.1.5-rc.2 的若干小型、可單獨測試的安全加固與兼容工具,而非通用語義防火牆。

這是什麼

一句話:在保留宿主已有決策的前提下,增加審批插件、受限沙箱提供方、Engram 0.7.6 校驗與升級預檢、LibreOffice 文檔渲染,以及未默認啓用的實驗性 computer-use 補丁說明。

維護者:Chih-Kai-Wang。目錄頁:https://www.skillhub.cn/plugins/Chih-Kai-Wang/dsh-second-agent-kit ;源碼與說明:https://github.com/Chih-Kai-Wang/dsh-second-agent-kit 。SkillHub 爲獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係。

包裏包含什麼

審批插件(Cordis)

在宿主已做出的每一項決定之上,增加確認步驟:瀏覽器寫入前、借用已有標籤頁前,以及常見發佈與刪除類命令執行前。

受限沙箱提供方

繼承 DSH 現有 Seatbelt 提供方,保留宿主文件系統策略;額外對被 confine 的 shell 進程拒絕 IP 聯網與 Apple Events。工作區內本地計算與寫入仍可用;shell 發起網絡請求仍需宿主既有的單次升格與用戶批准。專用 browser、web、model 工具仍走各自策略。若當前環境不支持 sandbox runner,套件會失敗退出,而不是在無 confinement 下靜默執行命令。

Engram 校驗

針對上游 Engram:套件以 0.7.6 爲可復現驗證基線(README 註明上游 v0.7.7 已合併 PR #4,但本倉庫紅隊測試與觀察仍描述 0.7.6;重新驗證與升級運行時是獨立工作)。提供只讀升級 preflight,並復現真實 SQLite 遷移行爲;已驗證的路由與顯式記憶操作來自上游。舊的 0.7.5 補丁僅作歷史保留。

Office 渲染

scripts/render-office.py 爲獨立 LibreOffice 渲染器,使用隔離 profile 與顯式 macOS 系統字體,便於發現缺失的中文字形。需官方 LibreOffice;--png 還需 PyMuPDF。

實驗性 computer-use 補丁

patches/computer-use.patch 存在,但實時 Word 文件面板測試失敗,本 bundle 不啓用該補丁。文檔說明其將按鍵發往已校驗、已聚焦文件面板元素的系統 XPC 進程等邊界;同一 agent turn 內在連續兩次已知 UI 失敗或 20 次 input 調用後會停止進一步 Mac 輸入(觀屏不重置計數,新用戶 turn 會重置)。

環境與前提

  • macOS 14 或更高版本(本版本僅支持 macOS,有意爲之)
  • Node 24
  • DSH 0.1.5-rc.2
  • 已有 workspace-write 與 ask 模式
  • peerDependencies:@deepseek-ai/dsh-sandbox-local 0.1.5-rc.2

建議先在獨立 profile 試用。勿將 danger-full-access 長期作爲默認,該模式會按設計繞過宿主 confinement。Desktop 0.15.6 會將本地 tarball 誤判爲缺失目錄並在啓動時刪除,因此解壓目錄需保持在穩定路徑。

安裝與啓用

README 給出的流程是先構建包再以 file: 路徑安裝,而非憑倉庫名拼接 dsh plugin add github:...。

npm ci
npm test
npm pack
mkdir -p "$HOME/.dsh/packages/dsh-second-agent-kit-0.1.4"
tar -xzf dsh-second-agent-kit-0.1.4.tgz -C "$HOME/.dsh/packages/dsh-second-agent-kit-0.1.4"
dsh plugin --profile YOUR_TEST_PROFILE add "file:$HOME/.dsh/packages/dsh-second-agent-kit-0.1.4/package"

安裝後 bundle 會禁用上游 sandbox 行,插入 second-agent-sandbox(受限提供方)與 second-agent-approval。若本機已有重複的 daily-approval hook,在確認本插件可用後應禁用該重複項;不要禁用 DSH 自帶的 user-approval 插件。套件不需要也不分發憑據。

典型用法

Engram 升級前只讀檢查與驗證

在升級已有 memory 目錄前,先跑只讀 preflight;任意非零退出碼應停止升級。檢查不打開記憶內容、不遷移文件;對用戶提供的 workspace 可檢測可能屬於多個 workspace 的 legacy 文件名。

npm run check:engram-upgrade -- --db-dir /absolute/memory-directory --workspace /absolute/workspace
npm run verify:engram
npm run verify:engram:host
npm run test:migration

驗證側對真實插件與 SQLite 通過 HonestCI 跑六個用例,不允許跳過測試。細節與限制見倉庫 docs/ENGRAM-UPGRADE.md。scripts/patch-engram.py 與 tests/memory-runtime.mjs 爲 0.7.5 歷史物,不是新默認 profile 的操作說明。

Office 文件轉 PNG 預覽

安裝 LibreOffice(https://www.libreoffice.org/)並在獨立 Python 環境中安裝 PyMuPDF 後:

python scripts/render-office.py input.docx new-preview-directory --png

輔助腳本不會覆蓋已有 PDF,並會打印頁數。需人工查看每一張 PNG;LibreOffice 版式不能等同 Microsoft Word,表格計算與演示動畫仍須在目標應用中核對。

computer-use 補丁(高級,非默認)

補丁文件爲 patches/computer-use.patch,對應上游提交記錄在 patches/computer-use-base.txt。僅對該提交應用補丁、安裝依賴並運行上游 pnpm run build,以同時重建 JavaScript 與 native 產物;須本地構建 native helper,倉庫不提供未經審閱的預置可執行文件。測試含獨立 Swift 路由策略檢查。

驗證與能力邊界

npm test 覆蓋 hook 行爲、不支持 runner 時的處理,並檢查 macOS 內核是否拒絕 TCP socket、拒絕工作區外寫入且允許工作區內寫入。純 Swift 策略檢查會拒絕非活動、未觀察、不可信或無效的鍵盤目標。

README 明確:本套件不是通用語義防火牆;靠正則識別命令僅爲建議性,內核規則僅作用於宿主 confine 的進程。Browser、MCP、GUI 與插件能力各自需保持審批。公開發布、支付與破壞性操作仍需顯式授權。Unix 域套接字仍可用(例如 LibreOffice 本地 IPC),這不構成對本地協作服務的出口邊界;工作區內可被 agent 寫入的文件也可能被其他進程讀取。項目不聲稱關閉所有 IPC 或間接行動通道。觀察結果與未決用例見 VALIDATION.md。

適用場景與注意

適合在 macOS 上跑 DSH 0.1.5-rc.2、希望把「二次確認 + 收緊 shell 沙箱 + 記憶庫升級前自檢 + 離線 Office 預覽」捆成可測套件的管理員或安全取向開發者。插件以當前 DSH 進程權限運行;安裝前請自行審閱源碼與 MIT 許可證,勿將用戶憑據、會話日誌、個人文檔或生產 memory 庫放入該倉庫(項目亦如此要求)。

結尾

dsh-second-agent-kit 把 macOS 上若干與 DSH 智能體相關的加固拆成可 npm test 的模塊,並在文檔裏寫明 Engram 基線、computer-use 失敗結論與沙箱邊界。進一步瞭解可從 SkillHub 目錄頁或 GitHub README(含繁體中文版 README.zh-TW.md)入手。

  • 目錄:https://www.skillhub.cn/plugins/Chih-Kai-Wang/dsh-second-agent-kit
  • 倉庫:https://github.com/Chih-Kai-Wang/dsh-second-agent-kit
羽毛球分组比赛记分
小程序二维码

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

小夜