前言¶
在 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:
fetch、XMLHttpRequest、File、drag and drop、clipboard file paste
核心功能¶
插件主要解决三件事:把文件放进会话,让助手能检查与读取内容,把可用内容转成可引用或可渲染的结果。
具体能力包括:
- 在现有
+菜单中增加Add → Attachment入口。 - 通过系统文件选择器、页面范围拖拽和剪贴板粘贴接收多个文件。
- 用紧凑的 draft cards 显示格式图标、上传进度、取消、重试和移除控件。
- 发送后把附件卡片放在对应用户消息下方,保持会话对齐。
- 将同源二进制上传流式写入 active session workspace。
- 提供四个 agent 工具:
file_inspect、file_read、file_ocr、file_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 会话,再通过附件入口添加文件。
- 打开一个 DeepSeek Harness session,并确认当前有 active workspace。
- 选择
+→Add→Attachment,或者把文件拖到 Web app 页面,也可以从剪贴板粘贴文件。 - 查看 draft cards,等待上传进入 ready 状态。
- 发送消息,会话会生成 session-bound 的附件引用:
dsh-open-file://attachment/v1/...
- 让 Assistant 对选定内容执行 inspect、read、OCR 或 render。
- 经过上面的步骤,助手可以根据文件内容继续回答或处理任务。
工具调用通常按“先检查、再读取、OCR 或渲染”的顺序进行:
- 使用
file_inspect获取 metadata、parser details 和可选的part_ref。 - 根据返回的 part 使用
file_read读取文本、worksheet ranges 等可用内容。 - 如果目标是图片,使用
file_ocr对选定 image part 做本地 OCR。 - 如果目标是把文档页面变成图片,使用
file_render生成 workspace PNG。
会话存储与资源限制¶
插件会把源文件和派生产物放在当前会话工作区下:
<workspace>/.dsh/open-file/v1/sessions/<sha256(session-id)>/
插件会读取和写入这个 session 目录,并在 DSH Web Host 上注册同源上传路由。
OCR 使用打包的 eng 和 chi_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