技能
增强功能 官方

表情回应

添加 WhatsApp 表情回应支持。通过智能体接收、发送、存储和搜索表情回应。

功能特性

  • 接收 WhatsApp 表情回应并存储到 SQLite
  • 智能体可通过 react_to_message MCP 工具发送表情回应
  • 查询回应历史——按消息、表情或用户
  • 单向表情状态机,用于消息生命周期信号
  • 群组级授权——智能体只能在自己的聊天中发送回应

前置条件

  • 已安装并运行 NanoClaw
  • 已配置 WhatsApp 频道

安装

/add-reactions

工作原理

/add-reactions 技能赋予 NanoClaw 智能体在 WhatsApp 上接收和发送表情回应的能力。回应存储在 SQLite 中,可按消息、表情或用户进行查询,智能体还获得一个 MCP 工具来以编程方式对消息做出回应。

该技能执行数据库迁移,创建一个带有复合主键和索引的 reactions 表,以支持高效查找。它挂接到 WhatsApp 频道的 messages.reaction 事件来实时捕获传入的回应——每当有人在已注册的聊天中对消息做出回应时,该回应会连同消息键、表情、发送者和时间戳一起被存储。

在发送端,该技能为容器化智能体添加了 react_to_message MCP 工具。智能体可以调用此工具对其所属群组聊天中的任何消息发送表情回应。IPC 层强制执行群组级授权——在一个群组中运行的智能体无法对另一个群组聊天中的消息做出回应。

状态追踪

该技能包含一个 StatusTracker——一个单向表情状态机,利用回应进行消息生命周期信号传递。这使智能体可以将表情回应用作可视化状态指示器。例如,处理中显示思考表情,完成时显示对勾,出错时显示错误表情。状态机确保回应只能向前推进(处理中 → 完成,不可回退),并包含持久化和重试逻辑以保证可靠性。

可查询的内容

当回应数据开始流入数据库后,以下查询功能可供使用:

  • 按消息查询 ——获取特定消息上的所有回应
  • 按表情查询 ——查找收到特定回应的所有消息
  • 按用户查询 ——查看特定用户发送的所有回应
  • 统计数据 ——汇总聊天中的回应计数

这些查询通过数据库模块提供给智能体,因此你可以向智能体提问,例如”这周我用点赞回应了哪些消息”,它就能查到结果。

使用技巧

  • 表情回应非常轻量——不计入 WhatsApp 的消息速率限制。
  • 智能体只能在自己所属群组的聊天中发送回应。跨群组的回应会在 IPC 层被拦截,并记录为未授权尝试。
  • 如果回应未出现在数据库中,请检查该聊天是否已注册以及 NanoClaw 是否已连接到 WhatsApp。
  • 数据库迁移是幂等的——如果 reactions 表已存在,重新执行迁移不会产生任何影响。