用 dsh-emoji 給 DeepSeek Harness 的回覆加上可切換行內表情

前言

DeepSeek Harness(dsh)是 DeepSeek AI 開源的智能體框架,目前仍處於開發者預覽階段。它的核心理念是「一切皆插件」:工具、界面、主題、工作流都可以按層裝進當前 profile。社區裏已經出現了不少獨立目錄來收錄這些插件,其中 DeepSeek Harness 插件庫 是一個社區站點,與 DeepSeek / 幻方沒有官方從屬關係。

日常用 Web UI 看智能體回覆時,正文往往是純 Markdown。模型偶爾會打出 Unicode emoji,但那只是字符,換不了畫風,也沒法統一成一套社區表情。dsh-emoji 要做的事情更具體:讓模型按固定語義標記輸出表情,再由 Host 端轉成當前表情包裏的行內圖片。

下面按倉庫 README、package.json、更新日誌和插件目錄頁覈對後的信息,說明它是什麼、怎麼裝、怎麼用。

dsh-emoji 是什麼

dsh-emoji 是一款面向 DeepSeek Harness 的趣味插件,由 hellodigua 維護,代碼採用 MIT 許可證。GitHub 倉庫爲 hellodigua/dsh-emoji,主要語言是 TypeScript,倉庫 topic 含 dsh-plugin。截至 2026-08-17,GitHub 顯示 23 顆星;社區目錄頁同期記錄爲 17 顆星,星標以倉庫頁面爲準。

一句話定位:爲 DSH 的回覆加入可切換、可自定義的行內表情。插件目錄頁的簡介是「讓 AI 回覆加入自定義表情,支持 Bilibili、小紅書、貼吧、知乎等多平臺表情包,或自定義表情」。對照倉庫文檔後可以更準確地說:運行時目前內置的是 40 張藍鯨(大肥魚)表情;貼吧、B 站等畫風通過同一套語義協議切換或上傳 ZIP 實現,並不等於這些平臺的表情都打進了發佈包。

當前 npm 包版本是 0.2.2-beta.1(2026-08-15)。更新日誌寫明:0.2.1 是推薦安裝版本,0.2.2-beta.1 的運行時行爲與 0.2.1 / 0.1.0 保持一致。兼容性聲明面向 @deepseek-ai/dsh@0.1.0-rc.6,peer 範圍爲 ^0.1.0-rc.6package.json 裏客戶端平臺標爲 web,需要加到 Web Profile 後重啓 Web Host。

工作方式與核心能力

表情不是模型另外畫一張圖,也不走一次新的模型調用。內置協議要求模型在需要情緒或裝飾時輸出 ::happy:: 這類語義標記;插件在 Host 端把標記替換成當前表情包對應的行內圖片。

內置包和用戶上傳包共用 40 個穩定語義 key,契約標識爲 dsh-emoji-core@1。key 是機器協議,不翻譯、不改名。當前 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。相近語義在契約裏有邊界,例如 happy 是溫和愉快,明顯大笑留給 laughing,笑到流淚才用 laugh-cry。完整含義和繪製建議見倉庫的 EMOJI_KEYS.md

倉庫 README 還寫了幾條轉寫邊界,實際使用時值得記住:

  • 只處理插件 marker 和插件圖片,普通正文裏的 Unicode emoji、代碼、鏈接、未知標記以及其他 Markdown 圖片不會被改寫。
  • 同一條回覆裏可以出現多張插件表情,但必須由有效正文隔開;同一個 key 允許在不同位置重複使用。
  • 顯示尺寸有四檔:小、正常、偏大、大。
  • 默認內置素材是藍鯨表情。README 展示了切換貼吧表情包、上傳 B 站表情包後的對話效果,並說明同一協議也可用於小紅書、抖音、微博等自定義包。
  • 倉庫 ASSETS.md 寫明:assets/emoji/bilibili/ 只作開發參考,不進入當前運行時 catalog,也不在 package.json#files 的發佈白名單裏。因此不能把「支持 B 站表情」理解成安裝後自帶完整 B 站包。

代碼是 MIT,素材不一定是。ASSETS.md 明確:代碼許可證不聲明鯨魚形象或二創表情素材的所有權;40 張運行時圖可以隨 npm 包公開分發,但不納入 MIT,也不授予脫離本項目單獨複製、改編或再分發素材的權利。

安裝與啓用

社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行即可:

dsh plugin add github:hellodigua/dsh-emoji

如需可復現安裝,目錄頁建議固定 commit 哈希:

dsh plugin add github:hellodigua/dsh-emoji#commit

#commit 換成倉庫裏實際的提交哈希,不要留這個佔位符。

