前言¶
DSH (DeepSeek Harness) 采取“一切皆插件”的架构理念,允许在不修改核心代码的情况下扩展功能。dsh-assistant-skin 是一个此类插件,旨在为 Web GUI 提供一套定制化的“助理皮肤”。它通过覆盖设计令牌和注入媒体层,在不改变 DSH 基础版式的前提下,提供黑蓝暗调主题以及会话区内的助理形象展示。
核心功能¶
1. 主题与深色模式
插件覆盖了 134 个设计令牌,强制开启深色档。它通过设置 body[data-ds-dark-theme] 属性,解决了部分组件不读取令牌而导致的颜色反色问题(如交付物卡片显示为白底浅字)。
2. 助理形象与布局
* 背景注入:在会话主区注入助理形象(静图或循环片段)作为背景层。
* 布局避让:通过调整主区右侧内边距,防止正文内容遮挡人物形象。
* 空会话 Hero:在没有任何会话记录时,利用 conversation.hero.brand.mark 席位展示形象。
3. 形象与动作管理
* 自动发现:形象与动作片段通过扫描 assets/looks/ 目录下的文件名自动发现,无需修改代码即可切换。
* 动作调度:
* 常驻动作:如 breathe(呼吸)、breatheSlow、blink,占 98% 的时间,保持安静。
* 触发动作:点击助理或随机触发,用于吸引注意。
安装与启用¶
使用官方插件命令安装,需要将 <user> 替换为实际 GitHub 用户名。
dsh plugin --profile web add github:<user>/dsh-assistant-skin
若需修改源码并即时生效,建议克隆仓库后使用 link: 安装:
git clone https://github.com/<user>/dsh-assistant-skin.git
dsh plugin --profile web add link:./dsh-assistant-skin
安装后需重启 DSH 进程以使配置生效。
配置与文件命名¶
配置文件通常位于 ~/.dsh/profiles/web/cordis.patch.yml。主要配置项如下:
- id: assistant-skin
config:
enabled: true
assistantName: 小汐
assistantTagline: 你的本地 AI 助理
theme: molan # 可选:molan(墨蓝) / ouhe(藕荷) / moyu(墨玉) / qingyu(青玉)
idleAction: breathe # 常驻动作:breathe / breatheSlow / blink
形象文件命名规范:
- 静图(底图):
assets/looks/look-01.jpg - 动作片段:
assets/looks/look-01.breathe.mp4或look-01.hair.mp4
注意:动作片段的首帧与末帧必须一致,以保证循环播放时不跳帧。
能力边界¶
- 不修改 DOM 结构:插件不改变 DSH 组件的底层 HTML 结构与版式,因此无法实现“满屏立立 + 悬浮控件”这类需要 Fork 源码的布局。
- 结构性定位依赖:媒体层挂载依赖计算样式(如
display:grid且有两个以上流宽子元素)。若 DSH 版本更新导致版式变化,定位可能失效,插件会停止挂载并记录日志。
许可与素材¶
- 代码许可:MIT。
- 素材说明:静图与视频片段均为 AI 合成。商业用途需参考仓库内的
NOTICE.md文件。