Session được tạo/quản lý như nào, và vì sao thread_id có thể sai?
Trong Telegram topic, mỗi inbound message có thread_id. Nhưng “session” là lớp riêng của hệ thống agent: nó quyết định cuộc trò chuyện nào được nối tiếp, context nào được nạp lại, và reply sẽ gửi về đâu. Bug thường nằm ở việc session được khóa/quản lý theo user_id + chat_id nhưng chưa coi thread_id là một phần bắt buộc của ngữ cảnh topic.
Bản này mô tả session như một lớp quản lý riêng: nó tạo/khôi phục mạch hội thoại, nạp context, rồi quyết định target trả lời. Nếu khóa session không có thread_id, các topic trong cùng group dễ bị trộn.
Session được tạo khi nào? Khi có inbound message, gateway chuyển event vào orchestrator. Session Manager tìm session đang có theo khóa định danh. Nếu chưa có, nó tạo session mới cho mạch hội thoại đó.
Session được quản lý bằng gì? Bằng session key và metadata: platform, chat_id, user_id, thread_id, history, delivery target, context đã nạp. Với Telegram topic, thread_id phải là metadata bắt buộc.
Tại sao đọc thread_id vẫn sai? Vì có thể đọc đúng ở inbound, nhưng sau đó rơi mất khi lookup session, dựng prompt cho agent, hoặc gửi reply. Nên cần kiểm tra cả 3 điểm, không chỉ payload Telegram.