前言¶
在 DeepSeek Harness (DSH) 的開發中,智能體經常需要調用本地編輯器來處理代碼。DSH 的 pwsh 沙盒默認會攔截工作區外的可執行文件,導致模型通過 code xxx 等命令行調用 IDE 失敗,且這種方式本身也並不穩定。爲了解決這個問題,需要一個能夠直接在宿主進程中啓動外部程序的工具。
插件介紹¶
dsh-vscode 是一個宿主工具插件,由 Hyna-hla 維護。它的核心作用是給 DSH 註冊 open_in_vscode 工具,允許智能體直接調用本地安裝的 Visual Studio Code。插件通過直接 spawn Code.exe,繞過了 DSH 的 pwsh 沙盒限制,解決了模型無法可靠執行外部編輯器命令的問題。
核心功能¶
- 打開文件或文件夾:支持基於當前會話工作區的相對路徑,直接打開本地文件或目錄。
- 跳轉到指定位置:通過
--goto file:line:col參數,跳轉到文件的特定行和列。 - 打開對比視圖:通過
--diff參數,打開兩個文件的對比窗口。 - 等待控制權:設置
wait: true時,插件會等待 VS Code 窗口關閉後才返回控制權給 DSH(默認爲立即返回)。
安裝與配置¶
安裝步驟:
pnpm install
pnpm build
.\scripts\install-to-profile.ps1 -Name dsh-vscode -SourceDir .
安裝完成後需要重啓 DeepSeek Harness。
配置:
在 DSH 的配置文件中插入以下內容:
- insert:
- id: dsh-vscode
name: dsh-vscode
config:
codeExe: '' # 留空自動探測;可指定 Code.exe 或 bin\code.cmd 路徑
如果不指定 codeExe,插件會按以下順序自動探測 Code.exe:
1. %LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe
2. %ProgramFiles%
3. %ProgramFiles(x86)%
4. PATH 上的 code.cmd(經 cmd.exe 啓動)。
使用方法¶
- 跳轉指定位置:
在智能體配置中使用--goto file:line:col。 - 打開對比視圖:
在智能體配置中使用--diff。 - 等待窗口關閉:
設置wait: true以阻塞等待 VS Code 窗口關閉。
注意事項¶
- 該插件適合需要在 DSH 環境中集成本地 IDE 能力的開發者。
- 插件直接以當前 DSH 進程的權限執行
spawn操作,因此請確保安裝前檢查源碼與許可證(MIT)。 - 智能體在使用該工具時,文件路徑應儘量基於當前會話的工作區,以避免因沙盒限制導致的路徑問題。
結尾¶
dsh-vscode 提供了一種繞過沙盒限制、穩定調用本地 VS Code 的方案。對於需要深度集成編輯器能力的 DSH 智能體,這是一個實用的工具。更多細節請查看 GitHub。