前言¶
DeepSeek Harness(DSH)在对话中输出长文本时,往往缺少结构化排版。现有做法要么依赖模型自己写格式,要么需要手动调整,增加开发者的工作量。九点四(ninepoin4)开发的 dsh-rich-cards 插件,通过在回答末尾自动插入可渲染的卡片块,让模型输出具备标题、导语、要点、数据、时间线、配图等结构化元素。
插件定位¶
这是 DeepSeek Harness 的一个排版插件,由维护者 ninepoin4 开发。它通过围栏块(fenced code block)约定,在回答末尾附加一张结构化的卡片或文章,支持卡片布局和文章布局两种模式。
核心能力¶
插件支持 12 种内容块类型,可用于构建不同结构的信息展示:
heading/paragraph:小节标题、正文段落bullets/steps/chips:要点列表、步骤流程、标签stats:2–4 个关键数字kv:左右对照的键值行callout/quote:提示框(info / tip / warn)、引用timeline:带年份的事件线image:真实 URL + 说明 + 来源divider:分隔线
卡片或文章的顶层配置包括:
layout: "card" | "article":卡片布局或文章布局(文章去掉卡片外壳,按文章排版)title:卡片标题kicker:分类 · 主题lead:导语accent:主题色(如 indigo)blocks:块数组sources:底部来源标签footer:页脚
插件以 fail open 为原则:解析失败时,卡片会显示为一段代码,不会中断整轮回答。
安装¶
使用 DeepSeek Harness 的插件安装命令,将插件添加到指定 profile:
dsh plugin --profile <你的 profile> add link:/path/to/dsh-rich-cards
安装完成后刷新窗口,卡片渲染在回答末尾,无需重启会话。
典型用法¶
模型会根据回答内容,在末尾生成一个 card 围栏块。示例:
```card
{
"title": "一句话答案",
"kicker": "分类 · 主题",
"lead": "导语",
"accent": "indigo",
"blocks": [
{"type": "paragraph", "text": "正文"}
]
}
```
也可以手动写,渲染器只认 card 这个 info string,正文必须是合法 JSON。
配图采用约定:讲人物、地点、作品时,先查一张真实图片(示例中用 curl 走维基图库接口),查到则配上 URL、说明与来源;查不到则不配图,不输出“接口被拦”“没找到配图”等信息。
适用场景与注意¶
适合需要结构化输出的场景,如:
- 输出定义、公式、对比等内容,使用
card布局 - 输出长文、时间线、来源,使用
article布局 - 需要配图展示人物、地点、作品时,使用
image块
注意:
- 一张回答只渲染一张卡,最后一张生效
- 卡片位置固定在回答末尾,不能插到段落中间
- 解析依赖 DOM 匹配,若主题改动代码块结构,可能失效
插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
结尾¶
dsh-rich-cards 通过围栏块约定和前端 DOM 扫描,在回答末尾自动渲染结构化卡片,支持 12 种块类型和卡片/文章两种布局。插件位于社区目录,源码在GitHub。