message 工具的 react
操作添加和移除 emoji 表情回应。行为因渠道而异。
工作方式
- 添加表情回应时需要
emoji。 - 将
emoji设为空字符串(""),可在支持的渠道上移除 Bot 在该消息上的表情回应。 - 设置
remove: true可移除一个特定 emoji(需要非空emoji)。 - 在带有状态表情回应的渠道上,对某个表情回应设置
trackToolCalls: true,可让运行时在同一轮次中复用该已回应的消息,用于后续工具进度表情回应。
渠道行为
Discord and Slack
Discord and Slack
- 空
emoji会移除 Bot 在该消息上的所有表情回应。 remove: true只会移除指定的 emoji。
Google Chat
Google Chat
- 空
emoji(或remove: true)会移除 Bot 自己在该消息上的表情回应;设置emoji时会按它过滤。 remove: true只会移除指定的 emoji。
Nextcloud Talk
Nextcloud Talk
- 仅支持添加表情回应:
emoji是必需的,且必须为非空。 - 表情回应移除尚未接入删除调用;
remove: true会被显式错误拒绝,而不是静默无操作。 - 需要注册了
reaction功能的 Talk Bot(见 Nextcloud Talk 渠道文档)。
Telegram
Telegram
- 空
emoji会移除 Bot 的表情回应。 remove: true也会移除表情回应,但工具验证仍要求非空emoji。
WhatsApp
- 空
emoji会移除 Bot 表情回应。 remove: true会在内部映射为空 emoji(工具调用中仍需要emoji)。- WhatsApp 每条消息只有一个 Bot 表情回应槽;发送新的表情回应会替换它,而不是叠加多个 emoji。
Zalo Personal (zalouser)
Zalo Personal (zalouser)
- 添加和移除都需要非空
emoji。 remove: true会移除该特定 emoji 表情回应。
Feishu/Lark
Feishu/Lark
- 使用与其他渠道相同的
react操作(通过消息表情回应 ID 添加、移除、列出),而不是单独的工具。 - 添加时需要非空
emoji(映射到 Feishuemoji_type,例如SMILE、THUMBSUP、HEART)。 remove: true需要非空emoji,并移除 Bot 自己与该 emoji 类型匹配的表情回应。- 带有
clearAll: true的空emoji会移除 Bot 在该消息上的所有表情回应。
Signal
Signal
- 入站表情回应通知由
channels.signal.reactionNotifications控制:"off"会禁用它们,"own"(默认)会在用户回应 Bot 消息时发出事件,"all"会为所有表情回应发出事件,"allowlist"只会为channels.signal.reactionAllowlist中发送者的表情回应发出事件。
iMessage
iMessage
- 出站表情回应是 iMessage tapback(
love、like、dislike、laugh、emphasize和question);emoji必须映射到其中一种类型才能添加表情回应。 - 没有可识别 tapback 类型的
remove: true会移除所有 tapback 类型;带有可识别类型时,只会移除那一种。
表情回应级别
按渠道配置的reactionLevel 会限制智能体发送自己表情回应的频率。取值:off、ack、minimal 或 extensive。
- Telegram 表情回应通知 -
channels.telegram.reactionLevel(默认minimal) - WhatsApp 表情回应级别 -
channels.whatsapp.reactionLevel(默认minimal) - Signal 表情回应 -
channels.signal.reactionLevel(默认minimal)
相关
- Agent Send - 包含
react的message工具 - 渠道 - 渠道专属配置