用户与 agent 双向表情贴纸互动。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:william-jin-cmu/dsh-stickers
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
不会发表情包,可能是 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。
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 侧通过 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)绘制并提供,双角色切换的交互设计也来自她的提案。
链接
同类插件
PC2005-cloud/dsh-pet#dsh-pet★ 800
DSH Web UI 桌面宠物:25 个透明动画、屏幕漫游、点击反应与拖拽,附可复现的素材生成链。
Nagi-ovo/dsh-ads★ 635
2005 年中文站点风格的整活广告插件:侧栏广告/信息流/角落弹窗 + 假关闭叉,素材全虚构。
vlln/whale-girl★ 337
桌面宠物(QQ 宠物形态):右下角悬浮、可拖拽/投喂/玩耍。
a86582751/dsh-nexttavern★ 116
面向 DeepSeek Harness 的角色扮演工作台:人物卡可以导入(SillyTavern/TauriTavern),也可以从零交互式写出一张;长篇 TXT 能改编成可玩的角色卡,精读或粗颗粒度两种读法;主代理按剧情主动查阅世界书,正文在独立的酒馆阅读 TAB 中呈现;同一对话里探索多条世界线(重新生成、改后发送、显式分支);带作用域的文风预设(16 种自带文风)、角色 Agent 集群、独立决策卡,以及角色卡或小说导出;长篇由固定设定前缀、硬切上下文窗口、可追溯导演笔记与关键词/语义/混合检索撑住,嵌入可用在线服务,也可完全本地运行。面向 Harness 0.1.2-alpha.3,安装需按文档应用显式兼容补丁。
yyh-001/dsh-meme★ 112
聊天表情包:纯文本斗图、情绪主动发图、像 QQ/微信 一样发图、AI 自动学图、自定义表情包。
Sutera-Diffusus/dsh-whale-musume★ 88
元气鲸鱼娘桌宠:摸头养成、按工具类型联动的工作状态、494 条台词、30 项成就、成长日记、拖拽惯性、主题适配与无障碍模式。关键词感知与余额关心默认关闭、需手动开启;可选的天气心情只在你填了城市后才会请求 Open-Meteo。无遥测。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。