Đến giờ bạn đã có các agent riêng lẻ: trợ giảng, chấm bài, lập lộ trình, sinh câu hỏi. Trong thực tế, một hệ thống học tập cần chúng phối hợp dưới sự điều phối, đồng thời có hàng rào an toàn để không gây hại cho học viên. Bài này ghép chúng thành một hệ thống vận hành được.
Kiến trúc điều phối (orchestrator)
Một agent điều phối nhận yêu cầu, quyết định gọi agent con nào, ghép kết quả rồi trả về. Tránh để mọi agent gọi lẫn nhau tùy tiện (khó gỡ lỗi, dễ vòng lặp vô hạn). Mô hình điều phối tập trung giúp bạn có một điểm duy nhất để áp đặt quy tắc, giới hạn và ghi log, thay vì rải rác logic khắp nơi và không ai nắm được toàn cảnh khi sự cố xảy ra.
┌─────────────┐
Người → │ Orchestrator │
└──────┬───────┘
┌──────────┼───────────┬──────────────┐
Trợ giảng Chấm bài Lộ trình Sinh câu hỏi
│ │ │ │
(mỗi agent dùng RAG + hồ sơ học tập chung)
Các bước ghép hệ thống
- Định tuyến ý định (intent routing): phân loại yêu cầu người dùng ("hỏi bài", "nộp bài chấm", "xin lộ trình") để gọi đúng agent.
- Chia sẻ trạng thái: hồ sơ học tập là dữ liệu chung mọi agent đọc/ghi.
- Giới hạn số bước: đặt trần số lần gọi LLM cho một yêu cầu, tránh vòng lặp tốn tiền.
- Ghi log toàn trình (trace): lưu chuỗi agent nào được gọi, để tái hiện khi lỗi.
- Đường thoát cho con người: khi agent không chắc, chuyển giáo viên.
def orchestrate(user_msg, learner):
intent = classify_intent(user_msg) # 1 lệnh LLM nhỏ, rẻ
if intent == "hoi_bai":
return tutor_agent(user_msg, learner)
if intent == "nop_bai":
r = grade(user_msg, RUBRIC)
update_from_grade(learner, r) # ghi vào hồ sơ chung
return r
if intent == "xin_lo_trinh":
return path_agent(learner)
return escalate_to_teacher(user_msg) # đường thoát
Hàng rào an toàn (guardrails) đặc thù giáo dục
- Không lộ đáp án thi: kho đáp án thi tách riêng, agent trợ giảng không truy cập được.
- Chống chép bài (academic integrity): agent trợ giảng dẫn dắt, không viết hộ bài nộp.
- Lọc nội dung độc hại: kiểm duyệt đầu vào/đầu ra, đặc biệt khi người học là trẻ em.
- Phát hiện tín hiệu nguy cơ: nếu học viên bộc lộ dấu hiệu khủng hoảng tâm lý, agent không tự xử lý mà chuyển ngay cho người phụ trách và cung cấp thông tin hỗ trợ.
- Bảo vệ dữ liệu cá nhân: ẩn danh khi có thể, không gửi dữ liệu nhạy cảm ra ngoài không cần thiết.
Khung tư duy: mỗi hành động cần một "cầu dao"
Với mỗi việc agent làm, hỏi: Nếu agent làm sai việc này ở quy mô lớn thì sao? Có cầu dao nào chặn lại không? Ví dụ: cầu dao "người duyệt điểm", cầu dao "trần chi tiêu ngày", cầu dao "chặn từ khóa nhạy cảm".
Checklist hệ thống nhiều agent an toàn
- [ ] Có orchestrator định tuyến rõ ràng.
- [ ] Hồ sơ học tập là trạng thái chung, nhất quán.
- [ ] Trần số bước và trần chi phí mỗi yêu cầu.
- [ ] Log toàn trình để tái hiện lỗi.
- [ ] Kho đáp án thi cách ly khỏi trợ giảng.
- [ ] Kiểm duyệt nội dung vào/ra.
- [ ] Đường thoát cho con người ở tình huống nhạy cảm.
Sai lầm thường gặp
- Để agent gọi lẫn nhau tự do: sinh vòng lặp vô hạn, chi phí bùng nổ.
- Không giới hạn số bước: một yêu cầu treo, tốn hàng nghìn lần gọi.
- Quên cách ly đáp án thi: rò rỉ đề/đáp án qua trợ giảng.
- Không có đường thoát cho tình huống nhạy cảm: agent tự xử lý vấn đề tâm lý — rất nguy hiểm.
- Không log trace: khi hệ thống trả lời sai, không biết agent nào gây ra.