# 表情回应

> 所有受支持渠道中的表情回应工具语义

- 网址：https://funcoding.ai/agents/openclaw/tools/reactions/
- 来源：OpenClaw 官方文档原文（中文），MIT 许可，同步于 2026-10-11
- 官方原文：https://docs.openclaw.ai/zh-CN/tools/reactions

---
智能体使用 `message` 工具的 `react`
操作添加和移除表情回应。具体行为因渠道而异。

## 工作原理

```json
{
  "action": "react",
  "messageId": "msg-123",
  "emoji": "thumbsup"
}
```

- 添加表情回应时必须提供 `emoji`。
- 在支持此功能的渠道上，将 `emoji` 设置为空字符串（`""`），即可移除 Bot 的表情回应。
- 设置 `remove: true` 可移除一个特定表情（要求
  `emoji` 非空）。
- 在支持状态表情回应的渠道上，对表情回应设置 `trackToolCalls: true` 后，
  运行时可在同一轮次中复用该已添加回应的消息，以显示后续工具进度
  表情回应。

## 渠道行为

<details>
<summary>Discord 和 Slack</summary>

- 将 `emoji` 留空会移除该消息上 Bot 的所有表情回应。
- `remove: true` 仅移除指定的表情。

</details>

<details>
<summary>Nextcloud Talk</summary>

- 仅支持添加表情回应：必须提供非空的 `emoji`。
- 表情回应移除功能尚未接入删除调用；使用 `remove: true` 时会返回明确错误，而不会静默地不执行任何操作。
- 要求注册 Talk Bot 时启用 `reaction` 功能（参阅 [Nextcloud Talk 渠道文档](https://funcoding.ai/agents/openclaw/channels/nextcloud-talk/)）。

</details>

<details>
<summary>Telegram</summary>

- 将 `emoji` 留空会移除 Bot 的表情回应。
- `remove: true` 也会移除表情回应，但工具验证仍要求 `emoji` 非空。

</details>

<details>
<summary>WhatsApp</summary>

- 将 `emoji` 留空会移除 Bot 的表情回应。
- `remove: true` 会在内部映射为空表情（但工具调用中仍需提供 `emoji`）。
- WhatsApp 中每条消息只有一个 Bot 表情回应槽位；发送新的表情回应会替换原有回应，而不会叠加多个表情。

</details>

<details>
<summary>Zalo Personal（zalouser）</summary>

- 添加和移除操作均要求 `emoji` 非空。
- `remove: true` 会移除该特定表情回应。

</details>

<details>
<summary>Feishu/Lark</summary>

- 与其他渠道使用相同的 `react` 操作（通过消息表情回应 ID 添加、移除和列出），而不是使用单独的工具。
- 添加时要求 `emoji` 非空（映射为 Feishu `emoji_type`，例如 `SMILE`、`THUMBSUP`、`HEART`）。
- `remove: true` 要求 `emoji` 非空，并移除 Bot 自己添加的、与该表情类型匹配的回应。
- 将 `emoji` 留空并使用 `clearAll: true`，会移除该消息上 Bot 的所有表情回应。

</details>

<details>
<summary>Signal</summary>

- 入站表情回应通知由 `channels.signal.reactionNotifications` 控制：`"off"` 会禁用通知；`"own"`（默认值）会在用户回应 Bot 消息时发出事件；`"all"` 会为所有表情回应发出事件；`"allowlist"` 则仅为 `channels.signal.reactionAllowlist` 中的发送者发出事件。

</details>

<details>
<summary>iMessage</summary>

- 出站表情回应使用 iMessage 点回（`love`、`like`、`dislike`、`laugh`、`emphasize` 和 `question`）；添加表情回应时，`emoji` 必须映射为其中一种类型。
- 使用 `remove: true` 时，如果未指定可识别的点回类型，则会移除所有点回类型；如果指定了可识别的类型，则仅移除该类型。

</details>

## 表情回应级别

每个渠道的 `reactionLevel` 会限制智能体发送自身
表情回应的频率。可选值：`off`、`ack`、`minimal` 或 `extensive`。

- [Telegram 表情回应通知](https://funcoding.ai/agents/openclaw/channels/telegram/#feature-reference) - `channels.telegram.reactionLevel`（默认值为 `minimal`）
- [WhatsApp 表情回应级别](https://funcoding.ai/agents/openclaw/channels/whatsapp/#reaction-level) - `channels.whatsapp.reactionLevel`（默认值为 `minimal`）
- [Signal 表情回应](https://funcoding.ai/agents/openclaw/channels/signal/#reactions-message-tool) - `channels.signal.reactionLevel`（默认值为 `minimal`）

## 相关内容

- [Agent Send](https://funcoding.ai/agents/openclaw/tools/agent-send/) - 包含 `react` 的 `message` 工具
- [渠道](https://funcoding.ai/agents/openclaw/channels/) - 渠道特定配置
