dsh-stickersDeepSeek Harness plugin
DSH WebUI sticker plugin for bidirectional user and agent reactions
- Stars
- 24
- Forks
- 0
- License
- BSD-3-Clause
- Last commit
- Aug 13, 2026
Overview
DSH WebUI sticker plugin for bidirectional user and agent reactions
Original README
Cached from the project repository on Sep 3, 2026. This is source content, separate from the Agents.md review above.
DSH Stickers
不会发表情包,可能是 Agent 缺少活人感的最大原因。
@dsh-external/dsh-stickers 是一个纯 DSH 外部插件:同一份 catalog 同时服务 WebUI 用户的表情选择器、/sticker 命令和 Agent 的 send_sticker tool,不修改 DSH core。

能做什么
- 用户在 WebUI 点击 🐋 选择器,或输入
/sticker <id> [black]。 - 24 张表情全部提供蓝鲸娘 / 黑鲸娘两套角色:选择器顶部可切换角色(默认蓝鲸娘),切换后发送同一张表情的黑鲸版本。
- Agent 在普通对话中按语境调用
send_sticker({ id, variant? }),不是等用户明确索要表情。 - 14 张 public 表情对双方开放,其中 4 张是工作流反应:
tests-passed、root-cause、running-tests、fixed-review。 - 10 张彩蛋只出现在 Agent tool schema 中;用户命令和选择器都无法访问,例如
restart-myself、hot-update、subagents-down。 - Web 图片由插件自己的
/api/dsh-stickers/*route 提供,用户和 Agent 的卡片都进入持久会话历史。
人类和 Agent 都能发
这 14 张会出现在 WebUI 的 🐋 选择器中;人类也可以输入 /sticker <id>,Agent 则可按语境调用同一个 ID。
| 表情 | 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 | 改好了,你看看 |
只有 Agent 能发的彩蛋
下面 10 张只存在于 Agent 的 send_sticker schema 中,不出现在人类选择器里,/sticker 也会拒绝发送。
| 表情 | ID | 文案 |
|---|---|---|
self-destruct | 最近自己搓自己时,自杀频率有点高 | |
restart-myself | 我重启一下自己 | |
hot-update | 热更新成功,进程没了 | |
restore-session | 正在恢复会话…未分组里见 | |
browser-left | 会话太长,浏览器先走一步 | |
not-stuck | 我不是卡,我在深度思考 | |
memory-alive | 内存正在努力活着 | |
subagents-down | 已召唤 Subagent,已全员中断 | |
plugins | 插件装得很好,下次别装了 | |
session-locked | Session 没坏,只是打不开了 |
为什么当前不支持 TUI
turtle-ui 现有的第三方扩展面只提供临时 tui.openOverlay(),没有把插件组件插入持久 transcript 的接口。overlay 关闭后会消失,滚动或重开 session 也无法恢复,因此它不符合“聊天历史中的表情消息”这一语义。
本版本刻意只发布完整的 WebUI 支持,不用瞬时 overlay 冒充 TUI 支持。未来 turtle-ui 提供通用、可回放的 transcript renderer API 后,插件可以在不加入任何表情专用 core 代码的前提下补回 TUI。
本地安装
需要 Node 22 和一个可运行的 DSH checkout。
bashpnpm 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 侧通过 cordis.patch.yml 挂载主插件,注册:
send_stickerAgent tool/sticker <public-id>用户命令- Agent 使用表情的 system prompt guidance
- Web PNG route(仅在
webServer存在时启用)
Browser 侧由 package.json#dshClient 自动发现,注册三个官方 slot:
conversation.input.right:用户选择器conversation.chat.commandview/sticker:用户表情卡片conversation.chat.toolview/send_sticker:Agent 表情卡片
表情包来源
这套表情包一部分沿用 DeepSeek Harness 官方贴纸;另一部分创意和文案来自「【官方】DSH 内测群」里群友反馈的真实 DSH 使用问题,例如热更新后进程退出、Session 无法打开、浏览器在长会话中掉队,以及 Subagent 集体中断等。群聊中的相关问题与社区反馈由私有仓库 dsh-external/group-chat-diary 归档;为保护群成员信息,该仓库仅限获得授权的 dsh-external 组织成员查看。
assets/stickers/ 存放用于 WebUI 的透明 PNG,assets/stickers/black/ 是黑鲸娘角色的同名变体。新增表情时同时更新 src/shared/catalog.ts 即可,WebUI 用户选择器、用户命令和 Agent tool 会共享同一条定义。
贡献者
- 黑鲸娘全套 24 张表情图由 少女阿原(@ayuanwong)绘制并提供,双角色切换的交互设计也来自她的提案。