TROISINH
Context EngineeringMemory & Conversation

Context Pruning & Summarization: Cắt tỉa thông minh

Khi AI bị quá tải thông tin, Context Pruning và Summarization giúp giữ lại điều quan trọng. Khám phá cách cắt tỉa ngữ cảnh thông minh để tối ưu hiệu suất.

Context Pruning và Summarization là hai kỹ thuật bổ sung để quản lý giới hạn của Context Window: Pruning loại bỏ thông tin kém quan trọng, trong khi Summarization nén nhiều lượt hội thoại thành bản tóm tắt ngắn gọn, giúp AI luôn "nhớ" đúng thứ cần nhớ mà không bị ngộp trong dữ liệu thô.

Giải thích chi tiết

Vấn đề: Context Window không phải bộ nhớ vô hạn

Context Window giống như RAM của máy tính — có giới hạn cứng và dễ bị đầy. Khi bạn chat với AI trong 50 lượt, hàng nghìn token từ tin nhắn cũ vẫn nằm trong window, đẩy ra ngoài những thông tin quan trọng ở đầu cuộc hội thoại.

Cách giải pháp "ngây thơ" là Sliding Window: chỉ giữ 10-20 tin nhắn cuối. Nhưng nến người dùng hỏi "Còn ý tưởng thứ ba hồi nãy thì sao?", AI đã quên mất vì nó bị xóa khỏi window. Đây là lúc cần Pruning thông minh thay vì xóa mù quáng.

Context Pruning: Chiến lược loại bỏ thông minh

Pruning không đơn thuần là xóa tin cũ. Đó là quá trình chọn lọc giữ lại signal, loại bỏ noise:

  • Loại bỏ tin nhắn hệ thống dư thừa: Nếu bạn inject cùng một system prompt mỗi lượt, chỉ giữ bản mới nhất.
  • Lọc tool calls thất bại: Khi AI gọi API bị lỗi rồi retry thành công, xóa bỏ lượt thất bại để tiết kiệm token.
  • Xóa CoT reasoning nội bộ: Với model như Claude 3.5 Sonnet, nếu bạn dùng extended thinking chỉ để ra quyết định, có thể prune phần thinking chi tiết sau khi đã có kết luận, chỉ giữ lại output cuối.

Quan trọng: Pruning cần giữ lại các "mốc neo" (anchor points) — những thông tin định danh người dùng, yêu cầu cốt lõi, hoặc quyết định quan trọng đã đạt được.

Conversation Summarization: Nén lịch sử thành insight

Summarization đi sâu hơn: thay vì giữ 15 tin nhắn đàm phán giá, bạn tóm tắt thành một object JSON:

{
  "context_summary": "User yêu cầu giảm giá 20%, đã thương lượng xuống 15%, điều kiện là thanh toán trước",
  "open_points": ["thời hạn giao hàng", "chính sách đổi trả"],
  "user_sentiment": "positive"
}

Có hai cách tiếp cận:

  • Extractive: Trích xuất các câu quan trọng từ conversation gốc, giữ nguyên wording.
  • Abstractive: Dùng AI (thường là model rẻ hơn như GPT-3.5 hoặc Gemini Flash) viết lại thành văn bản mới ngắn gọn hơn.

Sliding Window vs Semantic Pruning

Chiến lượcCơ chếKhi nào dùng
Sliding WindowFIFO — xóa tin cũ nhất khi đầyChat ngắn, không cần nhìn xa
Semantic PruningDùng vector similarity để tìm và xóa tin ít liên quan đến query hiện tại nhấtChat dài, nhiều topic
Hierarchical SummarizationTóm tắt theo chunk (mỗi 10 tin nhắn) rồi tóm tắt các bản tóm tắtConversation rất dài (100+ turns)

Ví dụ thực tế

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

Claude Code áp dụng chiến lược pruning tinh vi:

  • Rolling Context: 10-20 lượt gần nhất giữ nguyên raw format để giữ tính liên tục.
  • Working Memory: Các file đang sửa, tên biến quan trọng được extract vào một block riêng, không bị prune khi conversation dài ra.
  • Summarized History: Những gì đã làm xong (vd: "đã refactor module X, đã fix bug Y") được tóm tắt thành bullet points, prune toàn bộ diff cũ.

