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 上打磨對話體驗,值得一試。

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

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

小夜