Best Practices — Quản lý session
Context window là tài nguyên quý nhất. Học cách quản lý nó hiệu quả.
Context window — Tài nguyên quan trọng nhất
Mọi best practice đều xoay quanh một constraint: context window đầy nhanh, và performance giảm khi nó đầy.
Context window chứa toàn bộ conversation: mọi message, mọi file Claude đọc, mọi output của command. Một session debug hoặc explore codebase có thể tốn hàng chục ngàn token.
Khi context đầy → Claude “quên” instruction trước đó, mắc lỗi nhiều hơn.
💡 Tip: Theo dõi context usage liên tục bằng custom status line.
Course-correct sớm và thường xuyên
Kết quả tốt nhất đến từ feedback loop chặt. Sửa Claude ngay khi thấy nó đi lệch.
| Phím/Lệnh | Tác dụng |
|---|---|
Esc | Dừng Claude giữa chừng. Context giữ nguyên, bạn redirect |
Esc + Esc hoặc /rewind | Mở rewind menu, khôi phục conversation + code về checkpoint trước |
"Undo that" | Claude revert thay đổi vừa làm |
/clear | Reset context hoàn toàn. Dùng giữa các task không liên quan |
⚠️ Lưu ý: Nếu đã sửa Claude hơn 2 lần cùng một issue → context đầy failed approaches. Chạy
/clearvà viết prompt mới cụ thể hơn, incorporate những gì đã học. Session sạch + prompt tốt hơn luôn hiệu quả hơn session dài đầy corrections.
Quản lý context chủ động
Claude tự compact conversation khi gần hết context. Nhưng bạn nên chủ động hơn:
/clear— dùng thường xuyên giữa các task. Đây là thao tác quan trọng nhất/compact <instructions>— compact với hướng dẫn, ví dụ/compact Focus on the API changesEsc + Esc→ Summarize from here — compact một phần conversation, giữ nguyên context trước đó/btw— hỏi nhanh không cần lưu vào context. Câu trả lời hiện overlay rồi biến mất
Cấu hình compaction trong CLAUDE.md:
When compacting, always preserve the full list of modified files
and any test commands.
Dùng subagents để investigate
Context là constraint chính → subagents là tool mạnh nhất. Khi Claude research codebase, nó đọc rất nhiều file, tất cả tốn context. Subagents chạy trong context window riêng và báo cáo lại summary.
Dùng subagents để investigate cách auth system handle token refresh,
và kiểm tra mình có sẵn OAuth utilities nào có thể reuse không.
Subagent explore codebase, đọc files liên quan, báo lại findings — không làm bẩn main conversation.
Cũng dùng subagents để verify sau khi Claude implement:
dùng subagent review code này, tìm edge cases
💡 Tip: Nghĩ về subagents như việc giao research cho junior. Họ đọc hết tài liệu, bạn chỉ nhận kết quả tóm tắt.
Checkpoint và Rewind
Mọi action Claude tạo đều có checkpoint. Bạn có thể khôi phục conversation, code, hoặc cả hai về bất kỳ checkpoint nào.
Nhấn Esc + Esc hoặc /rewind:
- Khôi phục chỉ conversation
- Khôi phục chỉ code
- Khôi phục cả hai
- Tóm tắt từ một message được chọn
Thay vì lên kế hoạch cẩn thận, bạn có thể bảo Claude thử cách risky. Không được? Rewind và thử cách khác. Checkpoints persist qua sessions — đóng terminal vẫn rewind được.
⚠️ Lưu ý: Checkpoints chỉ track thay đổi Claude tạo, không phải external processes. Đây không phải thay thế cho git.
Resume conversations
Claude Code lưu conversations locally. Khi task trải qua nhiều sessions, không cần giải thích lại:
claude --continue # Resume session gần nhất
claude --resume # Chọn từ danh sách sessions gần đây
Dùng /rename đặt tên session mô tả: "oauth-migration", "debugging-memory-leak". Coi sessions như branches — mỗi workstream có context riêng, persistent.
Hỏi codebase như hỏi senior engineer
Khi onboard codebase mới, dùng Claude Code để học:
- Logging hoạt động thế nào trong project này?
- Muốn tạo API endpoint mới thì làm sao?
async move { ... }ở dòng 134 củafoo.rslàm gì?CustomerOnboardingFlowImplhandle những edge cases nào?- Tại sao code gọi
foo()thay vìbar()ở dòng 333?
Không cần prompt đặc biệt. Hỏi thẳng như hỏi đồng nghiệp. Giảm thời gian ramp-up, giảm tải cho team.