Kết quả: Dù conversation kéo dài 100 lượt, Claude vẫn nhớ bạn đang sửa file nào, nhưng không lưu chi tiết từng dòng code đã xóa từ 50 lượt trước.

Chatbot hỗ trợ khách hàng đa lượt

Một phiên support kéo dài 40 phút, 35 lượt hội thoại:

  • Lượt 1-20: Khách mô tả vấn đề, agent hỏi lại, troubleshoot cơ bản.
  • Pruning: Sau khi xác định root cause, 15 lượt đầu được tóm tắt thành: "Khách báo lỗi đăng nhập trên iOS 17, đã thử xóa cache không fix, nguyên nhân là token expired."
  • Lượt 21-35: Giữ nguyên vì đang đi sâu vào giải pháp kỹ thuật.

Cách này giữ context window luôn "fresh" với thông tin kỹ thuật mới nhất, nhưng không mất bối cảnh vấn đề ban đầu.

Code review assistant

AI assistant review PR dài 500 dòng thay đổi:

  • Pruning: Các hunk (đoạn diff) đã được addressed (tác giả đã reply "done") được xóa khỏi context.
  • Summarization: Các comment chưa resolve được tóm tắt thành checklist: "3 comments về naming convention, 1 về null safety chưa fix."
  • Giữ lại: Mô tả PR (cái người dùng viết lúc tạo PR) và các comment chưa trả lời.

Ứng dụng

Developer xây dựng chatbot

Dùng Semantic Pruning kết hợp với RAG: khi user chuyển topic đột ngột từ "hỏi về Python" sang "hỏi về Java", prune các tin nhắn Python không liên quan để giải phóng chỗ cho Java context mới, nhưng giữ lại tin nhắn hệ thống về format yêu cầu output.

Product Manager gom ý tưởng

Trong buổi brainstorming 2 tiếng với AI, áp dụng Hierarchical Summarization: mỗi 20 phút, tóm tắt các ý tưởng đã thảo luận thành "decision log", prune chi tiết đàm phán, chỉ giữ lại danh sách ưu tiên cập nhật.

Doanh nghiệp triển khai Multi-agent

Khi chuyển giao conversation từ Agent A (tiếp nhận) sang Agent B (kỹ thuật), không chuyển toàn bộ 50 tin nhắn thô. Thay vào đó, prune các lời chào hỏi xã giao, summarize thành structured handoff document chứa thông tin thiết yếu, tiết kiệm context window cho Agent B xử lý vấn đề kỹ thuật.

So sánh: Pruning vs Summarization

Tiêu chíContext PruningConversation Summarization
Mức độ xử lýLoại bỏ nguyên tin nhắnNén nhiều tin thành một
Thông tin mất mátCó thể mất chi tiết cụ thểCó thể mất nuance, context tinh tế
Chi phí tính toánThấp (rule-based hoặc heuristic)Cao (cần gọi thêm model để tóm tắt)
Độ trễReal-timeCó latency (async)
Use case lý tưởngXóa tin hệ thống, lọc noiseConversation dài, cần nắm bắt trend

Kết luận: Hai kỹ thuật này thường dùng kết hợp — Pruning để "dọn dẹp" nhanh giữa các lượt, Summarization để "nén" lịch sử cũ thành dạng lưu trữ lâu dài trong window.

Bài viết liên quan

Cùng cụm

Conversation Memory: Cách AI nhớ cuộc hội thoại

Hiểu cơ chế cơ bản của memory trước khi tối ưu bằng pruning

Short-term vs Long-term Memory trong AI

Phân biệt hai loại memory để áp dụng pruning phù hợp

Thiết kế kiến trúc Memory: Index, topic files, session transcripts

Xây dựng hệ thống memory bài bản với pruning tự động

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

Chiến lược tổng thể cho conversation vượt quá giới hạn context

Đọc tiếp

State & Session Management

Lên Level 2: Khi pruning trong context không đủ, cần quản lý state có chủ đích bên ngoài LLM

Harness Fundamentals

Xây dựng hệ thống AI agent toàn diện với Harness Engineering

On this page