前置说明¶
DeepSeek Harness (DSH) 的消息附件协议目前仅支持图片。在桌面端,当用户试图通过拖拽方式将非图片文件(如 .pdf、.md、.txt)发送给智能体时,原生功能无法直接处理。dsh-desktop-drop-path 插件通过拦截拖拽事件,利用 DSH Desktop 的 Electron 预加载桥接机制获取文件的真实绝对路径,并将其作为文本插入到输入框中。
插件定位¶
- 功能描述:将文件拖入 DSH 编写器输入框,自动填充其绝对路径。
- 维护者:duanzongyuan
- 许可证:MIT
核心功能¶
- 自动填充绝对路径:检测到文件拖拽时,不再尝试上传,而是将文件的完整绝对路径写入输入框。
- 多文件支持:支持拖入多个文件,每行一个路径。
- 桌面端专用:依赖 DSH Desktop 应用的 Electron 预加载桥接机制(
window.__DSH_DESKTOP_FILE_PATH__)。 - 忽略图片:拖入图片时,插件不会介入,保留 DSH 内置的图片附件功能。
安装与启用¶
使用 pnpm 通过 GitHub 仓库安装该插件。安装后需重启 DSH Desktop。
pnpm dsh plugin --profile <profile-name> add git+https://github.com/duanzongyuan/dsh-desktop-drop-path.git
请将 <profile-name> 替换为你的 DSH 配置文件名(例如 desktop),并将 duanzongyuan 替换为你的 GitHub 用户名。
典型用法¶
- 在 DSH Desktop 的输入框区域,拖拽一个非图片文件(例如 .pdf、.md、.txt 或 .json 文件)。
- 插件会拦截该操作,将文件的绝对路径作为纯文本插入到输入框中。
- 智能体可以直接读取该路径下的文件内容。
适用场景与注意¶
- 运行环境限制:该插件仅在 DSH Desktop 环境下有效。在纯浏览器环境(Web UI)中,由于 Electron 预加载桥接不存在,插件不会安装任何代码,处于闲置状态。
- 依赖耦合:插件依赖于
@deepseek-ai/dsh-client-ui-attachment插件在window级别提供的dragend重置机制来清除覆盖层。如果该内部插件的行为发生变化,可能需要调整插件代码。 - 事件阶段:非图片文件的拖拽会在捕获阶段被消费,内置的图片处理器不会拒绝这些操作。
总结¶
该插件解决了 DSH 在桌面端无法通过拖拽发送非图片文件的问题,通过提供文件路径而非上传文件的方式,使智能体能够直接读取本地文件系统中的资源。