TROISINH
Context EngineeringMemory & Conversation

Multi-turn Strategy: Quản lý hội thoại dài

Chiến lược thiết kế hội thoại AI kéo dài nhiều lượt. Từ Sliding Window đến kiến trúc 3 tầng của Claude Code, tối ưu context window và duy trì state xuyên suốt.

Định nghĩa

Multi-turn Strategy là kỹ thuật thiết kế và quản lý luồng hội thoại kéo dài nhiều lượt tương tác với AI, bao gồm việc lưu trữ lịch sử trò chuyện, nén thông tin khi đạt giới hạn context window, và duy trì trạng thái (state) xuyên suốt phiên làm việc.

Giải thích chi tiết

Vấn đề cốt lõi: AI không có bộ nhớ thật

Điều quan trọng cần nhấn mạnh: AI không "nhớ" cuộc trò chuyện giống như con người. Mỗi lượt (turn), bạn gửi toàn bộ lịch sử chat kèm tin nhắn mới vào context window. Khi hội thoại dài ra, ba vấn đề xuất hiện:

  • Token limit: Bạn chạm giới hạn ngữ cảnh (thường 128k-200k tokens), buộc phải cắt bớt dữ liệu
  • Lost in the middle: Thông tin ở giữa cuộc trò chuyện bị AI bỏ qua do attention mechanism
  • Chi phí: API tính tiền theo input tokens, lịch sử dài đồng nghĩa chi phí tăng theo cấp số nhân

Sliding Window: Giải pháp đơn giản

Cách tiếp cận cơ bản nhất: chỉ giữ lại N lượt gần nhất (ví dụ 10 tin nhắn cuối). Ưu điểm là đơn giản, nhược điểm là mất hoàn toàn thông tin cũ. Phù hợp cho chatbot FAQ đơn giản, không phù hợp cho tác vụ phức tạp như viết code kéo dài.

Tầng trung gian: Summarization & Checkpoints

Khi sliding window không đủ, ta thêm lớp tóm tắt. Sau mỗi 5-10 lượt, AI tự tóm tắt nội dung thành "checkpoint" và thay thế chi tiết bằng bản tóm tắt. Đây là kỹ thuật Context Pruning & Summarization được áp dụng vào hội thoại.

Kiến trúc 3 tầng của Claude Code (Anthropic)

Claude Code triển khai một trong những multi-turn strategy tinh vi nhất hiện nay, chia memory thành ba tầng rõ rệt:

  • Immediate Context: 10-20 lượt gần nhất, giữ nguyên chi tiết để duy trì ngữ cảnh tức thì
  • Working Memory: Bản tóm tắt các quyết định quan trọng, file đang mở, và ý định người dùng được cập nhật sau mỗi hành động
  • Persistent Store: Các sở thích người dùng, cấu trúc codebase, quy tắc nghiệp vụ được lưu vào file .claude/ và load lại mỗi session

Cách tiếp cận này khắc phục "Lost in the middle" bằng cách ưu tiên thông tin gần nhất, đồng thời không đánh mất bối cảnh tổng thể nhờ tầng lưu trữ bền vững.

State Management trong Multi-turn

Khác với lịch sử chat (history), state là trạng thái hiện tại của tác vụ: file nào đang sửa, biến nào đang dùng, lỗi nào đang fix. Trong multi-turn strategy, state cần được:

  • Serialize: Lưu thành JSON/YAML sau mỗi lượt
  • Hydrate: Khôi phục khi session mới bắt đầu
  • Validate: Kiểm tra tính hợp lệ (ví dụ: file đã bị xóa ngoài vòng kiểm soát)

Ví dụ thực tế

Claude Code — Trợ lý lập trình đa lượt

Khi bạn dùng Claude Code sửa một codebase lớn qua 50 lượt trao đổi:

  • Tầng 1 giữ 15 lượt cuối (bạn vừa sửa file nào, lỗi gì vừa xuất hiện)
  • Tầng 2 lưu "Đang refactor module authentication, đã sửa 3/5 file, cần test lại sau khi xong"
  • Tầng 3 đọc từ .claude/preferences.md biết bạn thích dùng TypeScript strict mode và Jest cho testing

