Chat Session 會話機制
理解 Buda 中 Chat Channel、Chat Session 的概念與隔離機制
Chat Session 會話機制
核心概念
| 概念 | 說明 |
|---|---|
| Chat Channel | 一個接入頻道,例如一個 WhatsApp 帳號、一個 Telegram Bot、一個 Discord 頻道。Channel 綁定到某個 Agent,負責接收和傳送訊息。 |
| Chat Session(會話) | 一次獨立的對話上下文。每個用戶與 Agent 的對話都是一個獨立的 Session,上下文彼此隔離。 |
會話隔離
一個 Chat Channel 可以承載無數個並發 Session。
以 WhatsApp 客服為例:
WhatsApp Channel(帳號 A)
├── Session:用戶甲 ← 獨立上下文
├── Session:用戶乙 ← 獨立上下文
├── Session:用戶丙 ← 獨立上下文
└── ...(可擴展到百萬級)- 用戶甲和用戶乙的對話記錄完全隔離,互不可見
- Agent 在回覆用戶甲時,不會「記得」用戶乙說過什麼
- 同一個用戶發起新對話時,可以建立新的 Session,與歷史 Session 上下文隔離
Session 的生命週期
用戶首次發訊息 → 自動建立 Session → 對話進行中 → Session 保持活躍
↓
用戶長時間不活躍 → Session 進入休眠
↓
用戶再次發訊息 → 恢復同一 Session(上下文保留)用戶也可以主動開啟新 Session,此時舊 Session 的上下文不會延續到新 Session。
與各渠道的對比
不同渠道的 Session 劃分邏輯略有不同:
| 渠道 | Session 劃分規則 |
|---|---|
| WhatsApp 私訊 | 每個用戶手機號 = 一個 Session |
| WhatsApp 群聊 | 每個群 = 一個 Session(群內所有成員共享上下文) |
| Telegram 私訊 | 每個用戶 = 一個 Session |
| Telegram 群組 | 每個群 = 一個 Session |
| Discord | 每個頻道(channel)= 一個 Session |
在客服場景中的意義
客服場景下,Session 隔離是核心保障:
- 隱私:用戶 A 的訂單資訊不會出現在用戶 B 的對話裡
- 準確性:Agent 只根據當前用戶的上下文回答,不會混淆
- 擴展性:無論同時有多少用戶在聊,每個 Session 獨立處理,互不影響