Thariq on X: "Using Claude Code: Session Management & 1M Context" / X
TL;DR
Cửa sổ context 1 triệu token của Claude Code mạnh mẽ lắm, giúp AI chạy lâu và đáng tin cậy hơn. Nhưng nó cũng là “con dao hai lưỡi” nếu mình hông chủ động quản lý session, dễ bị “context rot” làm AI bị “lú”. Bài này chia sẻ các chiến thuật thực tế để giữ Claude Code luôn “tỉnh táo” và làm việc hiệu quả nhất.
Nói đơn giản: Giống như mình đang dẫn dắt một dev junior siêu giỏi nhưng dễ bị phân tâm. Mình phải biết khi nào nên hướng dẫn lại, khi nào nên cho nó làm task riêng, và khi nào nên tóm tắt công việc giùm nó.
Tổng quan
Claude Code giờ có cửa sổ context lên đến 1 triệu token. Nghe thì “bá đạo” đó, nhưng nó lại là một thử thách mới cho anh em dev. Cái context window này là tất cả những gì AI “thấy” được: prompt, lịch sử chat, các lệnh tool đã chạy, file đã đọc… Nó giúp Claude Code làm những task dài hơi hơn, như build hẳn một app full-stack.
Tuy nhiên, khi context càng dài, hiệu suất của AI có thể giảm, gọi là “context rot”. Giống như mình đọc quá nhiều thông tin hông liên quan, đầu óc cũng bị “loãng” vậy. Claude Code có thể bắt đầu “lú” khi context lên khoảng 300-400k token, tùy task.
Bài này đi sâu vào các chiến thuật quản lý session để mình chủ động kiểm soát context, giữ cho Claude Code luôn tập trung và thông minh. Hông phải cứ để nó tự chạy là xong đâu nha.
Xài vào việc gì?
Đang debug một bug phức tạp, Claude Code đi sai hướng Chạy /rewind (hoặc nhấn Esc hai lần) để quay lại điểm trước khi Claude Code bắt đầu sai. Sau đó, re-prompt với thông tin mới mình vừa học được (“Đừng dùng cách A, module foo hông expose cái đó – đi thẳng qua cách B đi”). Thay vì để nó lún sâu vào đường cụt, mình kéo nó về lại và chỉ đường đúng.
Build một tính năng lớn, cần Claude Code làm nhiều bước nhỏ Khi Claude Code vừa hoàn thành một phần việc (ví dụ: tạo cấu trúc file), nhưng mình muốn nó chuyển sang một task con khác (ví dụ: viết test cho phần đó) mà hông cần toàn bộ lịch sử chat chi tiết. Chạy /compact để nó tự tóm tắt session, hoặc /clear để mình tự viết lại tóm tắt và bắt đầu một session mới gọn gàng hơn.
Cần Claude Code đọc một codebase lớn để hiểu luồng auth rồi implement lại Dùng subagents. Mình bảo Claude Code “Spin off một subagent để đọc codebase này và tóm tắt cách nó implement luồng auth, rồi implement y chang vậy”. Subagent sẽ có context riêng, làm việc độc lập rồi chỉ trả về kết quả cuối cùng cho session chính. Giúp session chính hông bị “ô nhiễm” bởi quá nhiều output trung gian.
Viết tài liệu cho một feature vừa mới implement xong Tiếp tục session cũ. Vì Claude Code vừa làm xong feature đó, nó có đầy đủ context về các file và logic. Việc này sẽ nhanh và tiết kiệm chi phí hơn là bắt đầu session mới và bắt nó đọc lại từ đầu. Tuy nhiên, nếu session đã quá dài, cân nhắc /compact để giữ context gọn gàng nhưng vẫn đủ thông tin cần thiết.
Các điểm chính
- 1M context window là con dao hai lưỡi: Nó mạnh mẽ thật, nhưng nếu hông quản lý tốt, context dễ bị “ô nhiễm” (context pollution) và dẫn đến “context rot”, làm giảm hiệu suất của Claude Code.
- “Context rot” làm AI bị “lú”: Dù chưa hết 1 triệu token, Claude Code vẫn có thể hoạt động kém thông minh hơn khi context trở nên quá dài và chứa nhiều thông tin hông liên quan. Mình cần chủ động can thiệp.
- Quản lý session quan trọng hơn bao giờ hết: Hông phải cứ để Claude Code tự chạy là xong. Mình cần biết khi nào nên tiếp tục, khi nào nên quay lại, khi nào nên tóm tắt, và khi nào nên bắt đầu lại.
- Thói quen vàng: Dùng /rewind để sửa lỗi hiệu quả: Thay vì chỉ nói “cái đó sai rồi, thử cách khác đi”, hãy dùng /rewind để quay lại điểm mà Claude Code bắt đầu đi chệch hướng, rồi re-prompt với hướng dẫn rõ ràng hơn.
- /Compact và /clear có mục đích khác nhau: /compact là để Claude Code tự tóm tắt lịch sử chat (nhanh nhưng có thể mất thông tin quan trọng). /clear là mình tự viết tóm tắt và bắt đầu lại từ đầu (tốn công hơn nhưng context chính xác theo ý mình).
- Tránh “bad compact” bằng cách chủ động: Khi Claude Code tự động compact, nó có thể bỏ sót thông tin quan trọng nếu hông đoán được ý mình. Hãy chủ động dùng /compact với hướng dẫn cụ thể về những gì mình muốn nó tập trung.
- Subagents giúp cô lập task con: Khi một task phụ tạo ra nhiều output trung gian mà mình hông cần giữ lại trong session chính, hãy dùng subagents. Chúng sẽ có context riêng, làm việc xong chỉ trả về kết quả cuối cùng.
- Quy tắc chung: Bắt đầu task mới, bắt đầu session mới: Để giữ context luôn sạch sẽ và tập trung, hãy cân nhắc bắt đầu một session mới mỗi khi mình chuyển sang một task hoàn toàn khác.
Quick Start
- Làm ngay tuần này: Khi Claude Code đưa ra một giải pháp hông đúng hoặc đi sai hướng trong quá trình debug, đừng chỉ prompt lại. Hãy thử dùng /rewind (nhấn Esc hai lần) để quay lại điểm trước đó và re-prompt với hướng dẫn chính xác hơn.
- Bước tiếp: Khi một session bắt đầu dài (khoảng 10-15 lượt chat) hoặc khi bạn muốn chuyển sang một task con hơi khác, hãy thử dùng /compact để Claude Code tóm tắt lại. Hoặc nếu bạn muốn kiểm soát hoàn toàn context, dùng /clear và tự viết tóm tắt.
- Thói quen duy trì: Khi bắt đầu một dự án hay một tính năng mới hoàn toàn, hãy tạo thói quen bắt đầu một session Claude Code mới. Việc này giúp Claude Code luôn có một “tấm bảng trắng” sạch sẽ để làm việc hiệu quả nhất.
FAQ
Context rot là gì? Context rot là hiện tượng hiệu suất của mô hình AI giảm dần khi cửa sổ context (lịch sử trò chuyện và thông tin) trở nên quá dài và chứa nhiều nội dung hông liên quan, khiến AI bị phân tâm và kém thông minh hơn.
Khi nào nên dùng /rewind thay vì chỉ tiếp tục prompt? Nên dùng /rewind khi Claude Code đã đi sai hướng hoặc đưa ra một giải pháp hông hiệu quả. Quay lại điểm trước khi sai giúp mình cung cấp hướng dẫn mới một cách hiệu quả hơn, thay vì để AI tiếp tục xây dựng trên một nền tảng sai lầm.
Sự khác biệt giữa /compact và /clear là gì? /compact là để Claude Code tự tóm tắt session hiện tại, thay thế lịch sử chat bằng bản tóm tắt đó. Còn /clear là mình tự viết một bản tóm tắt ngắn gọn về công việc đang làm và bắt đầu một session hoàn toàn mới, giữ cho context sạch sẽ theo ý mình.
Subagents giúp gì trong việc quản lý context? Subagents giúp cô lập các task con mà có thể tạo ra nhiều output trung gian hông cần thiết cho session chính. Chúng có context riêng, làm việc độc lập và chỉ trả về kết quả cuối cùng, giúp session chính hông bị “ô nhiễm” bởi thông tin thừa.
Có cần phải luôn bắt đầu session mới cho mỗi task không? Quy tắc chung là “khi bắt đầu một task mới, hãy bắt đầu một session mới” để giữ context sạch. Tuy nhiên, có những trường hợp (như viết tài liệu cho code vừa làm) mà việc tiếp tục session cũ có thể hiệu quả hơn vì AI đã có sẵn context liên quan. Cần cân nhắc mức độ liên quan của task mới với context hiện tại.
Đang tải nội dung...