前言¶
在 DSH (DeepSeek Harness) 的 Web GUI 中,智能体在运行过程中会生成报告、仪表盘、图表或 CSV 等文件。查看这些产物通常需要手动复制文件路径到浏览器,或者脱离 DSH 的会话上下文。
dsh-artifacts 插件在 DSH 侧边栏新增了一个名为 dsh-artifacts:library 的标签页。它像 Explorer 或 Editor 一样存在于侧边栏体系中,用于列出代理生成的工件目录,并在标签页内直接预览文件,支持实时轮询更新。
核心功能¶
注册标签页
插件通过 dsh-better-sidebar 插件提供的扩展点注册一个新标签页,默认标签名为 dsh-artifacts:library。
列表展示
工件列表按最新时间优先排序。每行显示文件类型徽章、文件名、文件大小和文件年龄。列表支持根据当前聊天会话进行范围限定。
预览与操作
点击列表行可在标签页内的 iframe 中预览文件(使用相对 URL 实现同源加载)。支持的操作包括:
* 在真实浏览器标签页中打开
* 复制分享链接
* 重新加载预览
* 刷新索引列表
性能优化
列表索引仅在标签页激活且面板打开时,每 5 秒轮询一次。工具栏和行布局采用固定尺寸,避免因数据变化导致的布局抖动。
安装与启用¶
在终端中执行以下命令进行安装:
dsh plugin --profile web add github:lucagiftzek/dsh-artifacts
安装完成后,需要重启 dsh-web 进程才能激活插件。插件通过 rev 版本号机制,后续对 lib/client.js 的修改在浏览器刷新后即可生效。
使用方法¶
配置索引地址
默认的索引 URL 为 /report/?list=1。若需覆盖,可在浏览器控制台执行:
localStorage['dsh-artifacts:indexUrl'] = '/artifacts/index.json'
索引接口规范
插件需要一个同源 HTTP 端点返回 JSON 索引,格式如下:
{ "count": 2, "items": [
{ "name": "report.html", "url": "/report/report.html", "ext": "html",
"size": 11160, "mtime": 1788934528 }
] }
url 字段可以是相对路径或绝对路径。插件具备一定的容错能力,缺失 badge 或 size 等字段时仍可正常渲染。
代理技能
插件目录下包含 skills/publish-artifact/SKILL.md,这是一个即插即用的技能文件,指导代理如何按照约定生成工件文件。
架构与注意事项¶
依赖要求
此插件依赖 dsh-better-sidebar 插件。若未安装该插件,插件不会注册标签页,也不会报错,而是静默失效。
服务端要求
插件本身不管理文件系统或定义路由,必须由用户自行搭建一个返回 JSON 索引的 HTTP 端点。
节点部分设计
lib/index.js 节点部分故意为空,不导入任何内容。这是为了防止因宿主环境缺少某些依赖(如 @deepseek-ai/dsh-settings)导致插件安装失败或宿主崩溃。
许可证
插件采用 MIT 许可证。使用时请保留版权声明。如果公开分支,建议在 README 中注明基于 dsh-artifacts 开发。
总结¶
dsh-artifacts 将智能体的文件输出能力直接集成到了 DSH 侧边栏中,提供了从列表浏览到本地预览的闭环体验。它依赖于同源 HTTP 端点提供索引,并通过轻量级的客户端逻辑实现界面展示。
- GitHub 仓库: https://github.com/lucagiftzek/dsh-artifacts
- 插件目录: https://www.skillhub.cn/plugins/lucagiftzek/dsh-artifacts