用 dsh-drop-to-path 把图片和文件转成路径发给纯文本模型

前言

DeepSeek Harness(dsh)是 DeepSeek 开源的智能体运行时,设计原则是「一切皆插件」:模型、工具、会话、沙箱和界面都可以在配置层替换,不必改框架源码。官方仓库目前仍标为开发者预览,接口会变。社区另有一份独立的插件目录 deepseek-harness-plugin.com,用来检索第三方插件;该站点在关于页写明,与 DeepSeek 或幻方(High-Flyer)没有从属、背书或赞助关系,也不是官方应用商店。

在 Web 界面里用 DeepSeek 这类纯文本模型写代码时,截图和文档并不好送进去。图片会走模型原生附件通道,发送前被宿主预检拦住,输入框弹出系统提示:「当前模型不支持图片,请切换支持图片的模型」。底层对应 dsh-host-apiproxyattachment-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.jsondsh.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

典型用法

仓库给出的操作顺序如下。

  1. 像平时一样粘贴或拖入图片,附件卡片照常显示,可以预览或叉掉。
  2. 拖入或粘贴 PDF、Office、zip、视频、音频等,附件栏出现带格式图标的方块,和图片缩略图并排。
  3. 需要的话先写一句说明(例如「对比这两张图」或「提取这份 xlsx 的表头」),再发送。此时不会提交图片附件;文件被上传,工作区路径自动接到消息末尾。
  4. 若已安装 dsh-vision-toolkit,Agent 可以用 vision_glancevision_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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