Chuyển tới nội dung chính

Hiểu về cơ chế Context và quản lý Session trong Claude Code

Nếu bạn đã sử dụng Claude Code một thời gian, hẳn bạn đã nhận thấy điều này: session càng chạy lâu, phản hồi càng chậm. Không phải vì AI suy giảm hiệu năng — vấn đề thực sự là context phình to. Đây là những gì đang diễn ra bên dưới, và bạn có thể làm gì với nó.

1. "Context" thực sự có nghĩa là gì

Trong ngôn ngữ AI, context đơn giản là tập hợp thông tin mà mô hình có để làm việc khi trả lời yêu cầu của bạn. Các LLM hiện nay là dịch vụ dùng chung không trạng thái — chúng không duy trì bất kỳ bộ nhớ tích hợp nào về bạn hay dự án của bạn giữa các lần gọi.

Điều này có nghĩa gì trong thực tế: mỗi lần bạn gửi tin nhắn, Claude Code phải đóng gói yêu cầu hiện tại cùng toàn bộ lịch sử hội thoại và gửi tất cả đến mô hình. Lịch sử càng dài, mỗi payload càng nặng.

Hãy tưởng tượng như một hồ sơ tài liệu. Mỗi tin nhắn bạn gửi giống như đưa cho một chuyên gia một cặp hồ sơ đầy tài liệu nền tảng. Đầu session, cặp hồ sơ mỏng và dễ duyệt. Nhưng nếu bạn nhảy qua nhảy lại giữa các chủ đề không liên quan — refactor backend, chỉnh frontend, debug một lỗi CSS — cặp hồ sơ đó trở thành một mớ hỗn độn. Chuyên gia chậm lại và bắt đầu mắc lỗi, không phải vì họ kém, mà vì bạn đưa cho họ một bộ hồ sơ bừa bãi.

2. Tại sao chỉ nén context không đủ

Claude Code đi kèm tính năng nén context tự động: khi lịch sử vượt quá ngưỡng, hệ thống tóm tắt các điểm chính và loại bỏ trùng lặp tham chiếu file. Hữu ích, nhưng có giới hạn rõ ràng:

  • Tốn kém. Quá trình nén thường tiêu tốn 20% hoặc hơn ngân sách input token. Với một codebase lớn, đó là một khoản thời gian và chi phí đáng kể dành cho việc tóm tắt thay vì công việc thực tế.
  • Phỏng đoán sai khi chuyển hướng. Tính năng nén dự đoán điều gì liên quan dựa trên những gì đã xảy ra trước đó — đó không phải là một chuyển đổi context thực sự. Nếu bạn đột ngột chuyển sang một tác vụ hoàn toàn khác giữa session (ví dụ: từ viết lại API routes sang căn chỉnh nút bấm), bản tóm tắt nén vẫn kéo theo những giả định cũ, và mô hình bị rối.

3. Giải pháp: Một tác vụ, một session

Nguyên tắc cực kỳ đơn giản: giao cho AI một việc tại một thời điểm. Deep Code giúp bạn thực hiện điều này với hai lệnh:

Nhập lệnh /clear để bắt đầu tác vụ mới
  • /clear — Bắt đầu lại từ đầu. Lệnh này xóa cuộc hội thoại hiện tại và mở một session mới. Không còn lịch sử cũ, không còn tham chiếu file lỗi thời — AI tập trung hoàn toàn vào những gì đang ở trước mặt.
Nhập lệnh /resume để liệt kê các session trước đó
  • /resume — Tiếp tục từ nơi bạn đã dừng lại. Cần quay lại session refactor hôm qua? /resume liệt kê tất cả các session trước đây của dự án, mỗi session được gắn một dòng tóm tắt. Dùng phím mũi tên để duyệt danh sách, nhấn Enter để chọn session bạn muốn, hoặc nhấn ESC để thoát.

Tóm tắt

Đây là những gì chúng ta đã đề cập:

  • Context là lịch sử hội thoại của bạn — và nó được gửi đến mô hình với mỗi tin nhắn. Session càng dài, payload càng nặng và phản hồi càng chậm.
  • Nén tự động giúp ích, nhưng không phải là giải pháp triệt để. Nó tiêu tốn token cho việc tóm tắt và gặp khó khăn khi bạn chuyển tác vụ giữa chừng.
  • Giải pháp rất đơn giản: một tác vụ, một session. Dùng /clear để xóa sạch và bắt đầu lại. Dùng /resume để quay lại session trước đó khi bạn cần tiếp tục từ nơi đã dừng.

Nói vậy, /resume vẫn có những điểm hạn chế — bạn chỉ có một dòng tóm tắt cho mỗi session, không thể duyệt nội dung hội thoại trước khi khôi phục, và việc chuyển đổi giữa các session còn lỉnh kỉnh. Nếu bạn thấy mình đang vật lộn với những giới hạn này, hãy thử panel Task History, một giao diện trực quan cho phép bạn duyệt toàn bộ lịch sử hội thoại, sao chép tin nhắn, và chuyển tác vụ chỉ bằng một cú nhấp chuột.