前言¶
DeepSeek Harness (DSH) 的 Web 聊天界面默认只支持拖拽图片。对于需要处理 PDF、配置文件或数据集的开发者来说,这带来了额外的操作成本。dsh-drop-any-file 插件解决了这个问题,它拦截了浏览器的拖拽事件,让非图片文件也能被保存到当前会话的工作区。
插件简介¶
这是一个由 Zenjibad 维护的插件,基于 MIT 协议。它的核心功能是让 DSH 支持任意文件类型的拖拽上传,并将非图片文件持久化存储,方便智能体 Agent 读取和处理。
核心功能¶
- 支持任意文件类型:不再限制为图片,PDF、zip、txt、csv、bin 等文件均可接受。
- 保存到工作区:非图片文件会被保存到当前活跃会话的 workspace 目录,Agent 可以通过标准工具读取。
- 图片处理不变:仅包含图片的拖拽操作保持原有行为,不干扰内置功能。
- 绕过限制:拦截了 Composer 的图片-only 拒绝逻辑,防止错误提示弹出。
- 交互反馈:拖拽时显示主题化的覆盖层,保存成功或失败会弹出 Toast 通知。
- 安全限制:对文件名进行清洗,并对文件大小进行限制(最大 80MB body / 60MB file)。
- 主题适配:覆盖层和通知样式跟随 DSH 的浅色/深色模式。
安装与启用¶
通过命令行安装,插件会作为 Profile bundle 持久化:
dsh plugin --profile web add github:Zenjibad/dsh-drop-any-file
安装完成后,必须硬刷新浏览器标签页(Ctrl+F5)才能生效。
使用示例¶
- 在 DSH Web 界面打开一个会话。
- 将非图片文件(例如 PDF 或 .txt)拖拽到聊天窗口上。
- 观察覆盖层提示,文件会被保存到当前会话的工作区目录。
注意事项¶
- 依赖环境:需要 DSH 版本 ≥ 0.1 且启用 Web Profile。
- 会话要求:如果当前没有打开会话,插件处于闲置状态,不会生效。
- 文件大小:超过 60MB 的文件会被拒绝。
- 刷新要求:安装或更新客户端插件后,必须执行硬刷新(Ctrl+F5),热更新不会加载新插件。
- 无配置文件:插件行为由源码中的常量控制,没有独立的配置文件。
链接¶
- GitHub 仓库:https://github.com/Zenjibad/dsh-drop-any-file
- 插件目录:https://www.skillhub.cn/plugins/Zenjibad/dsh-drop-any-file