前言¶
在 DeepSeek Harness(DSH)里跟智能体多轮对话,往往会落下一批真实交付物:Markdown 报告、单文件 HTML 仪表盘、PDF、表格和 Office 文档。它们通常堆在同一个工作区里,Harness 侧栏并没有按「哪次对话写了什么」来归档的入口,要找回上周某次会话的报告,只能自己在磁盘里翻路径。
社区插件 dsh-doc-panel(维护者 leobasic)在侧栏增加 Documents 面板:按会话索引产出文件,支持浏览、即时搜索和收藏,并在应用内预览,无需另开文件管理器。分类为客户端插件;当前 GitHub 星标为 0,许可证 MIT,package 版本 0.1.1(以仓库 package.json 为准)。
这是什么¶
一句话:面向单次对话的文档浏览器——把各会话产生的文档归到对应对话下,可搜索、可预览。
实现上拆成 Host(index.js,Node 内置模块)与 Client(client.js,Harness Web 内 React),由 cordis.patch.yml 接线;无构建步骤、无运行时 npm 依赖。要求 Node.js ≥22(package.json engines 写明 ≥22.19.0),在 DSH Desktop 0.2.2-rc.1 与 Node 24 上做过测试;需已安装带 plugin_manager 工具的 DSH(dsh 引擎约束见 package.json)。
核心功能¶
下面能力均来自项目 README,未列出即视为资料未承诺。
按会话分组与总览¶
- Conversation folders:每个会话一张卡片,卡外展示摘要:文档数量、总大小、相对更新时间、类型构成。
- Dashboard:会话数、文档数、收藏数、近 7 天指标(含柱状 sparkline)、文档类型环形图、最近更新列表。
搜索与收藏¶
- Instant search:输入时过滤会话标题、文档名与路径;纯客户端,不索引或搜索文件正文。
- Favorites:在列表或预览头标星;持久化到磁盘,重启保留;源文件已删除的项仍显示为不可用且无法打开。
预览与归属¶
- Inline previews:Markdown 渲染;HTML 沙箱 iframe;PDF 嵌入;纯文本/源码;Office 提供打开/下载卡片;Markdown 与 HTML 可在预览/源码间切换(中文界面为「预览 / 源码」)。
- Accurate grouping:从 session log 中的
write、edit、present等写能力工具参数提取路径,并对工作区做过滤扫描;子 agent 会话折叠进根会话。 - Native look:仅用 Harness 主题 token;图表为 SVG/CSS,无图表库。
- Quiet by design:无出站网络、无遥测、Host 仅 Node 内置;UI 支持英文与简体中文,跟随 Harness locale。
安装与启用¶
前提:DSH 已具备 plugin_manager。部分操作可能需要 Full access 或审批提示。
若当前 DSH 构建支持从 git 规格安装 bundle,可直接指向 GitHub 仓库:
plugin_manager({ action: 'install_bundle', target: 'https://github.com/leobasic/dsh-doc-panel' })
若不支持,需将 target 指向本机上的插件目录绝对路径(README 推荐的 local checkout 流程;具体路径以你的环境为准),例如:
plugin_manager({ action: 'install_bundle', target: '/absolute/path/to/dsh-doc-panel' })
包发布到 npm 后,也可按包名安装(资料注明 npm 包仅含 Harness bundle 文件,运行仍依赖 DSH):
plugin_manager({ action: 'install_bundle', target: 'dsh-doc-panel' })
无构建步骤,文件按仓库原样加载。卸载:
plugin_manager({ action: 'remove_bundle', target: 'dsh-doc-panel' })
典型用法¶
- 点击左侧边栏的 documents 图标。
- 仪表盘展示产生过文档的会话;点会话卡片进入该会话文件夹。
- 点文档进入预览:Markdown/HTML/PDF/Office 等按类型处理;可用预览/源码切换。
- 在文档或预览头标星;通过收藏分段控件与收藏夹卡片查看;搜索过滤全面板;刷新按钮触发重新索引。
首次全量扫描会读取 session 语料,可能稍慢;之后走缓存会快许多。
可选配置¶
插件行可附带可选 config 对象,键均可省略。默认扩展名含 .md、.html、.pdf、Office 常见后缀等;.csv/.txt 需自行加入 extensions 才会扫描与预览。
| Key | 默认 | 用途 |
|---|---|---|
extensions |
见 README 默认列表 | 扫描与预览的类型 |
maxFiles |
5000 |
单次扫描收集文件上限 |
maxDepth |
6 |
每个会话工作区向下遍历的最大深度 |
cacheTtlMs |
60000 |
内存/持久化索引视为新鲜的时长 |
cachePath |
null |
索引缓存路径;null 时为 <defaultDirectory>/.dsh-doc-panel/index.json |
favoritesPath |
null |
收藏存储;null 时为 <defaultDirectory>/.dsh-doc-panel/favorites.json |
timeoutMs |
180000 |
单次扫描硬超时;超时返回部分索引且 diag.complete: false |
warmOnStartup |
true |
激活后后台预热索引 |
<defaultDirectory> 为 Harness 默认工作目录(常规安装为 profile 目录;回退为 ~/.dsh)。完整说明见仓库 docs/configuration.md。
示例片段:
- id: dsh-doc-panel
name: dsh-doc-panel
config:
extensions: ['.md', '.markdown', '.html', '.htm', '.pdf', '.docx', '.doc', '.xlsx', '.xls', '.pptx', '.ppt']
maxFiles: 5000
maxDepth: 6
cacheTtlMs: 60000
cachePath: null
favoritesPath: null
timeoutMs: 180000
warmOnStartup: true
工作原理(简要)¶
Host 通过 sessionQuery 读取 session 语料,从日志提取标题、时间与文档路径信号;再按配置的 extensions 扫描各会话工作区(跳过 node_modules、.git、.asar、点目录等)。文件按四级规则归属到会话;无法归属的不展示。索引缓存在内存并原子写入 JSON;POST api/dsh-doc-panel/list 提供列表,read/file 在允许列表内提供预览。Client 注册侧栏入口与主面板;HTML 预览使用 sandbox="allow-scripts allow-downloads" 的 iframe。
更细的流程与数据流图见仓库 docs/architecture.md。
适用场景与注意¶
适合谁:长期在 DSH 里产出报告、仪表盘、PDF 等文件、需要按对话回溯交付物的开发者。
隐私与安全(README 摘要):插件不做外网请求与遥测;预览路径来自索引白名单。
运行权限:插件与当前 DSH 进程权限一致。安装前请自行查看源码与 MIT 许可证,确认 plugin_manager 安装源可信。DSH 生态强调「一切皆插件」;社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-doc-panel 把「这次对话生成了哪些文件」收进 Harness 侧栏:总览、按会话文件夹、即时搜索、收藏与内联预览,索引逻辑绑定 session 与工作区扫描,并刻意保持无额外依赖与无出站流量。
- 目录页:https://www.skillhub.cn/plugins/leobasic/dsh-doc-panel
- 源码与 README:https://github.com/leobasic/dsh-doc-panel