前言¶
DeepSeek Harness (DSH) 生態強調“一切皆插件”。在開發場景中,Agent 需要上下文才能執行操作。若上下文僅爲對話歷史,Agent 往往難以精準定位用戶當前關注的代碼片段。dsh-editor-selection 插件解決了這個問題:它不傳輸文件內容,而是捕獲編輯器的主選區(絕對路徑 + 行區間),並在 Agent 每步執行前注入環境知會,讓 Agent 明確知曉用戶當前的操作焦點。
功能概覽¶
該插件由 yingzaicc 維護,採用 MIT 許可證。核心能力包括:
- 選區捕獲:捕獲主選區的絕對路徑 + 行區間(1-based)。
- 環境知會:在 agent 每步之前注入一行環境知會(如
@絕對路徑:10-25),而不是把文件內容塞進上下文。 - 配對與審批:DSH 側邊欄提供配對審批功能,支持設備吊銷。
- 隱私控制:輸入框下方提供環境 chip,包含一個“眼睛”開關,用於暫停或恢復共享。
- 交互增強:支持“選中即聚焦”、“右鍵解釋代碼”以及多窗口支持。
安裝與啓用¶
安裝通過 PowerShell 腳本執行,完成後需重啓 DSH Web 以使配置生效。
powershell -ExecutionPolicy Bypass -File scripts\install.ps1
核心機制與使用¶
插件通過 WebSocket 與 DSH 通信,架構分爲 VS Code 擴展側和瀏覽器側(DSH Web)。
1. 選中即聚焦¶
當你在編輯器中選中代碼時,插件會捕獲選區。DSH 會在最近活躍的會話裏自動開始解釋該段代碼,無需手動輸入。
選區會以環境知會的形式注入:
* 有真實選區:注入 @絕對路徑:起-止。
* 光標停放無選擇:注入 @絕對路徑(整個文件即焦點)。
* 光標不在任何文件裏:焦點清空。
若緩衝區未保存,會在路徑後標註“(緩衝區未保存)”。
2. 環境知會與解釋¶
選區發送給 DSH 後,Agent 會收到包含路徑信息的消息。這種機制協議與客戶端種類無關,目前 VS Code 是第一個接入者。
3. 隱私控制¶
輸入框下方的環境 chip 上有一個“眼睛”開關:
* 關:暫停共享。插件會向 Agent 注入一條一次性“已暫停”知會,Agent 保持沉默。
* 開:恢復共享。
4. 右鍵解釋¶
在 VS Code 編輯區選中代碼後,點擊右鍵菜單中的“解釋代碼”,選區會發送給 DSH,觸發自動解釋。
安全與權限¶
該插件遵循本地化與最小權限原則:
- 通信:全部通過本機迴環,不涉及任何雲服務。
- 認證:配對請求 60s TTL,同 instanceId 會去重。
- 數據:Token 僅存 SHA-256 哈希,不存儲明文。
- 權限:路徑可讀性由 DSH 權限系統在讀取時裁決,插件不做工作區映射門檻。工作區外的文件在 Agent 實際讀取時按 DSH 既有權限流程索權。
- 異常碼:close 語義包括 4401(未授權)、4403(配對過期或被拒)、4408(限流,20 幀/s)。
配置與故障排查¶
插件提供兩個逃生艙配置項:
- 總閘:在 DSH 配置中設置
dshEditorSelection.enabled=false即可完全禁用。 - 重定位狀態目錄:通過環境變量
DSH_EDITORSEL_ROOT重定位狀態目錄。
總結¶
dsh-editor-selection 插件通過將編輯器選區轉化爲結構化的環境知會,實現了 Agent 與用戶代碼操作的精準對齊。它不改變文件內容,僅通過協議傳遞路徑上下文,配合本地迴環與哈希存儲,在提升開發效率的同時保持了較高的安全性。
- GitHub 倉庫: https://github.com/yingzaicc/dsh-editor-selection
- 目錄頁: https://www.skillhub.cn/plugins/yingzaicc/dsh-editor-selection