DeepSeek Harness (DSH) 的客户端插件体系允许扩展默认功能。默认的官方附件管线专门针对图片优化,文档(如 PDF、Word)无法通过该路径上传。直接内联文本会占用大量上下文。dsh-md-picker 插件通过将文档转换为 Markdown 并存储来解决这个问题,使智能体能够通过文件工具按需读取。
核心功能¶
- 图片合成与注入:图片通过合成 drop 注入官方附件管线,支持缩略图预览与数量/大小校验。
- 文本类原样暂存:
.txt、.md、.markdown文件读出原始字节,服务端自动探测编码(BOM/UTF-8/GBK 等)并统一按 UTF-8 暂存。 - 文档转 Markdown:支持
.doc/.docx、.ppt/.pptx、.xls/.xlsx、.pdf、.rtf、.odt/.ods/.odp、.csv、.epub等多种格式,通过服务端anydoc转换为 Markdown。 - 重复上传去重:基于 SHA-256 内容指纹,相同内容仅返回既有路径,不重复落盘。
- 安全与目录保护:默认开放访问,可选令牌鉴权(LAN 加固)。附件目录创建时自动写入
.gitignore,避免被纳入版本控制。 - 交互与反馈:支持上传进度显示、任意位置拖放文件。正文只插入极短的回执(路径、字符数、预览),不占用会话上下文。
安装与配置¶
插件通过安装命令部署,依赖宿主机环境。
dsh plugin add github:shangfr/dsh-md-picker
前置条件:
* 宿主机安装 Node 20+(DSH Desktop 自带 npx)。
* 仓库需声明 dsh.bundle(本包已声明)。
首次转换文档时,npx 会自动下载 anydoc。
工作原理¶
插件在会话输入框左侧添加按钮,交互逻辑如下:
- 图片:合成 drop 注入官方 ComposerAttachments 接收。
- 文本:POST 到本地
/dsh-md-picker/store,探测编码并按 UTF-8 暂存到工作目录。 - 文档:POST 到本地
/dsh-md-picker/convert,由anydoc转换为 Markdown,SHA-256 去重后落盘。 - 其他:列出“未处理”清单。
附件目录解析顺序:环境变量 DSH_MD_PICKER_DIR > 会话所属 workspace > 当前工作目录 > ~/.dsh/md-picker-attachments/。
限制与注意事项¶
- 单文件上限:25 MB,超出返回 413。
- 其他类型:非图片、文本及支持转换的文档类型,回执会列出“未处理”清单。
- PDF 扫描:若 PDF 需 OCR,anydoc 退出码 3,返回 422 提示需 OCR。
- 依赖环境:要求宿主机有 Node 20+ 与 npx。
适用场景¶
适合需要在 DSH 中处理文档、且希望避免上下文溢出的开发者。插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证。
结语¶
该插件通过标准化文档格式与本地暂存,解决了 DSH 官方附件管线对文档支持不足的问题。