前言¶
DeepSeek Harness (DSH) 的智能體在本地 macOS 環境運行時,往往需要文件讀寫、網絡訪問或系統管理權限。直接賦予完全控制權存在風險。dsh-tm-guard 旨在爲 DSH 提供一個“零干預”的權限門控層,通過策略決策來限制智能體的操作範圍。
這是什麼¶
dsh-tm-guard 是一個爲 DSH agents 設計的權限管理插件。它是一個 npm 包(dsh-tm-guard),屬於 DSH Cordis 生態的一部分,而非獨立的沙箱或 CLI 工具。插件通過聲明 dsh.bundle.patch,掛鉤 DSH 的 tools/pre-execute 事件流,在工具執行前進行分類和攔截。
核心功能¶
插件的核心邏輯遵循“可回滾的操作允許執行,不可回滾的操作拒絕執行”的原則。
- 零干預權限門控:在 DSH 代理運行時自動生效,無需人工持續介入。
- 基於 Time Machine/APFS 的自動回滾:對於本地可寫目錄,插件會自動創建本地 git 基線或調用 macOS 快照。如果操作是可逆的(如本地 git 操作),插件會自動批准並記錄;如果操作無法回滾(如網絡請求、進程終止),則直接拒絕。
- 阻斷與審計:默認阻止網絡訪問、包管理器安裝、進程/系統管理操作。同時,插件內置敏感路徑列表,阻斷對 SSH 配置、AWS 憑證、GPG 密鑰等敏感信息的讀取。所有決策均記錄在審計日誌中。
- 工具白名單配置:允許通過配置文件擴展受信任的工具列表。
安裝與啓用¶
安裝前需確認環境滿足以下條件:
* 系統:macOS 且使用 APFS 文件系統。
* 備份:Time Machine 已配置,工作目錄在 TM 備份捲上且未被排除。
* 權限:運行 DSH 的終端/應用擁有“完全磁盤訪問”權限。
* 工具:git 在系統路徑中。
* DSH 版本:必須與插件的 peerDependencies 範圍匹配。
使用官方安裝命令添加插件:
dsh plugin --profile <name> add dsh-tm-guard
典型用法¶
安裝後,插件會加載到對應的 DSH Profile 中。你需要通過配置文件調整策略。
1. 擴展寫入保護範圍¶
在 Profile 的 cordis.patch.yml 中添加 protectedPaths,指定智能體可以寫入的目錄。默認已保護 process.cwd()。
# cordis.patch.yml
protectedPaths:
- ./my-project/src
- ./config
2. 解鎖受信任的工具¶
默認情況下,web_search、skill 等工具被歸類爲“混合/未知”並拒絕執行。在 cordis.patch.yml 中添加 extraAllowTools 來白名單化這些工具:
# cordis.patch.yml
extraAllowTools:
- web_search
- skill
注意:切勿將 subagent、subagent_fork、workflow 或 job_output 加入白名單,這會繞過分類器,導致安全策略失效。
3. 驗證安裝與審計¶
啓動 Profile 後,控制台日誌應顯示加載信息。你可以使用插件註冊的工具來檢查狀態:
# 查看門控狀態和日誌
tm_status
# 查看審計日誌
tm_audit
適用場景與注意¶
- 適用場景:需要在本地 macOS 環境中安全運行 DSH 智能體,特別是涉及代碼生成、配置修改或需要聯網的場景。
- 重要提示:
- 插件並非安全沙箱,它運行在 DSH 進程的權限上下文中,依賴宿主系統的權限管理。
- 在生產環境使用前,建議閱讀源碼並確認許可證兼容性。
- 確保插件版本與 DSH 主版本兼容。
短結尾¶
dsh-tm-guard 提供了一種基於時間機器和本地快照的實用權限管理方案,適合希望在 macOS 上安全部署 DSH 智能體的開發者。更多配置細節與源碼可參考 GitHub 倉庫。