Agent 使用方法
私域:群組小幫手
私域 Agent 在 WhatsApp 群組與 Discord 裡回答成員、推薦商品、每天交成員摘要、把客訴交給真人。說明私域角色與五個端點(查群組、搜知識庫、搜商品、回報每日摘要、開客服單)的輸入、回傳與錯誤。
私域是給客戶的會員群組(WhatsApp 群組、Discord)用的小幫手。Agent 被 @ 時回答問題與推薦商品,每天把前一天的發言整理成每位成員的摘要交回來,遇到客訴或答不出來的問題就開單給真人。畫面操作(登記群組、匯入商品、處理工單)見 私域。
角色與金鑰#
建立 Agent 時把角色設成「私域 Agent」(community)。這個角色的金鑰只有兩個範圍,沒有別的:
| 範圍 | REST | MCP 工具 |
|---|---|---|
community:read | POST /community/space、POST /community/wiki、POST /community/products | community_space、community_wiki_search、community_products |
community:write | POST /community/digest、POST /community/tickets | community_report_digest、community_open_ticket |
channel 的值是 whatsapp 或 discord。
POST /community/space:查群組#
用平台上的群組 id 拿 space_id 與群組設定。其他四個呼叫都要帶這裡拿到的 space_id。這是讀取,不會建立任何東西。
{ "channel": "whatsapp", "external_id": "120363001@g.us" }| 欄位 | 說明 |
|---|---|
channel | 必填。whatsapp 或 discord |
external_id | 必填。群組在平台上的 id,1–200 字 |
回傳 space_id、name、channel、space_type、market、track、location、status、language。
{ "space_id": "3c9e…", "name": "美妝好物交流", "channel": "whatsapp", "space_type": "group", "market": "TW", "track": "beauty", "location": "taipei", "status": "active", "language": "繁體中文" }群組沒登記或已封存時回 404 not_found。用 language 決定回覆的語言。
POST /community/wiki:搜知識庫#
用成員的問題搜知識庫,依相關度排序。
{ "space_id": "3c9e…", "query": "退貨要怎麼辦", "limit": 5 }| 欄位 | 說明 |
|---|---|
space_id | 必填。community_space 回傳的 |
query | 成員的問題,原文即可,最多 200 字 |
limit | 1–20,預設 5 |
回傳 entries,每條有 id、title、summary、body。
只會回帶 `community` 標籤的定案條目。條目另外帶有市場(market:XX)、賽道(track:xx)或地點(location:xx)標籤時,要和這個群組一致才會出現;沒有該軸標籤的條目視為通用。查不到時 entries 是空陣列,這時回答「不確定」,不要自己編。
POST /community/products:搜商品#
用需求關鍵字搜這個群組可推薦的商品。
{ "space_id": "3c9e…", "query": "控油 定妝", "limit": 3 }| 欄位 | 說明 |
|---|---|
space_id | 必填 |
query | 需求關鍵字,最多 200 字 |
limit | 1–10,預設 3 |
回傳 products,只含目錄裡上架中的商品。推薦時照回傳的內容講,不要自己補價格或功效。
POST /community/digest:回報每日摘要#
每天一次,每個群組交前一天的摘要。
{
"channel": "whatsapp",
"space_id": "3c9e…",
"day": "2026-10-10",
"members": [
{
"external_id": "273452799938589@lid",
"display_name": "小美",
"message_count": 12,
"summary": "在找夏天控油的底妝",
"tags": [{ "kind": "interest", "value": "控油", "confidence": 0.8 }]
}
]
}| 欄位 | 說明 |
|---|---|
channel | 必填。跟 community_space 的 channel 一樣;跟群組登記的不同會回 422 rejected |
space_id | 必填 |
day | 必填。log 的日期,用空間所在時區,YYYY-MM-DD |
members | 必填。最多 500 位,可以是空陣列 |
每位成員:
| 欄位 | 說明 |
|---|---|
external_id | 必填。發話人在平台上的 id(WhatsApp 的 @lid),照 log 原樣,最多 200 字 |
display_name | 顯示名稱,最多 80 字 |
message_count | 必填。當天的訊息數,0–10000 |
summary | 一句話描述需求,最多 200 字;不要抄原文,不要寫電話、地址、訂單號 |
tags | 最多 12 個。kind 是 interest(興趣)或 intent(意向),value 1–40 字,confidence 0–1(可省略) |
回傳 space_id、day、members(收下的人數)、skipped(沒收的人數)。
POST /community/tickets:開客服單#
成員有客訴、退款、訂單、要求刪除個資、洗版或詐騙、或同一題連續答不出來時,開一張單交給真人。
{ "channel": "whatsapp", "space_id": "3c9e…", "member_external_id": "273452799938589@lid", "category": "refund", "summary": "成員說上週訂單的粉底液色號寄錯,想退款" }| 欄位 | 說明 |
|---|---|
channel | 必填。跟群組登記的不同會回 422 rejected |
space_id | 必填 |
member_external_id | 提出問題的人的平台 id(WhatsApp 是 @lid)。工單跟某位成員有關就一定要帶;只有不針對特定人(例如群組裡多人在問同一件事)才不填。不填的工單不會跟其他工單合併 |
category | 必填。complaint(客訴)、refund(退款)、order(訂單)、data_deletion(刪除個資)、abuse(洗版或詐騙)、unanswered(答不出來)、other(其他) |
summary | 必填,最多 500 字。寫發生什麼事、成員要什麼;不要貼個資 |
回傳 ticket_id 與 reused。同一位成員同一類別 24 小時內已有處理中的單,會回那一張(reused: true),不會重複開,這次的 summary 記成那張單的備註。沒帶 member_external_id 的單每次都另開一張。群組裡只回「已轉給真人同事處理」,不要承諾處理結果。
錯誤#
錯誤格式見 請求慣例。私域常見的:
| HTTP | code | 什麼時候 |
|---|---|---|
| 404 | not_found | 群組沒登記、已封存,或 space_id 不是這個工作區的 |
| 422 | rejected | 同一群組同一天重複交每日摘要;channel 跟群組登記的不同;其他資料庫端拒絕的請求 |
| 400 | invalid_request | 欄位格式不對,例如 day 不是 YYYY-MM-DD、標籤超過 12 個 |
| 403 | forbidden | 金鑰缺 community:read 或 community:write |
寫入的兩個端點(digest、tickets)MCP 版都有 request_id,作用等於 REST 的 Idempotency-Key:網路斷了用同一個值重送,不會多寫一筆。