前言¶
用 DSH 跑智能体时,会碰到一个很具体的麻烦:agent 交付的文档、生成的图片,多数情况下散在工作区里,过后要么找不到,要么要手动挪地方。会话里的附件是会话作用域的,关掉这条会话就没了入口。要达到「上传、浏览、预览、收藏、再附件回聊天」这一串动作,现在往往要靠手工建目录、手工传文件,流程割裂。
下面介绍的插件给 Harness 补一块全局的文件资料库,把这些动作收敛到面板里完成:上传和管理都在侧边栏底部的资料库面板里,chat 侧也能把库里的文件作为附件发出。
这是什么¶
gjunyoung/dsh-library 是一个面向 DeepSeek Harness 的本地文件库插件,维护者为 gjunyoung,社区目录给它的分类是「记忆」。定位一句话:在不改 Harness 本体的前提下,给当前 profile 加一个上传、浏览、预览、收藏、批量导出,并且和聊天打通的文件库。
它是纯插件实现:客户端半边只允许 require('react'),与 Harness 的交互一律通过 slot 注册和 loopback HTTP 完成,因此不需要改 Harness 源码。目录页显示星标为 0,属于新出现的项目。
核心功能¶
下面按 README 里列明的能力介绍,不做扩展。
- 上传:支持按钮上传和拖拽,单文件上限 200 MB,同名文件自动加序号。
- 浏览:网格 / 列表两种视图,按时间 / 名称 / 大小排序,支持搜索,分类包括全部 / 文件 / 图片 / 视频 / 音频 / 收藏。
- 预览:文本、Markdown、代码、HTML(沙箱渲染 + 源码切换)、图片(内嵌预览 + 全屏灯箱,支持滚轮缩放、拖动、旋转、下载、删除)、PDF,Office 文件走 PDF。
- 收藏:可以收藏 / 取消收藏,收藏夹(文件夹)分组,默认「未分类」。
- 批量:勾选、Shift 区间、全选、ZIP 打包下载、移到文件夹、发送到当前聊天、删除。
- 聊天集成:输入框左侧「+」可以从资料库选文件加入草稿附件;agent 通过
present交付的文件自动入库,并记录来源会话。 - 存储管理:设置页可以查看位置与占用、迁移到新目录、重建索引。
安装与启用¶
前提是本机已安装 DeepSeek Harness,并有一个可用的 profile。官方 README 给出的安装方式是先把仓库拿到本机,再从插件入口挂载,不是一条命令行的插件安装:
1、把仓库克隆或下载到任意位置,路径可以包含空格:
git clone https://github.com/gjunyoung/dsh-library.git
2、打开 Harness → 设置 → 插件 → 安装插件包,填入该目录的绝对路径,或者 npm pack 生成的 .tgz 路径。
3、在插件列表里启用「资料库」。
4、重启 Harness。
首次启动会在 ~/.dsh/library 创建存储目录,Windows 下是 C:\Users\<你>\.dsh\library。README 提示,安装入口在不同版本里名称可能略有差异(「安装」「添加插件」等),本质是把该目录作为当前 profile 的一个本地依赖。
典型用法¶
先打开面板:点侧边栏底部的资料库图标。上传区支持拖拽;列表右侧的「…」菜单提供预览、下载、收藏、移到文件夹、删除。
预览抽屉的行为按文件类型区分:图片和 PDF 可以放大;HTML 默认渲染,可以切源码;Office 文件首次打开时转换一次,之后走缓存。例如打开一个 .docx,首次会经过 Harness 内置的转换能力转成 PDF 显示。
收藏的入口在「…」里,点的「收藏」会打开文件夹选择器,已收藏的文件显示「取消收藏」。收藏的根层是文件夹列表(未分类 + 各收藏夹),进入文件夹后搜索框生效。
批量操作在面板底部的悬浮条上:全选 / 取消全选、下载(ZIP)、移到文件夹、发送到聊天、删除。发送到聊天对应聊天集成的那一条,把勾选的文件作为附件发到当前会话。
存储与维护¶
存储目录的结构如下:
~/.dsh/library/
├─ index.json 记录(文件名、大小、哈希、来源、收藏、所属收藏夹)
├─ index.backup.json 上一次的索引备份
├─ blobs/<2>/<sha>.bin 按内容寻址的文件本体(同内容只存一份)
├─ orphan/ 失去索引记录的字节(不会被自动删除)
├─ tmp/ 临时文件、Office 转换缓存
└─ thumbs/ 预留的缩略图目录
备份是复制整个目录,恢复时放回同一位置。迁移走 设置 → 资料库 → 填入新目录绝对路径 → 迁移,会搬运文件、校验后删除旧目录里的库数据,并记住新位置,重启仍生效。重建索引用磁盘上的字节重写 index.json,适用于索引损坏或手动动过目录的情况;索引里没有的文件会以 recovered-<hash前8位> 出现,原名与收藏信息无法恢复。
适用场景与注意¶
适合这样一类用法:已经有 DSH 和可用 profile,希望把 agent 交付物和常用文件集中管起来,并且要在聊天里反复引用库里的文件。不愿意改 Harness 本体的,这个插件走的是纯插件路径。
几个需要先知道的点。Office 只走 PDF:docx / xlsx / pptx 由 Harness 内置的转换能力转成 PDF 显示,不解析原始表格,Excel 的公式、图表不会单独渲染。HTML 是单文件预览:在沙箱 iframe 中以 srcdoc 渲染,脚本可运行,但读不到应用数据、也访问不到外网,./style.css 这类相对引用不可用。预览是页内抽屉:Harness 右侧栏的文档预览是会话作用域的,资料库是全局面板,因此预览放在面板内部的抽屉里。自动入库只认交付:agent 用 present 交付的文件会自动入库,write / edit 直接写进工作区的文件不会自动入库,这是为了避免把临时文件都塞进来。批量收藏未提供,收藏走单条操作。
另外,插件运行在当前 DSH 进程的权限下,并且安装方式是把本地目录作为 profile 依赖挂载。安装前建议先读一遍源码,确认 index.js(host 半边)和 lib/ 里的存储逻辑是否符合预期;许可证是 MIT(© 2026 gjunyoung),允许自由使用、修改、分发,软件按「原样」提供。
结尾¶
这个插件的价值在于把「文件管理」这件事收进了 DSH 的面板里,而不是另开一套工具:上传、浏览、预览、收藏、批量导出和聊天附件在同一次交互里完成,存储位置和索引也可以自行维护。它依赖 Harness 内置的 Office 转换和沙箱渲染能力,有明确的能力边界,用之前按上面的注意点核对。
- 目录页:https://www.skillhub.cn/plugins/gjunyoung/dsh-library
- GitHub:https://github.com/gjunyoung/dsh-library
(社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。)