在 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