dsh-inbox-paste:在 DSH web 输入框直接粘贴文件,落盘到 inbox 供智能体读取

前言

用 DeepSeek Harness(DSH)的 web profile 做开发时,一个常见的卡点是文件入口:想把一张截图、一段日志交给会话里的智能体,输入框本身没有粘贴文件的通道,只能手动复制路径,或者退回终端操作。

dsh-inbox-paste 是一个 DSH web 插件,补的就是这一环:在输入框粘贴或选择文件,发送后自动写入当前会话工作区的 inbox/ 目录,智能体再用工具读取。下面介绍它的功能、安装和使用方式。

这是什么

dsh-inbox-paste(仓库地址为 JarszmLovesAI/dsh_upload_file)是 JarszmLovesAI 维护的 DSH web bundle 插件,当前版本 0.1.0,MIT 许可证。它解决的问题是:让 web 会话具备粘贴/选择文件的入口,并把文件以约定路径交给智能体。

需要说明的是,插件名和仓库名不一致:README 与 package.json 中的插件名是 dsh-inbox-paste,GitHub 仓库名是 dsh_upload_file,安装命令用仓库名,卸载命令用插件名。

核心功能

  • 在输入框按 Ctrl+V / Cmd+V 粘贴,或点击回形针选择文件。
  • 发送前,输入框上方显示待发送缩略图,可以用 × 移除;此时文件尚未写盘。
  • 发送时,文件写入 {session.cwd}/inbox/ 目录。
  • 用户消息气泡可显示缩略图,由 customizeUserBubble 配置控制;设为 false 时使用内置气泡,可能显示原始路径。
  • 智能体通过 list_inbox / read_inbox 两个工具读取文本文件。
  • 内置一个可选的 image-reader 技能用于图片理解,需要自行设置 ARK_API_KEY
  • 不使用 Harness 原生图片附件(详见下文「上传 ≠ 多模态理解」)。

安装与启用

前置条件:带 web profile 的 DeepSeek Harness、Node.js ≥ 22,以及 dsh CLI。

先安装插件,再启动 web 会话:

dsh plugin --profile web add github:JarszmLovesAI/dsh_upload_file
dsh web

如需卸载:

dsh plugin --profile web remove dsh-inbox-paste

典型用法

装好插件后,日常流程如下:

  1. 在输入框按 Ctrl+V / Cmd+V 粘贴文件,或点击回形针选择文件。
  2. 待发送缩略图出现在输入框上方;如果贴错了,在发送前点 × 移除,此时不会写盘。
  3. 发送后,文件落入会话工作区的 inbox/ 目录,消息气泡可显示缩略图。
  4. 智能体侧:先用 list_inbox 列出收件箱内容,再用 read_inbox 读取文本文件;图片则使用内置的 image-reader 技能,或你自备的视觉工具。

配置

配置文件在 ~/.dsh/profiles/web/cordis.patch.yml(profile 名称按实际情况调整),找到 id: inbox-paste 的一段:

- id: inbox-paste
  config:
    uploadMaxBytes: 26214400
    inboxDirName: inbox
    allowedExtensions: []
    customizeUserBubble: true   # false = 内置用户气泡(可能显示原始路径)

四个配置项的含义:uploadMaxBytes 限制单文件大小(默认约 25 MB);inboxDirName 指定落盘目录名;allowedExtensions 为空数组表示不按扩展名过滤;customizeUserBubble 控制是否使用自定义用户气泡显示缩略图。

修改配置后需要重启 dsh web 才会生效。

插件带测试,可在仓库内运行:

npm test

上传 ≠ 多模态理解

这是使用前必须想清楚的一点:本插件不使用 Harness 原生图片附件,主模型默认只收到路径标记,并不会「看到」图片内容。要让智能体理解图片,二选一:

  1. 安装插件自带的可选 image-reader 技能,并在 ~/.dsh/.env 中设置 ARK_API_KEY
  2. 自带视觉能力,比如 vision MCP、视觉相关技能,或直接使用多模态模型。

如果你只需要智能体读文本文件,不做任何额外配置即可,list_inbox / read_inbox 就够用。

与 dsh-file-upload 的区别

社区里还有另一个定位相近的插件 dsh-file-upload,两者差异如下:

dsh-inbox-paste dsh-file-upload
粘贴 支持 不支持
存储位置 {cwd}/inbox/ {cwd}/.dsh-uploads/
内置 PDF 处理

简单说:需要粘贴、希望文件落在明确的 inbox 目录,选本插件;需要内置 PDF 能力,可以考虑 dsh-file-upload。

适用场景与注意事项

适合的用户:在 DSH web profile 下工作、需要把截图、日志、文本片段交给智能体处理的开发者;尤其是不想离开输入框、习惯 Ctrl+V 的场景。

安装前请注意两点:

  1. 插件以当前 dsh 进程的权限运行,能访问你进程能访问的文件。安装前建议先阅读仓库源码和许可证,确认行为符合预期。
  2. 涉及图片理解时,提前规划视觉方案(image-reader 技能加 ARK_API_KEY,或自备 vision 工具),否则主模型拿到的只有路径标记。

另外,DSH 的理念是「一切皆插件」,插件生态由社区维护;本文提到的插件目录是独立的社区站点,与 DeepSeek、幻方没有官方从属关系。

小结

dsh-inbox-paste 用一个很小的切口解决了 web 会话的文件入口问题:粘贴即上传、发送即落盘、list_inbox / read_inbox 即读取,路径约定清晰,文本场景开箱即用,图片场景把选择权留给使用者。

  • 目录页:https://www.skillhub.cn/plugins/JarszmLovesAI/dsh_upload_file
  • GitHub:https://github.com/JarszmLovesAI/dsh_upload_file
羽毛球分组比赛记分
小程序二维码

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

小夜