QuotaCheap Playbook
OpenClaw Channel Routing: agent trả lời đúng kênh, đúng agent, đúng session
Hướng dẫn OpenClaw Channel Routing cho AI agent production: deterministic reply, outbound target prefixes, session key shapes, agent bindings, broadcast gr…
Channel routing không phải chuyện gửi message. Nó quyết định reply đi đâu, agent nào được chọn, session store nào được dùng và context có bị lẫn hay không.
Bài viết giải thích OpenClaw Channel Routing trong vận hành thật: deterministic reply về source channel, channel/accountId/agentId/sessionKey, outbound target prefixes, session key shapes, routing rules, broadcast groups, WebChat behavior và cách ghép QuotaCheap cho model usage/cost visibility.
Một AI agent chạy trong một ô web chat thì dễ hiểu: user gõ ở đâu, agent trả lời ở đó.
Nhưng khi agent sống trong Telegram, WhatsApp, Discord, Slack, group chat, thread, WebChat và automation, câu hỏi “trả lời ở đâu?” không còn đơn giản nữa.
Nếu routing sai, lỗi không chỉ là UX xấu.
Agent có thể: trả lời nhầm channel; dùng nhầm workspace; ghi transcript vào sai session; làm lẫn DM với group; để model tưởng nó có quyền chọn nơi gửi message; hoặc làm operator debug sai vì nhìn nhầm agent/session store.
OpenClaw Channel Routing giải quyết lớp này bằng một nguyên tắc rất quan trọng: reply quay lại channel nơi message đến; model không tự chọn channel .
Routing deterministic và được kiểm soát bởi host configuration.
Đây là bài nên đọc trước khi bạn mở agent cho nhiều channel thật.
Channel routing không phải model routing Đừng trộn hai câu hỏi này: Channel routing: message đến từ đâu và reply nên đi về đâu?
Model routing: request này nên gọi model/provider nào?
OpenClaw channel routing nằm ở lớp delivery/context.
Nó quyết định channel, account, agent, session key và workspace/session store.
Model routing nằm ở lớp inference.
Nếu để model tự quyết định “gửi qua Telegram hay Slack”, bạn đang trao cho model một quyền không cần thiết và nguy hiểm.
Model nên tạo nội dung; runtime quyết định delivery.
Key terms: Channel, AccountId, AgentId, SessionKey Docs OpenClaw nêu bốn khái niệm cần phân biệt.
Channel là provider bề mặt chat/delivery: telegram, whatsapp, discord, irc, googlechat, slack, signal, imessage, line, hoặc plugin channels.
webchat là WebChat UI nội bộ, không phải configurable outbound channel.
AccountId là instance account theo từng channel nếu channel hỗ trợ.
Với multi account setup, nên set default rõ bằng channels.<channel .defaultAccount hoặc accounts.default.
Nếu không, fallback routing có thể chọn account đầu tiên sau normalization.
Production mà để “account đầu tiên” quyết định delivery thì hơi liều.
AgentId là một workspace + session store tách biệt, gần như một “brain” riêng.
Matched agent quyết định workspace và session store nào được dùng.
SessionKey là bucket key để lưu context và kiểm soát concurrency.