5V1A-afk/dsh-sticker-pack ↗★ 0

dsh-sticker-pack

DSH 表情包插件:订阅远端 pack.json 素材源,把它们变成 agent 可用的表情包,agent 在回复正文里内联贴图;贴图概率由插件自己掷骰,出图在 HTTP 与本地路径之间自动择优,微信会话改发静态图文件,熔断等待上限由用户在设置里调(5–30 秒滑杆或任意秒数)。 适合需要让Agent在对话中自动匹配、展示和发送趣味表情包的互动场景。

Package
dsh-sticker-pack
Compatibility
Unverified
Version
0.6.2
Last updated
Oct 14, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:5V1A-afk/dsh-sticker-pack

配置

在 profile 的 cordis.patch.yml 里按 id 覆盖:

- id: dsh-sticker-pack
  config:
    remotes:                                   # 远端 pack.json 源(可多个,最多 16 个)
      - https://gcore.jsdelivr.net/gh/you/stickers@main/pack.json   # 域见下
      - url: https://example.com/pack/pack.json
        name: 朋友的表情包
    remoteTtlMs: 600000                        # 清单复用窗口,0 = 每次用到都刷新
    remoteTimeoutMs: 6000                      # 单个源超时(默认 6 秒)
    linkStyle: auto                            # auto(默认)| http | file,见下
    gifBias: 2                                 # 动图在同分候选里的权重倍数,1 = 均匀
    largeFileBytes: 2097152                    # 超过这个大小就在工具输出里提醒“偏大”
    recentWindow: 3                            # 最近用过的几张排到后面,0 = 纯随机
    scanTtlMs: 1000                            # 目录扫描复用窗口,0 = 每次重扫
    probability: 0.6                           # 贴图概率,设置页可覆盖(0.6 = 60%)
    deadlineMs: 15000                          # 等待上限(v0.6.2),设置页可覆盖;正数即可,无上限
    prompt: true                               # false = 不注册那段贴图策略
    httpBaseUrl: http://127.0.0.1:19387        # 可选,见下

remotes 也可以直接写进 ~/.dsh/sticker-pack/settings.json——设置页保存时会保留它不认识的 键,所以手编一个文件比改 profile 的 patch 层省事(同样,remotes 只在文件里没有这个键时 才读配置)。

probability 写在配置里就是「出厂值」:一旦设置页写过一次 settings.json,文件里的值 优先于配置,配置里的值只在文件里没有这个键时生效(删掉 settings.json 即回到配置值)。 deadlineMs(等待上限,v0.6.2)走同一条规则,所以「配置里写 20000、设置里改成 8 秒」 的结果是 8 秒;想让配置重新说了算,删掉 settings.json 里那一行即可。

linkStyle:两种出图形式,各有取舍

本地路径HTTP URL
形态![sticker](https://raw.githubusercontent.com/5V1A-afk/dsh-sticker-pack/b20fb75831f0bffa19cc40daa3cdbefbd75c641a/\...\x.jpg)![sticker](http://127.0.0.1:19387/sticker-pack/i/x)
渲染时机消息落定后才出现边写边出现
依赖端口不依赖端口变了就失效
依赖插件路由不依赖依赖 /sticker-pack/i/ 注册成功

linkStyle 选哪一种:

  • auto(默认)—— 优先 HTTP:先看 httpBaseUrl 有没有配,没配就用插件自己问到的 监听端口。两者都拿不到就退回本地路径。
  • http —— 同上;没有端口时也不会硬凑,仍然退回本地路径(没有第三种形式)。
  • file —— 永远只用本地路径,即使端口已知。

以前这件事要你在 patch 里手写 httpBaseUrl(v0.3.0 起就有这个配置项),现在默认就会自己 找端口;httpBaseUrl 仍然优先,可以覆盖自动探测的结果。

原因(都已对着客户端源码确认):本地路径图片被显式排除在流式渲染之外 (const file = streaming ? void 0 : parseFileLink(destination)),而正文里的绝对 http(s) URL 会直接进 ``。另外根相对路径不行:正文里写 ![](https://github.com/5V1A-afk/dsh-sticker-pack/blob/b20fb75831f0bffa19cc40daa3cdbefbd75c641a/sticker-pack/i/x) 不会被当成请求打到本插件的路由,它会被当作本地文件路径 改写成 api/file?path=%2Fsticker-pack%2Fi%2Fx。