前言¶
在 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。