在 DeepSeek Harness (DSH) 的 Web 開發場景中,Agent 執行文件修改或 Shell 命令時,開發者往往難以實時掌握變更細節,且對破壞性操作缺乏有效的阻斷手段。dsh-edit-guardian 插件正是爲了補齊這一短板而生。
這是一個 DeepSeek Harness Web 插件,由 LWLAymh 維護。它通過在瀏覽器 UI 中增加文件變更可視化、保留/撤銷控制以及危險命令的安全審批流程,幫助開發者更清晰地監控 Agent 的操作。
核心功能¶
1. 文件變更欄¶
當 Agent 通過 write、edit 或 str_replace_editor 修改文件時,工具行會顯示 文件 +N行 -M行 [show diff]。點擊按鈕可展開上下文感知的內聯 Diff。變更摘要會顯示在輸入框上方的持久化欄中,即便 Agent 正在持續工作,該欄也會實時更新。
2. 保留與撤銷¶
變更摘要欄允許對每個文件進行精細化控制。每行包含:
* 可打開的文件路徑
* 行數統計(+N / -M)
* 顯示/隱藏 Diff 切換
* 保留 按鈕:標記變更爲已接受並移出摘要
* 撤銷 按鈕:執行 /undo <path> 命令並移出摘要
欄頂部的“全部保留”和“全部撤銷”按鈕分別對應批量操作。撤銷操作依賴於後端的 /undo 命令,該命令會記錄 write 和 edit 工具的成功結果,並在撤銷時恢復文件狀態或刪除新建的文件。
3. 危險命令審批與高亮¶
插件監聽 tools/pre-execute 事件,對 bash 和 pwsh 命令進行安全檢查。如果命令匹配破壞性模式(如 rm、Remove-Item、git reset --hard、curl|sh 等),執行流程會被路由至審批流程,在命令運行前彈出提示。
在 Shell 工具行中,匹配的危險文本會以紅色高亮顯示。當工具調用請求沙箱權限提升(sandbox_permissions)時,受影響的路徑或工作目錄也會標紅並顯示“需要權限”徽章。如果用戶拒絕審批或取消操作,命令將不會執行。
安裝與啓用¶
使用官方安裝命令將插件添加到 Web 配置文件:
dsh plugin --profile web add dsh-edit-guardian
安裝完成後,需重啓 Web 進程以使插件生效:
dsh --profile web
插件不支持熱重載到已運行的進程。
典型用法¶
- 跳過審批:在 Web UI 中切換到“Full access”預設(
danger-full-access沙箱模式),可以跳過危險命令的審批提示,匹配 DSH 的現有語義。 - 查看變更:點擊工具行上的“show diff”按鈕查看詳細的上下文感知變更。
- 撤銷操作:使用
/undo命令可以撤銷由write或edit產生的變更。注意,此功能僅適用於write和edit工具的結果,str_replace_editor和 Shell 命令的變更無法通過此命令恢復。
注意事項¶
- 撤銷限制:
/undo命令僅能恢復由write或edit工具產生的變更。通過str_replace_editor修改的文件無法通過撤銷恢復;Shell 命令產生的變更也不受此限制。 - 重啓要求:修改插件源碼後,必須重新執行安裝命令並重啓 Web 進程才能生效。
- 卸載:如需移除插件,請使用以下命令:
dsh plugin --profile web remove dsh-edit-guardian
總結¶
dsh-edit-guardian 通過 UI 層面的增強,解決了 Agent 操作的可見性和安全性問題。如需瞭解更多或查看源碼,請訪問插件目錄或GitHub 倉庫。