dsh-memes:为 DeepSeek Harness 提供自然语言发送表情包的能力

在 DeepSeek Harness 中构建智能体时,除了文本回复,偶尔需要一种更直观的反馈方式,比如在 CI 成功时发送庆祝图片,或者在遇到 Bug 时用“摊手”表情回应。手动嵌入图片往往不够灵活,且容易破坏对话流。dsh-memes 插件通过提供语义化选图能力,让 Agent 能够像人类一样自然地发送表情包。

这是什么

dsh-memes 是一款由 kagura-agent 维护的 DSH 插件,核心是提供 pick_meme 工具。它通过自然语言描述情绪或场景,自动从 Agent Meme Stash 的库中匹配并返回合适的反应图片。

核心功能

  1. 工具与调用:提供 pick_meme 工具,支持自然语言调用。Agent 描述情绪,插件通过语义标签匹配选图。
  2. 选图库:使用 Agent Meme Stash,包含 26 个分类、260+ 张反应图片。
  3. 语义匹配:支持别名、多词标签匹配,例如 proud、good morning 或 frieren cringe。
  4. 自动集成:安装时自动添加 bundle patch 到 profile,无需手动编辑 cordis.patch.yml。
  5. 轻量化:插件包不包含图片文件,仅包含 Host 插件和 Web 客户端。
  6. 远程缓存:远程目录标签缓存 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
羽毛球分组比赛记分
小程序二维码

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

小夜