dsh-avatar-chat:为 DSH 对话流加上用户与助手双头像

前言

DeepSeek Harness(DSH)的对话区默认是「气泡 + 文字」,没有为每一轮用户请求或助手回复单独挂头像。若你希望在 transcript 里一眼区分双方、或用自己的图片做标识,改内置渲染器并不现实:第三方插件既不能占用 conversation.chat.node 上已被占满的席位,也无法依赖 CSS Modules 的类名去改样式。

dsh-avatar-chat 走另一条路:用页面级样式表根据行上的稳定 data-* 属性绘制头像,并在设置里提供独立的 Avatars 页。下面介绍它是什么、能做什么,以及如何安装与配置。

这是什么

dsh-avatar-chat 是面向 DSH Web Client 的 Cordis 插件(bundle):在每条用户轮次右侧、每条助手回答左侧显示头像,并在 Settings 中增加 Avatars 设置页,用于开关两侧头像、选图与调节尺寸。

核心功能

以下能力均来自项目 README 的说明。

双头像独立配置

用户侧与助手侧各自拥有:

  • 显示/隐藏开关
  • 独立图片(上传或 URL)
  • Restore default 恢复内置纯 CSS 圆盘(无 bundled 图片,依赖主题 token,明暗主题均可)

图片来源与尺寸

  • 本地上传:PNG / JPEG / WebP / GIF,最大 5 MiB,会缩放到 256 px
  • 或粘贴 https://… 地址(采纳前会探测一次)
  • 头像尺寸 20 px~64 px,对话区与设置页预览同步更新

与对话结构的配合

助手回复若拆成「推理行 + 回答行」,仅回答行显示助手头像,避免同一回复出现两个头像。

卸载与依赖

插件 dispose 时会清理写入的根节点 attribute 与 custom property。运行时需要 DSH 0.2.1-alpha.4(Web / Desktop);bundle 依赖的 react、@deepseek-ai/dsh-client-store、@deepseek-ai/dsh-client-ui-primitives 等由 shell 的 frozen module table 提供,无需额外安装。

安装与启用

安装前请先退出桌面端应用:desktop profile 在应用运行期间会被锁定。安装完成后均需重启 DSH,bundle 在启动时组合进栈。

方式一:插件市场(推荐)

  1. 打开 Plugins → More → Experimental plugins → Custom plugin markets
  2. 在 Plugins → Discover 中添加索引源并安装卡片:
https://raw.githubusercontent.com/suwodhcbbc/dsh-avatar-chat/main/index.json

索引固定到具体 commit,卡片安装可复现;关闭市场源后已安装的插件仍保留。

方式二:应用内添加

侧边栏 Plugins → Add plugin,粘贴规格并安装,然后重启:

github:suwodhcbbc/dsh-avatar-chat

方式三:CLI

先退出应用,再执行(desktop 对应桌面应用;若使用 dsh web 则改用 web profile):

dsh plugin --profile desktop add github:suwodhcbbc/dsh-avatar-chat

dsh plugin 会把后续参数转给 profile 目录内的 pnpm:安装依赖,且因包声明了 dsh.bundle.patch,profile 的 dsh.profile.bundles 会自动加入包名。

验证

重启后可用 Cordis 检查是否载入(README 示例):

cordis_inspect → host / Config / listConfigs { "entry": "include:ui-avatar-chat" }

应能看到包名及真实目录。

典型用法

  1. 打开 Settings → Avatars。
  2. User avatar / Assistant avatar:开关控制该侧是否在 transcript 显示;图片按钮打开文件选择器;Restore default 恢复内置圆盘。
  3. Picture address:粘贴 https://… 并应用。
  4. Avatar size:拖动或选择 20~64 px,立即生效。

无需额外操作,对话区会在下一帧绘制时读取设置。

偏好保存在浏览器 localStorage,键名为 dsh.avatar-chat.v1,结构示例:

{ "schemaVersion": 1, "size": 28,
  "user":      { "visible": true, "image": "data:image/webp;base64,…" },
  "assistant": { "visible": true, "image": null } }

上传图片以 data URL 形式仅存本地,不会写入 session log;同源下任意脚本可读该键,请勿存放敏感内容。

适用场景与注意

适合谁

  • 希望在 DSH 对话 transcript 中区分用户与助手、并自定义头像的桌面或 Web 用户
  • 接受通过 CSS + data-chat-flow-kind 等属性装饰行,而不改动官方消息渲染器

使用前请知悉

  • 插件以当前 DSH 进程/浏览器同源权限运行;安装前建议阅读 仓库源码 与 MIT 许可证。
  • 社区目录 skillhub.cn 上的条目 为独立站点收录,与 DeepSeek / 幻方无官方从属关系;星标与分类以各页面当时展示为准(GitHub 当前为 1 star,分类「趣味换装」)。

结尾

dsh-avatar-chat 用稳定的数据属性与页面级样式,在不动官方 chat node 的前提下为 DSH 加上可配置的双头像与 Avatars 设置页。需要安装卡片或源码时,可访问 社区目录页 或 GitHub 仓库。

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

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

Xiaoye