倉庫 README 給出的是 npm 包名、並指定 Web Profile 的寫法,裝完後需要重啓 Web Host:

dsh plugin --profile web add dsh-emoji

更新日誌裏推薦的穩定版本是 dsh-emoji@0.2.1。若要體驗預發佈版本,把包名換成 dsh-emoji@beta。不要只用 npm install dsh-emoji:那隻會把包裝進當前 Node.js 項目,不會啓用 DSH 插件。

目錄頁有一條安全提示,安裝前應讀完:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。GitHub 安裝還可能在本地跑構建腳本,只安裝自己審查過的來源。

調整表情頻率與顯示

安裝並重啓 Web Host 之後,打開「設置 → 插件 → 表情(Whale Emoji)」:

  • 關閉:不使用表情。
  • 智能:僅在表情確實有助於表達時自然使用,每回合最多 3 張,這是默認選項。
  • 高頻:更積極地考慮使用,但不強制每次出現,也不追求多張;每回合最多 4 張。

同一張設置卡片裏還可以選擇表情包、調整顯示尺寸,或填寫「附加提示詞」來約束選擇、語氣和使用場景。保存後從下一次回覆生效,不必再重啓 Host。是否真正插入表情仍由模型決定,插件不會在每句話後面強行貼圖。

上傳自己的表情包

自定義包複用同一套 40 個 key,因此模型仍然輸出 ::happy:: 等 marker,只替換最終圖片,不需要爲每套素材重新教模型認圖。

在上述設置卡片中點擊「上傳 ZIP」。上傳成功後選中新包並保存,下一次模型調用就會用它。ZIP 可以直接包含下列文件,也可以再包一層同名目錄:

my-whale.zip
├── pack.json
└── images/
    ├── happy.png
    ├── sad.png
    ├── thinking.png
    ├── celebrate.png
    └── ...其餘標準 key

pack.json 格式如下,當前上傳包必須聲明 keySetdsh-emoji-core@1

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

schemaVersion 表示 ZIP 技術格式,keySet 表示圖片實現的語義集合。每個 key 必須且只能提供一個同名 .pngid 使用小寫字母、數字和連字符,version 使用 SemVer。同一個 id@version 的內容不可覆蓋,更新素材時必須提升版本。

倉庫給出的硬限制是:ZIP 上限 20 MiB,解壓後上限 80 MiB,單文件上限 2 MiB,圖片寬高均不得超過 512 像素。路徑逃逸、額外文件、缺失 key、未知 keySet、僞造格式和同版本衝突都會被拒絕。

用戶包保存在 $DSH_HOME/emoji-packs/(默認 ~/.dsh/emoji-packs/),設置項只保存當前 id@version。從選擇列表裏「移除」不會物理刪除素材字節,這樣歷史消息裏的版本化 URL 仍能回放;重新上傳完全相同的 ZIP 可以恢復該版本。

自己做包時,素材權利也要單獨處理:契約要求投稿者擁有原創權或可再分發授權。不要把內置藍鯨圖拆出來當自己的包發佈。

適用場景與注意事項

比較適合這些情況:

  • 已經在用 DSH Web UI,希望回覆裏出現統一畫風的行內表情,而不是零散的 Unicode 符號。
  • 想把對話語氣從「文檔腔」換成社區表情風格,例如貼吧、B 站或自制角色,但不想改模型本身。
  • 需要給團隊或個人做一個固定 40 語義的表情包,並在多套素材之間切換。

需要注意的限制同樣明確:

  • 當前版本面向 Web Profile 和 @deepseek-ai/dsh@0.1.0-rc.6。DSH 仍在開發者預覽,後續可能出現破壞兼容性的變更。
  • 本地開發環境要求 Node.js ^22.19.0 || >=24 與 pnpm 11;這是開發該插件時的要求,不等於終端用戶必須從源碼編譯。
  • 表情是否出現由模型決定。設成「智能」或「高頻」只改變提示策略和每回合上限,不能保證每條回覆都帶圖。
  • 插件以當前 dsh 進程權限運行。安裝前應閱讀源碼、許可證和 ASSETS.md 裏的素材說明;生產環境建議固定 commit。
  • 社區插件目錄不是 DeepSeek 官方應用商店,收錄不代表官方背書。

小結

dsh-emoji 把「AI 想表達某種情緒」收成 40 個穩定 key,再在 Host 端渲染成當前表情包的行內圖。默認是藍鯨表情,頻率和尺寸可在設置裏改,也可以按契約上傳自己的 ZIP。它不增加額外模型調用,也不改寫普通正文裏的 emoji 和代碼。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-emoji/

GitHub:https://github.com/hellodigua/dsh-emoji

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

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

小夜