前言¶
DeepSeek Harness(dsh)把模型、工具、會話、沙箱和界面都做成可替換的插件。寫代碼、跑測試、改評審意見,對話區裏大多是純文本:智能體回一句「測試通過了」,用戶再回一句「你看看」。語氣對得上,場面卻像在工單系統裏聊天。
dsh-stickers 把表情貼紙接進 WebUI。用戶點輸入框旁的 🐋 選擇器,或者敲 /sticker;智能體在普通對話裏按語境調用 send_sticker。同一份 catalog 同時服務這三條入口,卡片會寫進持久會話歷史。本文按插件目錄頁、GitHub 倉庫 README、package.json 和源碼交叉覈對後整理:它是什麼、裝在哪、怎麼發、哪些能力現在沒有。
DeepSeek Harness 當前仍是開發者預覽版,官方倉庫寫明會有不兼容變更。本文提到的社區插件目錄 deepseek-harness-plugin.com 是獨立站點,用來發現和複製安裝命令,與 DeepSeek / 幻方沒有官方從屬關係。官方推薦的發現方式仍是 GitHub 的 dsh-plugin 話題。
這是什麼¶
dsh-stickers 是一款界面增強插件,由 william-jin-cmu 維護,npm 包名是 @dsh-external/dsh-stickers,當前 package.json 版本爲 0.1.0,許可證爲 BSD-3-Clause。倉庫創建於 2026 年 8 月 8 日;截至 2026 年 8 月 17 日查閱,GitHub 顯示 20 星,目錄頁仍顯示 13 星,以倉庫即時數據爲準。
它解決的問題很具體:讓 WebUI 裏的用戶和智能體都能發表情,而且表情要留在會話記錄裏,而不是彈一層馬上消失的 overlay。README 把定位寫成:純 DSH 外部插件,不修改 DSH core。package.json 裏 dsh.client.platform 爲 web,和「只做完整 WebUI 支持」的說明一致。
掛載方式也寫在倉庫裏。Node 側用 cordis.patch.yml 插入 id 爲 dsh-stickers 的插件,註冊:
send_stickerAgent tool/sticker用戶命令- 一段指導智能體何時發表情的 system prompt
/api/dsh-stickers/*的 PNG 路由(僅在webServer存在時啓用)
Browser 側由客戶端清單自動發現,註冊三個官方 slot:conversation.input.right(選擇器)、conversation.chat.commandview/sticker(用戶卡片)、conversation.chat.toolview/send_sticker(Agent 卡片)。
核心功能¶
同一份 catalog,三條入口¶
表情定義集中在 src/shared/catalog.ts。用戶選擇器、/sticker 命令和 Agent 的 send_sticker 讀同一份列表。新增一張圖時,同時改 catalog 即可,不必在三處各寫一遍。
用戶側有兩種發法:
- 在 WebUI 輸入框右側點 🐋,從公開表情裏點選。選擇器頂部可以切換藍鯨娘 / 黑鯨娘,默認藍鯨娘。
- 直接輸入
/sticker <id>,黑鯨娘版本再加一個black參數。
智能體側不是等用戶說「發表情」。插件把 send_sticker 註冊成 tool,並在 system prompt 裏寫明:每回合最多一張,只在能補語氣時用,不能拿表情代替實質回答。參數是 { id, variant? },variant 缺省爲 blue,用戶切到黑鯨娘後可傳 'black'。
PNG 不走外鏈。插件自己提供 /api/dsh-stickers/*,用戶卡片和 Agent 卡片都會進入持久會話歷史。
14 張公開表情,4 張偏工作流¶
下面 14 張會出現在 🐋 選擇器裏,人類可以用 /sticker 發送,Agent 也可以按同一個 ID 調用。文案以倉庫 README 爲準。
| ID | 文案 |
|---|---|
daily-chat |
適合日常對話,即時響應 |
human-questions |
人類的怪問題怎麼那麼多… |
use-ai-for-this |
你拿 AI 搞這個? |
fish-philosophy |
生魚憂患,死魚安樂 |
enough |
這就夠了 |
server-busy |
服務器繁忙,請稍後再試 |
thinking-stopped |
思考已停止 |
great-question |
哇,這個問題問的真妙! |
deep-thought |
已深度思考 |
no-thanks |
No thanks I use DeepSeek |
tests-passed |
測試通過! |
root-cause |
找到原因了 |
running-tests |
正在跑測試 |
fixed-review |
改好了,你看看 |
後四張被 README 標成工作流反應:測試通過、定位根因、正在跑測試、改完請驗收。日常閒聊和編碼回合都能對上號。
10 張只有 Agent 能發的彩蛋¶
另外 10 張 visibility 爲 agent。它們只出現在 send_sticker 的 tool schema 裏,選擇器看不到,/sticker 也會拒絕發送。源碼裏用戶路徑走 publicStickerById(),Agent 路徑才允許隱藏 ID。
| ID | 文案 |
|---|---|
self-destruct |
最近自己搓自己時,自殺頻率有點高 |
restart-myself |
我重啓一下自己 |
hot-update |
熱更新成功,進程沒了 |
restore-session |
正在恢復會話…未分組裏見 |
browser-left |
會話太長,瀏覽器先走一步 |
not-stuck |
我不是卡,我在深度思考 |
memory-alive |
內存正在努力活着 |
subagents-down |
已召喚 Subagent,已全員中斷 |
plugins |
插件裝得很好,下次別裝了 |
session-locked |
Session 沒壞,只是打不開了 |
README 寫明:一部分圖沿用 DeepSeek Harness 官方貼紙;另一部分創意來自「【官方】DSH 內測羣」裏羣友反饋的真實使用問題,例如熱更新後進程退出、Session 打不開、長會話裏瀏覽器掉隊、Subagent 集體中斷。黑鯨娘全套 24 張圖由 少女阿原(@ayuanwong) 繪製,雙角色切換的交互也來自她的提案。
當前不支持 TUI¶
倉庫專門解釋了爲什麼不做終端界面。turtle-ui 現有的第三方擴展面只有臨時的 tui.openOverlay(),沒有把插件組件插入持久 transcript 的接口。overlay 關掉就沒了,滾動或重開 session 也無法恢復,不符合「聊天曆史中的表情消息」這一語義。
本版本因此只發布完整的 WebUI 支持,不用瞬時 overlay 冒充 TUI。README 的預期是:等 turtle-ui 提供通用、可回放的 transcript renderer API 後,再在不加入表情專用 core 代碼的前提下補 TUI。
安裝與啓用¶
目錄頁給出的安裝命令如下,在已經能運行的 DeepSeek Harness 終端裏執行:
dsh plugin add github:william-jin-cmu/dsh-stickers
插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。目錄頁建議安裝前檢查源碼和許可證;需要可復現安裝時,把 commit 哈希釘死。2026 年 8 月 17 日查閱時,main 最新提交是 1703f09915db1058b6031b31e52fd404560e0a78(2026-08-13,說明爲適配 dsh 0812 final beta,並把 PNG 路由從已更名的 httpServer 遷到 webServer):
dsh plugin add github:william-jin-cmu/dsh-stickers#1703f09915db1058b6031b31e52fd404560e0a78
目錄站點的通用步驟是:先有 CLI(例如 npx @deepseek-ai/dsh web),再 dsh plugin add ...,最後用 dsh plugins list 確認已加載。這個插件的客戶端聲明瞭 platform: "web",本地從源碼安裝時 README 也要求掛到 web profile:
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
export DSH_HOME=/absolute/path/to/an/isolated-dsh-home
dsh plugin --profile web add /absolute/path/to/dsh-stickers
dsh web
倉庫要求 Node 22,以及一份可運行的 DSH checkout。package.json 的 engines 寫的是 ^22.19.0 || >=24.0.0。Harness 仍在快速改接口,本倉庫 8 月 13 日那次提交就是一次對 core 重命名的適配;裝完後如果選擇器在、圖片 404,優先覈對當前 dsh 是否仍提供 webServer,以及 PNG 路由有沒有註冊上。
典型用法¶
下面幾條都能從 README 和 src/index.ts 直接復現,不依賴額外配置項。
1. 用選擇器發一張公開表情¶
打開 dsh web 進入網頁對話,點輸入框右側的 🐋。彈出層標題是「DSH 表情」,頂部可在「藍鯨娘」「黑鯨娘」之間切換。點 tests-passed,選擇器會把草稿寫成 /sticker tests-passed(黑鯨娘則是 /sticker tests-passed black)並提交。會話裏會出現一張用戶表情卡片,圖片地址形如 /api/dsh-stickers/21-tests-passed.png。
2. 用斜槓命令指定 ID¶
不想點選時,直接輸入:
/sticker root-cause
/sticker fixed-review black
命令 hint 是公開 ID 列表加可選的 [black]。傳了選擇器裏沒有的彩蛋 ID,會返回「表情不存在或不可由用戶發送」。角色參數只能是 blue 或 black,其他值會報「未知的表情角色」。
3. 讓智能體按語境回一張¶
Agent 調用形式在 README 裏寫明:
send_sticker({ id: "running-tests" })
send_sticker({ id: "hot-update", variant: "black" })
running-tests 雙方都能發;hot-update 只在 Agent schema 裏。插件注入的 guidance 要求:每回合最多一張,只補語氣,不代替回答。工具結果會渲染成 Agent 表情卡片,同樣走 /api/dsh-stickers/*,並進入會話歷史。
適用場景與注意事項¶
適合已經在用 DeepSeek Harness 網頁界面、希望對話區多一點反應、少一點工單感的人。編碼場景裏,測試通過、找到原因、請驗收這幾張公開表情可以直接當狀態標記;內測羣裏反覆出現的熱更新、Session、Subagent 問題,則留給 Agent 的彩蛋。
使用前需要接受這幾條邊界:
- 只覆蓋 WebUI。 TUI 當前沒有持久 transcript 插件接口,本版本故意不做。
- 表情圖由本機 dsh 進程提供。 路由掛在
webServer上;沒有 Web 服務時 PNG 不會註冊。 - 插件以當前 dsh 進程權限運行。 安裝可能執行構建腳本。裝之前看倉庫、許可證和近期提交,只裝信任的來源;要可復現就固定 commit。
- 許可證是 BSD-3-Clause,源碼公開,可以免費安裝使用。素材來源混有官方貼紙和社區繪製的黑鯨娘變體,再分發時以倉庫許可證和原作者說明爲準。
- Harness 是開發者預覽版。 核心插件和 API 仍會變。本倉庫已經爲
webServer、@deepseek-ai/cordis等更名做過一次遷移,後續不排除再適配。
小結¶
dsh-stickers 沒有改 DSH core,而是用官方 slot、斜槓命令和 Agent tool,把同一份表情 catalog 接到網頁對話裏。用戶點 🐋 或敲 /sticker,智能體在合適的時候回一張;14 張公開、10 張彩蛋,藍鯨娘和黑鯨娘各一套,卡片留在會話歷史中。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-stickers/
GitHub:https://github.com/william-jin-cmu/dsh-stickers