dsh-artifact-preview:把智能体产物预览搬进 DSH 聊天界面的客户端插件

前言

用 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.bundledsh.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 / 幻方没有官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye