前言¶
在 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 必须且只能提供一个同名 .png。id 使用小写字母、数字和连字符,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 上打磨对话体验,值得一试。