前言¶
用 DSH 做数据分析、读论文或者汇报实验结果时,常见的问题是:模型给出的表格和数字,得自己再复制到绘图工具里才能看。工具日志里的 ASCII 图能看个大概,但没法调样式,刷新会话之后通常也就没了。
ylifeonlyonce/dsh-inline-visuals 解决的是这个问题:让 agent 在对话流里直接产出一张卡片图,卡片跟着会话日志走,刷新、重开、分支都还在。下面介绍这个插件。
这是什么¶
这是 YLifeOnlyOnce 维护的一个 DeepSeek Harness 插件,作用是把数据画成图,嵌在回复正文的下方,而不是只留在工具日志里。名字里的 Inline 指的就是图直接长在回答里。
社区目录页把它归在「趣味换装」分类(第 3 方目录的归类,跟功能本身关系不大)。项目 2026-11-05 建仓,README 标注 MIT 许可证,package.json 里的版本号是 1.1.0。
README 和仓库描述对种类数量的写法不一致:README 标题写「18 kinds of charts…」,还配了一枚 18 类的徽章;仓库 description 写「14 replayable visual kinds」。实际能力以下面那张种类表为准。
能画什么¶
README 给出的种类表分三组:
| 分组 | 种类 |
|---|---|
| Charts | bar · line · area · pie · doughnut · scatter · radar · waterfall |
| ML & papers | training curves · ROC/PR curves · confusion matrix · histogram · model leaderboard · embedding scatter |
| Everything else | compare table · timeline · gantt · heatmap · flow · KPI tiles |
这些图都支持 presentation styles:横向或堆叠的柱状、阶梯线、数据标签、图例、网格、五种配色、高度与密度、散点趋势线、对数坐标轴、EMA 平滑、误差棒。
体积上,宿主侧约 35 KB,浏览器侧一个自包含文件约 217 KB(Chart.js 内联,React 与宿主共用)。测试用 node:test 写了 38 个,每次 push 跑 CI,npm 发布由 tag 驱动并带 provenance。
安装与启用¶
在 DSH 会话里粘贴一行:
plugin_manager({ action: "install_bundle", target: "dsh-inline-visuals" })
不需要 clone,不需要配置。装完之后 agent 的工具列表里会出现 show_visual 和 edit_visual。
README 标注需要 DeepSeek Harness v0.2.1-rc.3 或更高版本。想从源码装的话,README 给出的替代路径是 github:YLifeOnlyOnce/dsh-inline-visuals,或者把 Plugin Manager 指向本地 clone,细节见仓库里的 docs/reference.md。
典型用法¶
装完直接跟 agent 说需求。README 给了几个例子:
Compare three caching strategies — hit rate, memory and complexity — as a chart.
Turn that into a horizontal stacked bar, and add value labels.
Draw our release pipeline as a flow.
Show last week’s traffic as a heatmap.
改样式也不用从头重画,edit_visual 会在原 spec 上打补丁。
读论文和训练日志的场景:
Plot train/val loss for 8 epochs on a log scale, smoothed, with error bars.
Draw the ROC curve from these points and mark AUC.
Make a confusion matrix for cat/dog/bird from this table.
Compare these four models on accuracy, F1 and latency — highlight the best.
Cluster these embeddings by class and show a t-SNE scatter.
它是怎么工作的¶
模型发出一个小的声明式 spec,插件校验后把它写到 tool result 上,客户端用宿主的主题来渲染。因为数据已经在会话日志里,回放时不需要再调一次模型。
实现层面的几个细节:
- 卡片存在会话日志(
tool/result.meta)里,不是单独的文件。 - 插件自身不做任何网络请求。
- 模型只发数据,不发 HTML 或 JavaScript。
- 图表类(canvas)支持点击数据点,一键把后续提问带进输入框。
- 纯文本客户端会收到一份紧凑的文字摘要,信息不丢。
- spec 的稳定版本是
version: 3,v1/v2 的 spec 仍然能渲染。 - 导出:复制为 JSON 或 CSV,图表导出 PNG,手绘卡片导出 SVG。
适合谁,以及注意点¶
适合想在 DSH 里读论文、看训练曲线、做数据对比,并且希望图能留在会话里的人。功能上跟绘图工具重叠,但胜在不用离开对话、不用二次加工。
注意几点:
- 插件以当前 DSH 进程的权限运行,安装前应当先读一遍源码,确认它的行为符合预期。许可证是 MIT(© 2026 YLifeOnlyOnce)。
- README 上的种类数(18)和仓库描述(14)不一致,如果要做选型,建议直接看
docs/reference.md的参数清单。 - 仓库目前只有 1 个 star,关注度很低,遇到问题基本得自己提 issue 或者改源码。
- 按 README 的说法,目前只有 chart 类画布支持点击追问,其他类型的交互还没上。
小结¶
这个插件的价值是把「图」变成会话日志的一部分:图出现在回答下方,能点击追问、能改、能导出,重开会话还在。安装一行命令,不需要配置。
- 目录页:https://www.skillhub.cn/plugins/YLifeOnlyOnce/dsh-inline-visuals
- GitHub:https://github.com/YLifeOnlyOnce/dsh-inline-visuals