前言¶
DeepSeek Harness(dsh)是 DeepSeek 开源的智能体运行时,设计原则是「一切皆插件」:模型、工具、会话、沙箱和界面都可以在配置层替换,不必改框架源码。官方仓库目前仍标为开发者预览,接口会变。社区另有一份独立的插件目录 deepseek-harness-plugin.com,用来检索第三方插件;该站点在关于页写明,与 DeepSeek 或幻方(High-Flyer)没有从属、背书或赞助关系,也不是官方应用商店。
在 Web 界面里用 DeepSeek 这类纯文本模型写代码时,截图和文档并不好送进去。图片会走模型原生附件通道,发送前被宿主预检拦住,输入框弹出系统提示:「当前模型不支持图片,请切换支持图片的模型」。底层对应 dsh-host-apiproxy 的 attachment-error,仓库文档里的示例是 Model "deepseek-v4-flash" does not support image input.。PDF、Office、压缩包、视频则根本不能当附件发出去。
视觉工具箱(例如 dsh-vision-toolkit)能让纯文本模型读取工作区里的文件,但工具接口认的是路径。于是常见流程变成:先把文件存进工作区,再把路径手打进消息。loudMore 维护的 dsh-drop-to-path 把后半步收进发送瞬间:附件栏仍是原生体验,点发送时再把图片和文件写成工作区路径。
这是什么¶
dsh-drop-to-path 是一款 DeepSeek Harness 的工具与能力插件,npm 包名为 @dsh-external/dsh-drop-to-path,当前仓库版本为 0.1.0,许可证 MIT,主要语言 JavaScript。维护者是 loudMore,源码在 loudMore/dsh-drop-to-path。社区目录把它归在「工具与能力」;package.json 里 dsh.client.platform 声明为 web,面向 Web 界面,不是无界面的 headless 运行方式。
它解决的问题可以收成一句:把拖入或粘贴的图片、文档、压缩包、音视频,在发送时变成工作区文件路径,让纯文本模型用视觉或文档工具去读,而不是走模型原生的图片附件通道。
截至 2026 年 8 月 18 日查阅,GitHub 显示 11 星;社区目录页同期显示 7 星。星标会变,安装前仍以仓库源码为准。
核心功能¶
发送时才转路径¶
添加文件时,输入框里不会立刻出现路径字符串。图片继续走原生附件卡片(可预览、可移除);PDF、Office、zip、视频、音频等显示为附件栏里的方块标签(带格式图标,悬停看全名,可叉掉)。点发送后,插件把文件上传到会话工作区的 .drops/ 目录,再把路径和你输入的文字拼成一条纯文本消息。模型侧看不到 image 附件块,因此图片准入预检不会被触发。
图片、文件以及二者混合的一批,会按顺序上传,最后以一段路径文本一次送达。上传失败不会静默吞掉消息:界面会给出可见提示,再回退到原生发送路径。
支持的类型与体积上限¶
仓库 README 与宿主侧源码 lib/index.js 对扩展名白名单和体积上限的约定一致:
| 类型 | 扩展名 | 上限 | 界面 |
|---|---|---|---|
| 图片 | png jpg jpeg webp gif |
30MB | 原生附件卡片,发送时转路径 |
| 文档 | pdf doc docx xls xlsx ppt pptx txt md csv json |
100MB | 附件栏方块标签,发送时附加路径 |
| 压缩包 | zip |
100MB | 同上 |
| 视频 | mp4 mov webm mkv avi |
100MB | 同上 |
| 音频 | mp3 wav flac m4a |
100MB | 同上 |
不在白名单里的扩展名会被拒绝。文件名会做清洗(去掉路径分隔符和控制字符,替换 Windows 非法字符),再写入 .drops/,避免路径穿越。
和工作区、宿主路由的关系¶
宿主侧注册 POST /_dsh/drop-to-path/import,接收 { name, dataBase64 },校验后写入工作区。工作区默认从 $DSH_HOME/storages/workspace.json(未设置 DSH_HOME 时回退到 ~/.dsh)里取 updatedAt 最新的一条;客户端也可以随请求带上当前会话的绝对路径,非绝对路径不会被信任。浏览器侧包装 conversation.sendSession,在真正提交前完成上传和路径拼接。
和相近插件的分工¶
README 把它和 dsh-drag-and-drop 写成互补关系,后者仓库也确实存在:
dsh-drag-and-drop:拖放后在输入框插入原始路径,不复制文件,适合引用工作区里已有的文件;不支持粘贴,图片仍可能按附件发送,纯文本模型下仍会被拒。dsh-drop-to-path:复制到工作区、发送时转路径,支持粘贴和拖入,并给非图片文件做附件栏方块。
看图、OCR、像素对比这类能力不在本插件里。作者建议搭配 dsh-vision-toolkit:本插件负责「文件变成路径」,视觉工具箱负责「路径变成可读结果」。二者都是社区插件,需要各自安装。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行:
dsh plugin add github:loudMore/dsh-drop-to-path
需要可复现安装时,按目录页说明固定 commit 哈希:
dsh plugin add github:loudMore/dsh-drop-to-path#commit
把 #commit 换成仓库里实际的提交哈希。目录页同时提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码;安装前应检查源码仓库和许可证。
仓库 README 补充了两点,和 package.json 的 Web 声明一致。一是建议显式指定 Web profile,本地检出时类似:
dsh plugin --profile web add /path/to/dsh-drop-to-path
二是安装后需要重启 Web profile(重新打开启动器,或重启 dsh web)才会生效。插件本身没有配置项。
前置条件按 README:已安装 DeepSeek Harness(Web profile)、Node.js 和 dsh CLI。官方启动 Web UI 的方式见 deepseek-ai/deepseek-harness,例如 npx @deepseek-ai/dsh web。
典型用法¶
仓库给出的操作顺序如下。
- 像平时一样粘贴或拖入图片,附件卡片照常显示,可以预览或叉掉。
- 拖入或粘贴 PDF、Office、zip、视频、音频等,附件栏出现带格式图标的方块,和图片缩略图并排。
- 需要的话先写一句说明(例如「对比这两张图」或「提取这份 xlsx 的表头」),再发送。此时不会提交图片附件;文件被上传,工作区路径自动接到消息末尾。
- 若已安装
dsh-vision-toolkit,Agent 可以用vision_glance、vision_pixel_diff等工具读图,用 PDF / 表格类工具处理文档。
README 里的场景对照也限于作者描述,不是第三方评测:看图问答从「截图 → 存工作区 → 手写路径」变成「截图 → Ctrl+V → 回车」;分析 PDF / xlsx / 视频则可以直接拖入再发送。
文件会留在工作区 .drops/ 下,需要时自行清理。
适用场景与注意事项¶
比较适合:在 DSH Web 界面里用纯文本模型,又经常要把截图、PDF、表格或压缩包交给 Agent 处理的人。它不替代视觉模型,也不解析文件内容;没有配套的文档/视觉工具时,模型拿到的只是路径字符串。
使用前需要接受几条边界,这些都写在仓库文档里,不是推断。
- 平台:只声明了 Web。headless 或其它 profile 不要按同一套界面操作去预期。
- 兼容性:作者在仓库环境中验证过 DSH
0.1.0-rc.6。插件依赖若干未公开内部接口(服务名、方法签名、存储格式、DOM 结构),DSH 升级后可能失效。官方 Harness 也写明开发者预览会有破坏性变更。升级前应阅读仓库中的ADAPTING.md,里面有失效症状和排查步骤。 - 权限与安全:插件以当前 dsh 进程权限运行,会把拖入的文件写进工作区。安装前检查源码和 MIT 许可证;不要对不信任的来源执行
dsh plugin add。目录页建议固定 commit,避免每次安装都跟到未知新提交。 - 体积与类型:超出 30MB / 100MB 或扩展名不在白名单,上传会被拒绝。
- 工作区定位:默认取注册表里最近更新的工作区。若 Agent 回报找不到文件,先核对返回路径是不是当前会话工作区,而不是进程当前目录。
小结¶
dsh-drop-to-path 做的事情很窄:保住 DSH Web 输入区的附件体验,在发送时把图片和文件落成工作区路径,让纯文本模型绕开「不支持图片」的预检,并把 PDF 等原本无法当附件发送的文件交给后续工具。它由 loudMore 维护,MIT 许可,需要 Web profile,并建议与 dsh-vision-toolkit 一起用。
目录页与源码:
- 社区目录:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-drop-to-path/
- GitHub:https://github.com/loudMore/dsh-drop-to-path