前言¶
DeepSeek Harness (DSH) 的生态理念是「一切皆插件」。在开发或调试智能体时,处理文件操作是常见需求。开发者需要在不离开 DSH 界面的情况下浏览工作区文件、查看当前会话产生的结果,并将文件路径传递给 AI 进行分析。dsh-file-preview 插件提供了这些基础能力。
插件简介¶
该插件由开发者 ld-1101 维护,采用 MIT 许可证。它是一个客户端插件,通过宿主端路由提供服务。主要功能包括:在左侧边栏浏览工作区文件、预览 Markdown/PDF/图片/CSV/代码文本、展示当前会话中 AI 产出或修改过的文件,以及将文件拖拽至对话中插入路径。
安装与启用¶
当前该插件尚未发布至 npm,请使用本地源码安装。
- 克隆仓库:
git clone https://github.com/ld-1101/dsh-file-preview.git
-
在你的 DSH profile 目录下的
package.json中进行配置:
* 在dependencies字段中添加:
"dsh-file-preview": "file:<克隆后的绝对路径>"
* 在dsh.profile.bundles数组中追加:
"dsh-file-preview" -
安装依赖后,完全退出并重新启动 DSH 应用。
核心功能¶
左侧边栏与文件浏览¶
插件在 DSH 左侧边栏底部添加了一个「📁 文件」按钮。点击后,文件列表面板会在右侧展开(对话区域自动让位)。面板宽度可在 320px 至 900px 之间拖动调整,且支持宽度记忆。双击面板左缘手柄可恢复默认宽度。
会话产出文件列表¶
面板顶部列出当前会话中 AI 产出或修改过的文件。该数据来源于会话事件日志中的 tool/result 事件,提取其中的 locations[].path。列表支持切换会话,切换后会自动定位到该会话所在的工作区目录。
拖拽到对话¶
支持将文件或文件夹拖拽到会话界面的任意位置(无需对准输入框)。插件会拦截 drop 事件,并在输入框光标处插入单行纯路径。发送后,AI 即可读取该路径下的文件内容。
预览能力¶
点击任意文件,插件会在面板内进行渲染:
* 支持格式:Markdown(渲染)、PDF(内嵌)、图片、CSV(表格)、代码文本。
* 不支持的格式:点击后会通过新标签页打开,由浏览器决定展示方式。
安全限制¶
- 工作区隔离:插件只能访问 DSH 已注册的工作区。工作区外的路径(包括路径穿越尝试)一律拒绝访问。
- 文本读取上限:文本读取限制为 5 MiB。超过该大小的文件会被截断,并在面板内提示。
使用方法¶
- 打开文件面板:点击左侧边栏底部的「📁 文件」按钮,展开文件列表面板。
- 查看会话产出:在面板顶部下拉框切换会话,查看当前会话修改过的文件列表。
- 浏览目录:使用面包屑导航或点击目录项浏览工作区树状结构。
- 调整宽度:按住面板左缘的手柄拖动以调整宽度。
- 插入文件路径:将文件或文件夹直接拖拽到会话输入框上方区域,光标处会出现一行路径字符串。
- 预览文件:在文件列表中点击文件,面板内即时渲染预览。
注意事项¶
- npm 发布状态:当前仅支持本地源码安装,
dsh plugin add命令暂不可用。 - 会话产出列表为空:如果 Agent 通过
run_code等包装工具执行文件操作(不产生locations字段),该列表将为空。这是平台行为,与 DSH 原生 deliverables 一致。 - 文本截断:超过 5 MiB 的文本文件会被截断,请注意查看面板内的提示。
- 平台限制:插件依赖 Web 壳的客户端注入机制,目前主要面向 Web 平台。
生态与链接¶
该插件为开源项目,仓库包含 25 项客户端单元测试、冒烟测试及集成测试。更多详情请访问:
* GitHub 仓库
* 社区目录