11.20 反应系统

Reactions(反应)工具允许代理对消息添加、删除emoji反应,各平台行为略有不同。

概述

反应工具使代理能够通过emoji与用户进行非文本交互,提供快速反馈和状态指示。

基本用法

{
  "tool": "reaction",
  "emoji": "👍"
}

删除反应

# 方法1: 清空emoji
{
  "tool": "reaction",
  "emoji": ""
}

# 方法2: 使用remove参数
{
  "tool": "reaction",
  "emoji": "👍",
  "remove": true
}

平台差异

Discord / Slack

  • 支持所有标准emoji
  • 支持自定义emoji
  • emoji="" 删除机器人的所有反应
  • remove: true 仅删除指定的emoji

Google Chat

  • 支持标准emoji
  • 反应可能有延迟
  • 删除反应功能有限

Telegram

  • 支持Telegram反应集
  • 使用Telegram emoji代码
  • 反应立即显示

WhatsApp

  • 支持基本emoji反应
  • 每条消息仅一个反应
  • 新反应会覆盖旧反应

Signal

  • 支持标准emoji
  • 反应需要确认
  • 删除反应可能需要时间

常见Emoji

Emoji 含义 使用场景
完成 任务成功完成
错误 操作失败
处理中 长时间任务进行中
👀 已查看 确认收到消息
🤔 思考中 正在分析问题
⚠️ 警告 需要注意
💾 保存 数据已保存

使用场景

任务状态指示

# 开始任务
{"tool": "reaction", "emoji": "⏳"}

# 任务完成
{"tool": "reaction", "emoji": "✅"}

# 任务失败
{"tool": "reaction", "emoji": "❌"}

用户反馈

# 确认收到
{"tool": "reaction", "emoji": "👀"}

# 表示赞同
{"tool": "reaction", "emoji": "👍"}

# 表示否定
{"tool": "reaction", "emoji": "👎"}

多阶段任务

# 阶段1: 开始
{"tool": "reaction", "emoji": "1️⃣"}

# 阶段2: 进行中
{"tool": "reaction", "emoji": "2️⃣"}

# 完成
{"tool": "reaction", "emoji": "✅"}

配置

{
  "tools": {
    "reaction": {
      "enabled": true,
      "defaultTimeout": 5000,
      "retryOnFailure": true
    }
  }
}

最佳实践

  • 使用通用的、易理解的emoji
  • 保持反应的一致性
  • 及时移除过时的反应
  • 避免过度使用反应
  • 考虑不同平台的兼容性

错误处理

  • 不支持的emoji: 尝试使用标准emoji
  • 权限不足: 检查机器人权限
  • 消息不存在: 确保消息ID有效
  • 平台限制: 遵守平台的反应规则

高级用法

条件反应

{
  "tool": "reaction",
  "emoji": result === "success" ? "✅" : "❌"
}

批量反应

// 依次添加多个反应
["⏳", "🔄", "✅"].forEach(emoji => {
  {"tool": "reaction", "emoji": emoji}
})
提示
反应是一种轻量级的交互方式,可以在不发送新消息的情况下提供即时反馈,改善用户体验。