DeepSeek Harness 插件介绍:dsh-reference-render

DeepSeek Harness (DSH) 采用“一切皆插件”的架构理念。在构建智能体对话流时,经常需要引用特定资源(如报告 ID、数据库记录等)。如果没有统一的渲染标准,这些引用可能只是普通的 Markdown 链接,缺乏上下文展示和交互入口。dsh-reference-render 插件旨在解决这一痛点,提供一种域中立的结构化引用渲染方案。

插件定位

这是一个由 popingalex 维护的 DSH 客户端插件。它不拥有业务真理,而是作为渲染层存在,将标准的 GFM(GitHub Flavored Markdown)链接转换为具有交互功能的行内 Chip。

核心能力

  1. 域中立渲染:插件不处理具体的业务逻辑,内容由其他插件通过契约提供。
  2. 自动转 Chip:普通的 GFM 链接会自动被渲染为行内 Chip。
  3. 装饰支持:支持 dot、bar、icon 装饰,每侧最多 3 个。
  4. 交互能力:
    • 悬浮预览:鼠标悬停可查看引用内容。
    • 右侧栏跳转:点击 Chip 可在右侧栏打开对应资源。

安装与启用

由于该插件尚未发布至 npm,需直接从源码构建安装。请确保你的环境满足依赖要求(DSH 0.2.1-alpha.1,Node.js ^22.19.0 或 >=24.0.0)。

git clone https://github.com/popingalex/dsh-reference-render.git
cd dsh-reference-render
pnpm install
pnpm build
npm pack
dsh plugin --profile web add ./dsh-reference-render-0.1.0.tgz

典型用法

1. 基础引用

在对话文本中直接使用 [label](dsh-ref:<kind>:<id>) 语法,插件会将其渲染为 Chip。

Build completed. See [RP-42](dsh-ref:report:RP-42) for details.

2. 内容插件集成

内容插件可以通过注册插槽和监听事件来声明引用并提供装饰。例如,内容插件可以注册 reference.hover.content 并提供图标装饰。

ctx.effect(() => ctx.slots.register({ 
  name: 'reference.hover.content', 
  select: (owner) => isOurs(owner.descriptor) ? {} : null 
}, MyHoverCard))

ctx.on('reference/open', ({ descriptor }) =>
  isOurs(descriptor) ? (ctx.sidebarRight.openResource(descriptor.uri), { handled: true }) : undefined)

适用场景与注意

  • 适用场景:适用于需要在对话流中嵌入各种资源引用的场景,特别是需要统一交互体验(如悬浮预览、侧边栏跳转)的 DSH 插件开发。
  • 兼容性:目前仅供 DSH 0.2.1-alpha.1 测试使用。
  • 运行机制:
    • 未声明的引用保持为普通 Chip,无操作(Hover 和 Click 均无效)。
    • 移除该插件不会影响主机(DSH 主进程)。
  • 生态说明:该插件收录在社区目录(SkillHub)中,与 DeepSeek 或幻方无官方从属关系。

总结

dsh-reference-render 为 DSH 插件生态提供了标准化的引用渲染层。它通过解耦渲染逻辑与业务逻辑,让内容插件专注于数据提供,而由该插件统一处理引用的展示与交互。

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

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

小夜