dsh-open-file:DeepSeek Harness Web 的工作区文件附件与读取插件

前言

在 DeepSeek Harness(DSH)里做会话时,助手经常需要查看本地文件:读取一段文本、解析一个 DOCX 或 XLSX、对图片做 OCR,或者把某一页文档渲染成图片。若只靠手动粘贴文本,容易丢失文件结构、表格范围和页面位置;若切换到外部工具,流程会被打断。

dsh-open-file 是 hyper-dsh-plugins 维护的一个 DSH 插件,面向 DeepSeek Harness Web,提供工作区范围内的文件附件、文档读取、本地 OCR 和页面渲染能力。它使用 MIT 许可证发布,GitHub 仓库为:

https://github.com/hyper-dsh-plugins/dsh-open-file

下面介绍它的功能、安装方式、典型用法和限制。

这是什么

dsh-open-file 的定位是:

Workspace-scoped file attachments, document reading, local OCR, and page rendering for DeepSeek Harness Web.

它会接入 DSH Web 会话,把上传文件放入当前 active session workspace,并给助手提供一组可追踪的文件工具。插件通过 cordis.patch.yml 注册 Host service、Web client 和 Skill。

已核实的环境要求如下:

  • DeepSeek Harness:0.1.0-rc.6
  • Node.js:>=22.13.0
  • 操作系统:Windows、Linux、macOS
  • 浏览器 API:fetchXMLHttpRequestFile、drag and drop、clipboard file paste

核心功能

插件主要解决三件事:把文件放进会话,让助手能检查与读取内容,把可用内容转成可引用或可渲染的结果。

具体能力包括:

  • 在现有 + 菜单中增加 Add → Attachment 入口。
  • 通过系统文件选择器、页面范围拖拽和剪贴板粘贴接收多个文件。
  • 用紧凑的 draft cards 显示格式图标、上传进度、取消、重试和移除控件。
  • 发送后把附件卡片放在对应用户消息下方,保持会话对齐。
  • 将同源二进制上传流式写入 active session workspace。
  • 提供四个 agent 工具:file_inspectfile_readfile_ocrfile_render
  • 读取文本、PDF、DOCX、PPTX、XLSX、bounded ZIP archives、常见图片格式,以及普通文件的 metadata。
  • 使用打包语言数据运行英文和简体中文 OCR。
  • 返回 source hashes、locators、cursors、parsers 和 stable references,便于追踪推理。

四个工具的职责如下:

Tool 职责
file_inspect 返回 metadata、parser details 和可选的 part_ref
file_read 读取选定 part,支持 text cursors 或 worksheet ranges
file_ocr 对选定 image part 运行本地英文和简体中文 OCR
file_render 将选定 document part 渲染为 workspace PNG

安装与启用

安装前先确认当前 DSH Web 环境满足上述兼容性要求。然后执行安装命令:

dsh plugin --profile web add dsh-open-file

安装后,插件会注册相应的 Host service、Web client 和 Skill,并依赖 DSH Web Host 的同源上传能力处理文件上传。

如果后续需要移除插件,可以执行:

dsh plugin --profile web remove dsh-open-file

典型用法

下面给出一个可复现的流程。先打开一个带有 active workspace 的 DSH 会话,再通过附件入口添加文件。

  1. 打开一个 DeepSeek Harness session,并确认当前有 active workspace。
  2. 选择 +AddAttachment,或者把文件拖到 Web app 页面,也可以从剪贴板粘贴文件。
  3. 查看 draft cards,等待上传进入 ready 状态。
  4. 发送消息,会话会生成 session-bound 的附件引用:
   dsh-open-file://attachment/v1/...
  1. 让 Assistant 对选定内容执行 inspect、read、OCR 或 render。
  2. 经过上面的步骤,助手可以根据文件内容继续回答或处理任务。

工具调用通常按“先检查、再读取、OCR 或渲染”的顺序进行:

  1. 使用 file_inspect 获取 metadata、parser details 和可选的 part_ref
  2. 根据返回的 part 使用 file_read 读取文本、worksheet ranges 等可用内容。
  3. 如果目标是图片,使用 file_ocr 对选定 image part 做本地 OCR。
  4. 如果目标是把文档页面变成图片,使用 file_render 生成 workspace PNG。

会话存储与资源限制

插件会把源文件和派生产物放在当前会话工作区下:

<workspace>/.dsh/open-file/v1/sessions/<sha256(session-id)>/

插件会读取和写入这个 session 目录,并在 DSH Web Host 上注册同源上传路由。

OCR 使用打包的 engchi_sim 语言数据。提取出的文件内容会被标记为 untrusted evidence,供下游推理参考;使用时应按不可信输入处理。

默认资源限制如下:

  • 文件大小:256 MiB
  • 每会话 draft files:20
  • 每会话 draft bytes:512 MiB
  • ZIP entries:10,000
  • expanded ZIP entry:64 MiB
  • total expanded ZIP bytes:512 MiB
  • ZIP compression ratio:100:1
  • upload timeout:300 seconds
  • parse and render timeout:30 seconds
  • OCR timeout:120 seconds
  • rendered pixels:40,000,000

适用场景与注意

这个插件适合需要把本地文件交给 DSH 助手处理的场景,例如读取文档摘要、检查表格、识别图片文字、渲染文档页面,或在会话中保留可追踪的附件引用。

使用注意:

  • 插件以当前 dsh 进程权限运行,安装前应先检查源码、依赖和 MIT 许可证。
  • 插件会读写指定的 session 目录,并注册同源上传路由,使用前应确认工作区权限和浏览器 API 是否可用。
  • 文件内容会被标记为 untrusted evidence,助手基于文件内容的推理不应等同于文件来源已经过外部信任校验。
  • 大文件、大 ZIP、长 OCR 或高像素渲染可能触发默认限制,应按上面的资源限制规划任务。

结尾

dsh-open-file 给 DeepSeek Harness Web 增加了一条工作区文件附件链路:上传、草稿控制、发送后引用、助手检查读取、本地 OCR 和页面渲染都在同一会话内完成。

GitHub 仓库:

https://github.com/hyper-dsh-plugins/dsh-open-file
羽毛球分组比赛记分
小程序二维码

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

小夜