dsh-sticker-vault:羣聊表情包本地採集與按語境檢索

前言

在 QQ 羣或類似通道里跑 DSH 智能體時,羣友常發圖、表情包。若只靠模型「記住」某張梗圖,既不穩定,也談不上按「誰發的、什麼語境用過」去複用。常見做法是手工整理文件夾或寫死路徑,羣一換語境就難對上。

dsh-sticker-vault 是 DeepSeek Harness 下的記憶類插件:羣消息裏的附件圖先落到本地,同一張圖被反覆發送時按 sha256 計數,達到閾值後自動入庫,並記錄作者、語境與標籤;對噴、接梗時通過工具按語境把圖撈出來,以 Markdown 圖片行形式返回。圖片與元數據全部在 ~/.dsh/sticker-vault/,不聯網、不調模型。

維護者爲 yingchaoyi,源碼與說明見 GitHub 倉庫,社區目錄頁爲 SkillHub 插件頁。當前 package 版本爲 0.1.14,許可證 MIT。

這是什麼

一句話:羣友發的圖先落盤去重計數,重複到 N 次自動進庫,記作者/語境/標籤;需要接梗時用 sticker_pick 按語境搜索並返回可發送的本地圖片 Markdown。

數據流可以概括爲:

羣友發圖 ──► 落盤(按 sha256 去重)──► 計數
                                    ├─ 到 5 次 ──► 入庫(帶作者 + 語境)
                                    └─ 沒到   ──► 候選區裏躺着
入庫後 ──► 每張最多記 6 條語境 ──► sticker_pick 按語境/關鍵詞/人搜索
                                    └─► 命中就發 ![圖](本地路徑)

(默認「到 5 次」等數值可在 Web 面板頂部改。)

核心功能

採集與入庫

  • 重複就計數:同一張圖(sha256 相同)被誰發各算各的,A 發 3 次、B 發 2 次互不干擾。
  • 每人只留高頻的幾張:默認每人最多 3 張,新圖擠進來時擠掉該用戶計數最低且未上鎖的那張。
  • 總容量 50 張:超出後從全庫挑計數最低、未上鎖的淘汰。
  • 計數週期:默認每 5 天清一次——候選歸零,已入庫的計數重置爲 2(從此數重新攢,已入庫圖相對新候選有起跑優勢)。
  • 上鎖:鎖住的圖不會被淘汰擠掉,也不能刪,需先解鎖。

Web 面板「表情庫」

裝完並刷新 DSH Web 後,設置裏會出現 表情庫 面板:

  • 庫:每張圖及描述、標籤、發送者、使用次數;描述/標籤可改,回車保存;可上鎖、刪除、展開看語境。
  • 候選:未達入庫次數的圖,可「現在就收」或「扔了」。
  • 上傳:自行加圖,填暱稱、描述、標籤。
  • 搜索:按描述、標籤、暱稱、語境過濾。

面板約每 4 秒刷新;採集爲實時。達標次數、每人上限、總容量、計數週期(天)、清計數後庫內起始次數等參數在面板頂部配置。

工具(給智能體調用)

工具 作用
sticker_pick 按語境 / 關鍵詞 / 羣友找圖,返回 Markdown 圖片行 + 作者 + 語境
sticker_note 改描述/標籤、上鎖、刪除,或把本地圖片手動加進庫
sticker_stats 查看庫裏/候選數量、上限、清計數週期等佔用信息

sticker_pick 找到合適結果時,把返回的 ![...](...) 原樣放進回覆;沒有合適圖時會提示不要硬發。

發送日誌

面板中的「發送日誌」用於覈對概率擲骰與是否真正發出:

  • 每次擲骰記一條:概率、隨機值(0~1)、是否命中、羣號。
  • 橋插件發出圖後會標記「已發出」;停留在「命中·等確認」表示擲中但出口未發出。
  • 頂部彙總當日擲骰次數、命中次數、確認發出次數、命中率;支持搜索與清空日誌(清空時一併清除約 5 分鐘內複用擲骰結果的緩存)。
  • 默認只保留最近 logMax(300)條。

安裝與啓用

插件頁填寫 dsh-sticker-vault,或命令行安裝(須與 README 一致):

# 從 GitHub 裝
dsh plugin --profile web add github:yingchaoyi/dsh-sticker-vault

# 本地開發(軟鏈)
dsh plugin --profile web add link:/path/to/dsh-sticker-vault

裝完後刷新頁面,在設置中打開 表情庫 即可管理參數與庫存。運行環境要求 Node.js >= 22(見 package.json engines)。

典型用法

智能體在需要接梗、對噴或複用羣語境時,調用 sticker_pick,傳入與當前對話相關的語境或關鍵詞;若返回 Markdown 圖片行,將其原樣寫入回覆。需要維護庫存時調用 sticker_note;需要看容量與週期時調用 sticker_stats。

數據目錄結構如下,便於備份或排查:

~/.dsh/sticker-vault/
├── store.json        # 庫 + 候選 + 參數
├── images/           # 入庫的圖
├── inbox/            # 候選的圖(原始落盤)
└── sticker.log       # 調試日誌,256KB 自動截斷

刪除整個目錄即清空重來;也可直接查看或編輯 store.json(自行承擔風險)。

適用場景與注意

適合:在 DSH + QQ 橋等場景裏,希望智能體本地積累羣梗圖、按語境檢索復發,且不希望圖片上傳外網或走模型記憶的用戶。

限制(README 已說明):

  • 只認 完全相同文件(sha256);壓縮、換格式後再發會被當作新圖。
  • 只抓 帶附件的羣消息(DSH 附件;QQ 橋轉進來的符合),純鏈接圖不抓。
  • 淘汰按計數低者優先,不看社交關係;重要圖請 上鎖。

安全:插件以當前 DSH 進程權限讀寫 ~/.dsh/sticker-vault/ 並處理羣附件。安裝前請閱讀 源碼 與 MIT 許可證,確認符合你的部署策略。DSH 社區插件目錄(如 SkillHub)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-sticker-vault 把「羣友反覆發的圖」變成可檢索的本地表情庫:採集、計數、入庫、語境記錄一條龍,接梗時用 sticker_pick 按語境撈出 ![圖](本地路徑)。詳情與 issue 見 GitHub,安裝入口見 SkillHub 目錄頁。

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

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

小夜