前言¶
用 DSH 跑智能体时,模型经常通过 write/edit 类工具在一轮对话里产出多个文件:Markdown 报告、脚本、CSV 数据、HTML 页面。默认的 dsh web 界面对此帮助有限——文件视图只支持 HTML,查看其余格式得离开会话,自己去文件系统里找路径、换应用打开。
DSH 的理念是「一切皆插件」,这类界面上的缺口正好留给 client plugin 来补。下面介绍的 dsh-artifact-preview 做的就是这件事:让 agent 写出的文件直接在聊天里可见、可点开、可就地预览。
这是什么¶
dsh-artifact-preview 是 nirvanaslash 维护的一个 DSH 客户端插件(dsh.client.platform 为 "web"),定位一句话:Codex 风格的 DeepSeek Harness (DSH) 产物预览插件——聊天内产物行 + 可调宽度的分屏侧边预览。
它解决的问题是:查看产物不需要离开会话。聊天收尾消息里直接给出「产物」行,点击任一文件就在右侧分屏中渲染预览。许可证为 MIT,当前版本 0.1.2。
核心功能¶
聊天内产物行¶
agent 写文件之后,收尾消息会显示一行「产物」,包含文件 chips和内联图片缩略图,点击任意一项即打开侧边预览。这一行追踪的依据是模型在本轮通过 write/edit 类工具产出的文件。
分屏侧边预览面板¶
预览面板位于窗口右侧,是真实的分屏,宽度可调,会话内容保持可见、不被遮挡。不同类型的文件按对应方式渲染:
- Markdown:富文本,标题、表格、列表、代码块、链接、图片都支持,相对路径的本地图片自动解析;
- 源代码(
.py .js .ts .sh .css等):暗色语法高亮; - CSV:HTML 表格;
- JSON:可折叠树;
- 图片(
.png .jpg .gif .webp .svg等):棋盘格背景的居中视图; - HTML / localhost 端口:iframe 渲染,开发服务器会给出端口 chips,另有 URL 栏、前进/后退/刷新和外部打开。
供其他插件调用的全局钩子¶
插件在 window 上暴露两个全局钩子:window.__dshOpenFilePreview 和 __dshCanPreviewPath。其他插件可以把「打开文件」的意图路由到这个预览面板,不必各自实现渲染逻辑。
安装与启用¶
安装命令如下。这个包声明了 dsh.bundle 和 dsh.client,所以 dsh plugin add 会安装依赖,并把预览自动注册为活跃的 client-plugin 层,不需要手动编辑 profile:
dsh plugin --profile web add github:nirvanaslash/dsh-artifact-preview
安装后需要重启 dsh web 服务(或 DSH Desktop),再刷新页面。
npm 发布完成后,还可以用下面这条命令安装,Marketplace 搜索路径同样适用(截至写作时,npm 发布尚未完成,README 原文写的是 Once the package is published to npm):
dsh plugin --profile web add dsh-artifact-preview
前置条件有两条:
1、DSH Desktop,或装有 dsh-file-changes 伴侣插件的 dsh web profile。预览通过 /dsh-files/static/<absolute-path> 路由获取文件内容,这条路由在 DSH Desktop 里是内置的;裸 dsh web 安装需要先装 dsh-file-changes 伴侣插件。
2、模型需要通过 write/edit 类工具产出文件,插件的「产物」行正是这样追踪出来的。
兼容性与已知边界¶
插件面向 DSH 0.1.0-rc.7(DSH Desktop 2.0.1 内置)的 client plugin ABI 构建:window.__ModuleLoader__ 模块格式、dsh.client 元数据、dsh.bundle patch 注册,以及 conversation.chat.turnTail 链槽。链槽选举依赖低 priority(-100)让产物行胜过官方 deliverables 行,DSH 升级后需要重新验证这个行为。依赖方面,包以 peerDependencies 声明了 react ^18.2.0。
有两个可选行为刻意没有打包,因为它们需要补丁 DSH 核心文件:
- 文件视图中的多类型预览按钮;
- 消息正文内文件名提及的「打开 → 预览」。
缺省状态下,文件视图保持 DSH 原有的仅 HTML 行为,正文提及的文件用系统应用打开。聊天内的产物行和预览面板本身由这个包完全自包含,不依赖核心补丁。
适用场景与注意¶
适合的人群很明确:在 DSH Desktop 或 dsh web profile 上跑智能体、经常让模型产出文件、希望留在会话里就地查看结果的开发者。如果你在写其他 client plugin,也可以直接复用 window.__dshOpenFilePreview / __dshCanPreviewPath,把自己的「打开文件」动作接到这套预览上。
安装前有几点要注意:
1、插件以当前 dsh 进程权限运行,安装第三方插件等于把代码放进你的工作环境,建议安装前先检查源码。
2、许可证为 MIT,源码托管在 GitHub,可以直接审阅。
3、插件绑定的是 DSH 0.1.0-rc.7 的 ABI 和链槽行为,升级 DSH 后留意产物行是否仍然正常出现。
结尾¶
dsh-artifact-preview 补上的是 DSH 日常使用里一段具体的小路径:从「模型写完了一个文件」到「看到内容」。装上插件、重启服务并刷新页面,产物行和侧边预览就接管了这段路。
插件页面在社区目录:https://www.skillhub.cn/plugins/nirvanaslash/dsh-artifact-preview
源码在 GitHub:https://github.com/nirvanaslash/dsh-artifact-preview
需要说明的是,这个目录是独立的社区站点,与 DeepSeek / 幻方没有官方从属关系。