Kết quả: Dù context window đầy, Claude vẫn biết bối cảnh tổng thể dự án nhờ tầng 2 và 3, đồng thời xử lý chính xác chi tiết kỹ thuật hiện tại nhờ tầng 1.

Chatbot hỗ trợ khách hàng với Sliding Window + Summarization

Một công ty triển khai bot hỗ trợ đơn hàng:

  • Dùng sliding window 6 lượt cho phần hội thoại tự nhiên
  • Khi khách hàng nhắc lại "đơn hàng sáng nay", bot trigger summarization: tóm tắt 6 lượt trước thành "Khách hàng hỏi về đơn hàng số 12345, đã cung cấp địa chỉ mới, đang chờ xác nhận đổi địa chỉ"
  • Bản tóm tắt này được đưa vào system message của lượt tiếp theo, giải phóng chỗ cho tin nhắn mới

Trợ lý phân tích dữ liệu qua nhiều file

Data analyst dùng AI phân tích 10 file CSV qua 30 lượt hỏi đáp:

  • State lưu trữ: "Đã load file sales_2024.csv, đã tạo biến df_sales, đã tính mean bằng 1500"
  • Mỗi lượt chuyển file, state cập nhật để AI biết context là "file customers.csv" chứ không phải file cũ
  • Khi context đầy, chỉ giữ lại state và 3 lượt gần nhất, bỏ các lượt phân tích chi tiết đã hoàn thành

Ứng dụng

Developer xây dựng chatbot

  • Áp dụng sliding window cho FAQ đơn giản, hybrid approach (Claude Code style) cho bot xử lý tác vụ phức tạp
  • Triển khai conversation checkpointing để người dùng có thể "save game" và quay lại sau 3 ngày mà không mất ngữ cảnh

Product Manager thiết kế trải nghiệm AI

  • Quyết định độ dài lịch sử lưu trữ dựa trên persona người dùng: người dùng power user cần 20 lượt, người dùng casual chỉ cần 3 lượt
  • Thiết kế UI cho phép người dùng "pin" thông tin quan trọng (đưa vào tầng persistent memory)

Kỹ sư AI tại doanh nghiệp

  • Xây dựng state management cho hệ thống RAG kéo dài: lưu trữ các câu hỏi đã thử, tài liệu đã tra, tránh lặp lại retrieval vô nghĩa
  • Tối ưu chi phí API bằng cách nén lịch sử thành summary thay vì gửi full chat history

So sánh

Chiến lượcĐộ sâu memoryChi phí tokenĐộ phức tạp triển khaiGiữ được ngữ cảnh xa
Sliding WindowN lượt gần nhấtThấp (ổn định)Đơn giảnKhông
Full HistoryToàn bộCao (tăng dần)Đơn giảnCó (đến khi đầy)
SummarizationTóm tắt vĩnh viễn + chi tiết gầnTrung bìnhTrung bìnhMột phần (mất chi tiết)
Hybrid 3-Tầng (Claude Code)Phân tầng: gần đầy đủ, xa tóm tắtTối ưuPhức tạpCao

Kết luận: Sliding Window phù hợp cho prototype và chatbot đơn giản. Khi cần xây dựng AI assistant chuyên nghiệp (coding, analysis, complex support), Hybrid 3-Tầng là chuẩn mực hiện đại, cân bằng giữa chi phí và khả năng duy trì context dài hạn.

Bài viết liên quan

Cùng cụm:

Đọc tiếp:

  • Context Management — Quản lý ngữ cảnh tổng thể, nền tảng cho multi-turn strategy (Level 1)
  • State & Session Management — Kỹ thuật quản lý trạng thái nâng cao cho AI agent kéo dài (Level 2)
  • Harness Fundamentals — Kiến trúc tổng thể để kiểm soát AI agent trong hệ thống production (Level 2)

On this page