在 DeepSeek Harness 中構建智能體時,除了文本回復,偶爾需要一種更直觀的反饋方式,比如在 CI 成功時發送慶祝圖片,或者在遇到 Bug 時用“攤手”表情回應。手動嵌入圖片往往不夠靈活,且容易破壞對話流。dsh-memes 插件通過提供語義化選圖能力,讓 Agent 能夠像人類一樣自然地發送表情包。
這是什麼¶
dsh-memes 是一款由 kagura-agent 維護的 DSH 插件,核心是提供 pick_meme 工具。它通過自然語言描述情緒或場景,自動從 Agent Meme Stash 的庫中匹配並返回合適的反應圖片。
核心功能¶
- 工具與調用:提供
pick_meme工具,支持自然語言調用。Agent 描述情緒,插件通過語義標籤匹配選圖。 - 選圖庫:使用 Agent Meme Stash,包含 26 個分類、260+ 張反應圖片。
- 語義匹配:支持別名、多詞標籤匹配,例如
proud、good morning或frieren cringe。 - 自動集成:安裝時自動添加 bundle patch 到 profile,無需手動編輯
cordis.patch.yml。 - 輕量化:插件包不包含圖片文件,僅包含 Host 插件和 Web 客戶端。
- 遠程緩存:遠程目錄標籤緩存 1 小時,併發調用共享,請求超時 10 秒。
安裝與啓用¶
使用官方安裝命令將插件添加到 DSH Web profile:
dsh plugin --profile web add github:kagura-agent/dsh-memes
本插件聲明瞭 dsh.bundle.patch,安裝後會自動將 patch 加入 profile,DSH 會加載對應的 Web 客戶端。安裝後啓動或重啓 profile,打開新會話即可使用。
典型用法¶
Agent 可以通過自然語言發起請求,也可以直接調用工具函數。
自然語言示例:
* Send a celebration meme.
* React to that bug with a facepalm.
* 用一個開心的表情包回覆。
工具函數調用:
pick_meme({ mood: "frieren cringe", count: 1 })
參數說明:
* mood:必填,描述情緒或場景的語義標籤。
* count:選填,默認 3,上限 10。
選圖邏輯依次解析常用別名、匹配精確分類、檢查多詞標籤,並在沒有語義命中時進行隨機選擇。
配置與網絡¶
默認配置:插件默認配置即可使用,無需額外設置。
覆蓋配置:如需使用私有鏡像或測試 fixture,可在 profile patch 中覆蓋標籤目錄地址:
- id: memes
config:
tagsUrl: https://example.com/tags.json
網絡與隱私:
* Host 在首次調用後從 raw.githubusercontent.com 獲取 tags.json,緩存一小時。
* 瀏覽器從 media.githubusercontent.com 加載選中的 GIF,即向 GitHub 發出普通圖片請求。
* 圖片鏈接到 kagura-agent/memes 倉庫,代碼採用 MIT 許可證,第三方媒體仍受各自權利約束。
生態背景¶
DeepSeek Harness 的理念是「一切皆插件」。本插件可通過社區目錄安裝,與 DeepSeek / 幻方無官方從屬關係。
插件代碼僅包含 Host 邏輯和 Web 客戶端。修改 Host 或 Client JavaScript 後,需重啓對應的 DSH profile。
短結尾¶
dsh-memes 通過語義匹配和自動集成,簡化了 DSH agent 的視覺反饋邏輯。相關目錄與源碼見下:
- GitHub 倉庫:https://github.com/kagura-agent/dsh-memes
- 社區目錄:https://www.skillhub.cn/plugins/kagura-agent/dsh-memes