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