任務(Task)
簡介
任務(Task) 是 Agent 的主動訊息能力:由 Agent 主動向用戶發起對話,而不是等待用戶先開口。
與一般對話不同,一般對話是「用戶提問 → Agent 回答」,而任務則是「平台依照您設定的條件,代替用戶向 Agent 發出一則訊息 → Agent 產生回覆 → 回覆推送給用戶」。您在任務中填寫的「觸發訊息」,本質上是代替用戶傳送給 Agent 的一句話,Agent 會像收到真實用戶訊息一樣產生回覆,最終用戶看到的是 Agent 的回覆,而不是觸發訊息本身。
典型使用情境:
| 情境 | 觸發方式 | 範例 |
|---|---|---|
| 定期播報 | 主動 - 定時觸發 | 每天早上 9:00 向所有 Telegram 用戶推送今日資訊 |
| 沉默用戶喚醒 | 被動 - 用戶觸發 | 用戶超過 3 天未對話時,主動傳送關懷訊息 |
| 業務系統連動 | 主動 - 事件觸發 | 訂單出貨後,業務系統呼叫 Webhook,通知用戶物流資訊 |
| 單次通知 | 主動 - 定時觸發(單次) | 在指定時間向近一個月活躍的用戶傳送活動通知 |
前置條件
- 任務只會傳送給已經與 Agent 產生過對話的用戶。平台會為每位用戶找到其在目標管道上「最後一次活躍」的對話,並在該對話中注入訊息。沒有對話記錄的用戶不會收到任務訊息(執行明細中記為
NO_CONVERSATION)。 - 若目標管道為第三方整合(如 WhatsApp、Telegram、LINE 等),請確保對應的整合已在「Integrations」中正確設定並處於啟用狀態;整合被關閉或憑證失效會導致傳送失敗(
CHANNEL_CONFIG_INVALID/CHANNEL_AUTH_FAILED)。 - 任務執行會呼叫 Agent 的 LLM 產生回覆,會正常消耗積分(Credits)。
入口
進入 開發空間 → 代理 → 選擇某個 Agent → 左側選單「Tasks」。
任務列表支援:依任務名稱搜尋、依狀態(Status)、觸發類型(Trigger)、目標用戶(Target)篩選。列表欄位說明:
| 欄位 | 說明 |
|---|---|
| Name | 任務名稱 |
| Status | 任務狀態,請參閱任務狀態 |
| Trigger | 觸發類型:定時 / 事件 / 用戶觸發 |
| Target | 目標用戶:全部用戶 / 自訂用戶 |
| Message | 觸發訊息(範本內容) |
| Created | 建立時間與建立者 |
| Action | 操作:View(檢視)/ Stop(停止)/ Delete(刪除) |
建立任務
點擊右上角 New task,在右側抽屜中完成設定。
1. 基本資訊
| 設定項 | 說明 |
|---|---|
| Task name | 任務名稱,必填,最長 100 個字元 |
| Target users | 目標用戶,二選一:Custom users(自訂用戶,預設)或 All users(全部用戶) |
| Target channels | 目標管道,選擇 Custom users 時必填,可多選。只會向在這些管道上有對話的用戶傳送 |
| Target conversation scope | 目標對話範圍(開始時間 – 結束時間)。只有對話建立時間落在此區間內的用戶會成為傳送對象,用於將傳送範圍限制在「近期活躍」的用戶 |
注意:選擇 All users 時會跳出二次確認,因為這代表向該 Agent 所有管道上的全部用戶廣播。請務必確認目標對話範圍設定合理,避免誤發。
支援的目標管道
| 類別 | 管道 |
|---|---|
| 自有管道 | Web、Share、Embed(iframe)、Widget、App、API |
| 工作空間 | Workspace、Workspace Apps |
| IM 管道 | Telegram、WhatsApp(Meta)、WhatsApp(Engagelab)、LINE、Slack、Facebook Messenger、Instagram、WeChat 客服(微信客服)、Teams |
| 客服平台 | Intercom、LiveChat、Livedesk、OmniChat、Zoho SalesIQ |
提示:部分管道因平台協定限制暫不支援伺服器端主動推送(如 Discord、DingTalk、SoBot),在管道下拉選單中會反灰並提示原因。自有管道(Web / Widget 等)的回覆會直接寫入對話,用戶下次開啟對話視窗即可看到;IM 管道與客服平台則會透過對應平台的 API 主動推送給用戶。
2. 觸發方式(Trigger)
觸發方式決定「什麼時候發」,共有三種:
主動 - 定時觸發(Active - Scheduled)
由平台依設定的時間表主動發起,適合定期播報、單次通知。
| 週期模式 | 說明 |
|---|---|
| Daily | 每天在指定時刻(HH:mm)觸發 |
| Weekly | 每週指定星期幾的指定時刻觸發 |
| Monthly | 每月指定日期的指定時刻觸發;若當月沒有該日期(如 31 日),則取當月最後一天 |
| Interval | 依固定間隔觸發,單位支援分鐘 / 小時 / 天,最小 1 分鐘 |
| Once | 僅執行一次。執行時間必須晚於目前時間至少 1 分鐘,且不超過 1 年 |
時間依任務所選的時區計算。定時任務建立後狀態為 WAITING,到達首次執行時間後進入 RUNNING;Once 任務執行完成後自動轉為 COMPLETED。
主動 - 事件觸發(Active - Event)
由您的業務系統透過 Webhook 呼叫平台來觸發,適合與訂單、付款、工單等業務事件連動。
建立任務時選擇驗證方式並填寫憑證,平台會自動產生一個唯一的 Webhook URL(建立後可在任務詳情中檢視):
| 設定項 | 說明 |
|---|---|
| Auth method | 驗證方式:Basic Auth 或 HMAC signature |
| Username / Password | Basic Auth 模式下必填,呼叫時以 Authorization: Basic base64(username:password) 攜帶 |
| Secret | HMAC 模式下的簽章金鑰,呼叫方需對請求 body 計算 HMAC-SHA256,並透過 X-Signature: sha256=<hex> 請求標頭攜帶 |
Webhook 呼叫範例
Webhook URL 形如 {平台網域}/bot/proactive-task/webhook/{webhookPath},請以任務詳情中顯示的完整網址為準。
POST {Webhook URL}
Content-Type: application/json
Authorization: Basic base64(username:password)
{
"idempotency_key": "order-20260903-0001",
"target": {
"channel": "TELEGRAM",
"user_id": "customer_123"
},
"variables": {
"order_no": "SO-20260903-0001",
"eta": "9月5日"
}
}
| 欄位 | 必填 | 說明 |
|---|---|---|
idempotency_key |
否 | 冪等鍵,最長 128 個字元。24 小時內相同鍵的重複請求會被拒絕,避免業務系統重試導致重複傳送 |
target.channel |
是 | 目標管道,取值與管道列舉值一致,如 WEB、TELEGRAM、WHATSAPP_META、LINE |
target.user_id |
二選一 | 業務用戶 ID(已登入用戶) |
target.aid |
二選一 | 匿名用戶 ID(未登入訪客) |
variables |
否 | 自訂變數,可在觸發訊息中透過 {{event.variables.欄位名}} 引用 |
注意:Webhook 請求成功僅代表「已接收並進入傳送佇列」,實際傳送結果請在執行歷史中檢視。驗證失敗、任務已停止、目標管道不在任務的目標管道範圍內等情況都會回傳權限錯誤。單一 Webhook 網址限流 120 次 / 分鐘。
被動 - 用戶觸發(Passive - User Triggered)
由平台每分鐘掃描一次所有目標用戶,符合規則的用戶即觸發傳送,適合沉默用戶喚醒、高價值用戶關懷等情境。
規則設定
點擊 Add rule 新增規則,多條規則之間可選擇 AND(全部滿足)或 OR(任一滿足)。
| 規則欄位 | 類型 | 可用運算子 | 範例 |
|---|---|---|---|
| User's last chat time(用戶最後對話時間) | 時間 | 已過去 N 分鐘/小時/天、最近 N 分鐘/小時/天以內 | 最後對話時間已過去 3 天 |
| Total chats(對話總次數) | 數字 | 等於 / 不等於 / 大於 / 大於等於 / 小於 / 小於等於 / 為空 / 非空 | 對話總次數 ≥ 10 |
| User attributes(用戶屬性) | 字串 / 數字 / 布林 / 列表 / 時間 | 依類型對應:等於 / 不等於 / 包含 / 為真 / 包含於…… | 會員等級 包含於 [VIP, 白金] |
| Custom attributes(自訂屬性) | 字串 / 數字 / 布林 / 列表 / 時間 | 同上 | 活動開關 為真 |
說明:用戶屬性取自「變數管理 → 用戶屬性」,依用戶逐一取值(用戶未設定時取屬性預設值),適合依用戶輪廓篩選;自訂屬性取自「變數管理 → 自訂變數」,是 Agent 層級的統一值,對所有用戶相同,適合作為「總開關」類條件。所有規則欄位都是基於該用戶在目標管道上最後活躍的那則對話取值。
訊息頻率控制(Message Frequency)
被動觸發任務必須設定頻率控制:在設定的時間窗內(N 小時 / N 天),同一位用戶最多只會被該任務觸發一次,避免持續符合規則的用戶被反覆打擾。
提示:用戶最後對話時間(User's last chat time)是「過去」的時間,請使用「已過去 N 單位」類運算子;「距今 N 單位之後」類運算子只適用於未來時間欄位(如訂閱到期時間),用在最後對話時間上永遠不會命中。
3. 觸發訊息(Message)
填寫要「代替用戶」傳送給 Agent 的訊息內容。Agent 會根據這則訊息以及自身的提示詞、知識庫等產生回覆,再推送給用戶。
支援使用 {{變數}} 引用以下變數:
| 變數 | 說明 |
|---|---|
{{user.userId}} / {{user.aId}} |
用戶 ID / 匿名用戶 ID |
{{conversation.id}} / {{conversation.subject}} |
對話 ID / 對話主題 |
{{conversation.recentChatTime}} / {{conversation.messageCount}} |
對話最後對話時間 / 訊息數 |
{{now}} |
目前時間戳(毫秒) |
{{event.variables.xxx}} |
事件觸發時,Webhook 請求中 variables 裡的欄位 |
{{sys_agent_id}}、{{sys_conversation_id}}、{{sys_user_id}} 等 |
與對話中一致的系統變數 |
範例
- 定時播報:
請用簡短友善的語氣,為我總結今天的產業要聞。 - 沉默喚醒:
我已經幾天沒有來了,請主動問候我,並告訴我最近有什麼新功能。 - 事件通知:
我的訂單 {{event.variables.order_no}} 已出貨,預計 {{event.variables.eta}} 送達,請告訴我物流資訊並提醒我注意查收。
提示:觸發訊息是寫給 Agent 看的「用戶視角」提問,而不是直接顯示給用戶的文案。如果希望 Agent 盡量原樣轉述,可以在訊息中明確要求,例如「請原樣告訴用戶:……」。
確認無誤後點擊 Create。
注意:每個 Agent 同時處於
WAITING/RUNNING狀態的任務最多 10 個,超出後需先停止或等待既有任務完成。
任務狀態
| 狀態 | 說明 |
|---|---|
| WAITING | 等待中。定時任務建立後、尚未到首次執行時間 |
| RUNNING | 執行中。定時任務已開始依計畫執行;事件 / 用戶觸發任務建立後即為此狀態,等待 Webhook 或規則命中 |
| COMPLETED | 已完成。僅「單次(Once)」定時任務執行完畢後進入 |
| TERMINATED | 已停止。手動點擊 Stop 後進入,無法恢復 |
| ERROR | 異常。任務連續 10 次執行全部失敗(例如第三方整合失效)時自動熔斷停止,可在任務詳情中檢視原因 |
檢視任務與執行歷史
點擊列表中的 View 進入任務詳情,包含兩個分頁:
- Configuration:任務設定的唯讀檢視。事件觸發任務可在此檢視 Webhook URL 與驗證資訊。
- Execution History:每次執行的記錄,含執行時間、目標數、成功 / 失敗數與成功率。
點擊某次執行可檢視執行明細:各管道的成功 / 失敗統計,以及逐筆傳送記錄。失敗原因說明:
| 失敗原因 | 說明 | 處理建議 |
|---|---|---|
| NO_CONVERSATION | 用戶在目標管道上沒有對話,或對話建立時間不在目標對話範圍內 | 檢查目標對話範圍與管道設定 |
| CHANNEL_CONFIG_INVALID | 管道整合被關閉、刪除或設定失效 | 至 Integrations 檢查對應整合 |
| CHANNEL_AUTH_FAILED | 管道驗證失敗(如 Telegram Token 失效) | 更新整合憑證 |
| RATE_LIMITED | 達到傳送速率上限,重試後仍未取得配額 | 縮小目標範圍或分批傳送 |
| AGENT_FAILED | Agent 產生回覆失敗 | 檢查 Agent 設定、模型與積分餘額 |
| TIMEOUT | 管道下發逾時(單筆 60 秒) | 稍後重試,檢查第三方平台狀態 |
| NOT_IMPLEMENTED | 該管道暫不支援主動推送 | 更換目標管道 |
停止與刪除
- Stop:處於
WAITING/RUNNING/ERROR狀態的任務可隨時停止,停止後轉為TERMINATED,無法恢復。 - Delete:僅
COMPLETED/TERMINATED狀態的任務可刪除,刪除時會同步清除執行歷史與明細。
常見問題
Q:為什麼任務執行成功,但用戶看到的內容不是我填寫的觸發訊息?
觸發訊息是「代替用戶傳送給 Agent 的提問」,用戶看到的是 Agent 針對這句話產生的回覆。如需精確控制文案,請在觸發訊息中明確要求 Agent 原樣輸出。
Q:新用戶會收到任務訊息嗎?
不會。任務只會向已有對話記錄的用戶傳送,且對話建立時間需落在「目標對話範圍」內。
Q:定時任務為什麼沒有在整點準時傳送?
排程器每分鐘掃描一次,且大量傳送會依專案層級的速率限制分批推送,因此實際送達時間可能略有延後。
Q:Webhook 回傳權限錯誤(Permission deny)?
請依序檢查:Webhook URL 是否正確、驗證憑證是否相符、任務是否已被停止、請求中的 target.channel 是否屬於任務設定的目標管道。
