dsh-emoji:为 DSH 回复加入可切换的行内表情

前言

在 DeepSeek Harness(DSH)里做对话 Agent,纯文本回复往往缺少情绪层次。常见做法是让模型直接输出 Unicode 表情,但不同平台的视觉风格不统一;或者在提示词里要求插入图片链接,又需要额外约定格式、增加解析成本。

dsh-emoji 走另一条路:模型仍按既有习惯输出 42 个允许的 Unicode 表情(对应 40 个稳定语义),Host 端在渲染时把它们替换成当前所选表情包的行内图片。切换 B 站、贴吧、小红书等内置包,或上传自定义素材,都不需要改模型调用逻辑。

下面介绍这个由 hellodigua 维护的 DSH 插件,当前 npm 版本为 0.3.1,GitHub 约 39 stars。

这是什么

dsh-emoji 是面向 DeepSeek Harness Web Profile 的趣味换装类插件,核心职责只有一件事:把 Agent 回复里的规范 Unicode 表情转写为行内图片。

维护者:hellodigua
目录页:SkillHub - dsh-emoji
源码:github.com/hellodigua/dsh-emoji

核心功能

语义协议与转写规则

插件不根据正文猜测情绪,也不会自动补图。转写只作用于:

  • 40 个规范 Unicode 表情及其常见别名(例如 😄🙂
  • 本插件生成的图片

代码、链接、双冒号文本、普通 Markdown 图片和其他 Unicode 表情保持原样。多张插件表情必须由有效正文分隔;相同表情可以在不同位置重复使用。

内置包与用户上传包共用 40 个稳定语义 key,可随时切换,并支持小、正常、偏大、大四档显示尺寸。

内置表情包

README 展示了默认大肥鱼表情,以及切换到贴吧、B 站表情包后的对话效果。同一套语义协议也可用于小红书、抖音、微博等自定义表情包。

表情频率控制

安装并重启 Web Host 后,在「设置 → 插件 → 表情(Whale Emoji)」中调整:

  • 关闭:不使用表情
  • 智能:仅在表情有助于表达时使用,每回合最多 3 张(默认)
  • 高频:每回合在所有回复中加入合适表情,最多 4 张,放在对应当前情绪的句子或短段落后

还可选择表情包、调整尺寸,或填写「附加提示词」控制选择、语气和使用场景。保存后从下一次回复生效,无需重启;频率策略仍依赖模型遵循提示词。

上传自定义表情包

在同一张设置卡片中点击「上传 ZIP」。上传成功后选择新包并保存,下一次模型调用立即使用。

自定义包复用内置的 40 个稳定语义 key;AI 仍输出同一组允许的 Unicode 表情,Host 只替换图片。

ZIP 结构示例:

my-whale.zip
├── pack.json
└── images/
    ├── happy.png
    ├── sad.png
    ├── thinking.png
    ├── celebrate.png
    └── ...其余标准 key

pack.json 格式:

{
  "schemaVersion": 1,
  "keySet": "dsh-emoji-core@1",
  "id": "my-whale",
  "name": "我的鲸鱼表情",
  "version": "1.0.0"
}

40 个文件名 key 为:

happy, sad, confused, watching, angry, speechless, doge, overloaded,
neutral, laughing, crying, sweating, thinking, okay, nodding, sleeping,
hurt, peeking, approve, heart, shy, star-eyes, laugh-cry, touched,
scared, facepalm, eye-roll, sigh, frustrated, playful, snickering,
sarcastic, cool, celebrate, cheer, thanks, sorry, hug, please, applause

每个 key 必须且只能提供一个同名 .pngid 使用小写字母、数字和连字符,version 使用 SemVer。ZIP 上限 20 MiB,解压后上限 80 MiB,单文件上限 2 MiB,图片宽高均不得超过 512 像素。

用户包保存在 $DSH_HOME/emoji-packs/(默认 ~/.dsh/emoji-packs/)。每个 key 的准确含义见仓库内 EMOJI_KEYS.md

安装与启用

使用 DSH CLI 把插件加入 Web Profile,然后重启 Web Host:

dsh plugin --profile web add dsh-emoji

如需体验预发布版本,将包名替换为 dsh-emoji@beta

dsh plugin --profile web add dsh-emoji@beta

注意:普通 npm install dsh-emoji 只会把包加入当前 Node.js 项目,不会启用 DSH 插件。

当前版本面向 npm @deepseek-ai/dsh@0.1.0-rc.7,DSH peers 声明为 ^0.1.0-rc.7

典型用法

安装并重启后,无需改 Agent 代码。模型在回复中输出允许的 Unicode 表情,例如 😊,插件会在 Host 端将其转换为当前表情包的行内图片。

经过上面的步骤,在设置里切换到贴吧或 B 站表情包,历史消息和新回复都会按新包渲染,语义不变、视觉切换。

若要控制表情密度,在设置中选择 智能高频,必要时填写附加提示词,例如限定只在轻松对话中使用。

若要使用自有素材,按 pack.json 和 40 个 key 准备 ZIP,上传后选择并保存即可。

适用场景与注意

适合希望在 DSH 对话里保留社区表情风格、又不想为每套素材单独改提示词或解析逻辑的开发者。

几点限制来自 README,使用前需知晓:

  • 转写范围固定,不会处理规范集以外的 Unicode 表情
  • 频率策略通过设置和提示词引导模型,不保证每轮都按上限出图
  • 自定义包有体积和尺寸限制,格式校验较严格

DSH 生态的理念是「一切皆插件」。SkillHub 等社区目录由第三方维护,与 DeepSeek / 幻方无官方从属关系。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(仓库含 LICENSE 文件)。

本地开发需要 Node.js ^22.19.0 || >=24 和 pnpm 11:

corepack pnpm install
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build

链接

  • 目录页:https://www.skillhub.cn/plugins/hellodigua/dsh-emoji
  • GitHub:https://github.com/hellodigua/dsh-emoji
  • 插件索引:dshfind.com

dsh-emoji 把「模型写 Unicode、Host 换图片」这件事做成了可切换、可上传的标准流程。若你正在 DSH 上打磨对话体验,值得一试。

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

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

小夜