Tools

回應表情

代理程式會使用 message 工具的 react 動作來新增及移除表情符號回應。行為會因頻道而異。

運作方式

json
{  "action": "react",  "messageId": "msg-123",  "emoji": "thumbsup"}
  • 新增回應時必須提供 emoji
  • 在支援的頻道上,將 emoji 設為空字串(""),即可移除機器人的回應。
  • 設定 remove: true 可移除特定表情符號(emoji 不得為空)。
  • 在支援狀態回應的頻道上,對回應設定 trackToolCalls: true,可讓執行階段在同一輪中重複使用該已回應的訊息,以顯示後續的工具進度回應。

頻道行為

Discord 和 Slack
  • 空的 emoji 會移除機器人在該訊息上的所有回應。
  • remove: true 只會移除指定的表情符號。
Nextcloud Talk
  • 僅支援新增回應:必須提供 emoji,且不得為空。
  • 移除回應尚未連接至刪除呼叫;系統會明確拒絕 remove: true 並傳回錯誤,而不會無聲地略過操作。
  • 必須以 reaction 功能註冊 Talk 機器人(請參閱 Nextcloud Talk 頻道文件)。
Telegram
  • 空的 emoji 會移除機器人的回應。
  • remove: true 也會移除回應,但工具驗證仍要求 emoji 不得為空。
WhatsApp
  • 空的 emoji 會移除機器人的回應。
  • remove: true 會在內部對應至空的表情符號(工具呼叫仍須包含 emoji)。
  • WhatsApp 的每則訊息只有一個機器人回應位置;傳送新的回應會取代原有回應,而不會堆疊多個表情符號。
Zalo Personal (zalouser)
  • 新增和移除時都必須提供非空的 emoji
  • remove: true 會移除該特定表情符號回應。
Feishu/Lark
  • 使用與其他頻道相同的 react 動作(透過訊息回應 ID 新增、移除及列出),而非獨立工具。
  • 新增時必須提供非空的 emoji(對應至 Feishu 的 emoji_type,例如 SMILETHUMBSUPHEART)。
  • remove: true 要求提供非空的 emoji,並移除機器人自身符合該表情符號類型的回應。
  • 搭配 clearAll: true 使用空的 emoji,會移除機器人在該訊息上的所有回應。
Signal
  • 傳入回應通知由 channels.signal.reactionNotifications 控制:"off" 會停用通知;"own"(預設值)會在使用者回應機器人訊息時發出事件;"all" 會針對所有回應發出事件;"allowlist" 則只會針對 channels.signal.reactionAllowlist 中的傳送者發出事件。
iMessage
  • 傳出回應是 iMessage 的點按回應(lovelikedislikelaughemphasizequestion);若要新增回應,emoji 必須對應至其中一種類型。
  • 未指定可辨識點按回應類型的 remove: true 會移除所有點按回應類型;若指定可辨識的類型,則只會移除該類型。

回應層級

每個頻道的 reactionLevel 會限制代理程式傳送自身回應的頻率。可用值:offackminimalextensive

相關內容

Was this useful?
On this page

On this page