在 DeepSeek Harness (DSH) 的開發流程中,用戶消息經常包含文件路徑。這些路徑如果包含敏感信息或非工作區內容,直接發送給模型可能帶來隱私泄露風險或噪音。現有的做法通常是手動處理或在系統提示詞中限制,缺乏統一的中間處理機制。
插件簡介¶
dsh-path-anonymizer 是一個 DSH 插件。由用戶 yzhangjy 維護。它的工作是檢測用戶消息中的工作區外部路徑,將其替換爲編號佔位符,並在發送給模型前請求用戶確認。
核心功能¶
- 路徑檢測:使用正則表達式掃描用戶消息中的文件路徑。
- 匿名化替換:將檢測到的外部路徑替換爲編號佔位符(如
[PATH_1])。 - 工作區感知:自動識別並保留工作區內的路徑,不影響模型對當前項目的操作。只有工作區外的路徑纔會被處理。
- 用戶確認與記憶:在發起模型請求前彈出對話框,列出路徑與佔位符,允許用戶選擇發送匿名路徑、真實路徑或取消,並支持記住本次選擇以複用。
安裝¶
在終端中執行以下命令進行安裝:
dsh plugin --profile web add github:yzhangjy/dsh-path-anonymizer
安裝後需要重啓 web profile 以使插件生效。
配置與用法¶
插件配置主要在 YAML 中設置。核心配置項包括 enabled(啓用檢測)、confirmEveryTime(每次請求都顯示確認對話框)、autoAnonymize(靜默替換,不顯示對話框)、anonymizeWorkspacePaths(是否也匿名化工作區內的路徑,默認爲 false)以及 detector.excludePatterns(排除特定模式的路徑)。
示例 1:自動匿名化模式
- id: path-anonymizer
config:
enabled: true
autoAnonymize: true
示例 2:排除特定路徑模式
- id: path-anonymizer
config:
detector:
excludePatterns:
- '^/nix/store/'
- '^/home/ci/'
注意事項¶
- 正則限制:僅基於正則匹配,對於嵌入在複雜代碼語法中的路徑可能無法識別或誤匹配。
- 無文件校驗:不驗證路徑對應文件是否存在。
- 內容限制:僅掃描文本塊,不處理圖片或工具調用內容。
- 非安全沙箱:它只處理用戶消息文本,不攔截模型的工具調用、參數或結果,也不限制文件系統訪問(這由 DSH 的沙箱機制負責)。
總結¶
如果需要在 DSH 工作流中控制敏感路徑的泄露,這個插件提供了一個基於用戶確認的中間處理層。它不替代安全沙箱,但在消息層面對外部路徑提供了額外的隱私控制手段。