Domain 5: Context Management & Reliability·Task 5.4
Quản lý context khi tìm hiểu codebase lớn
Dấu hiệu context quá tải khi khám phá codebase lớn, và cách xử lý bằng file ghi chú, subagent cho từng câu hỏi, tóm tắt giữa giai đoạn, manifest và /compact.
- 6 phút đọc
- Đối chiếu docs 02/11/2026
- 5 nguồn
Đọc xong bạn nắm được
- Nhận ra dấu hiệu context bị quá tải trong phiên khám phá dài
- Dùng file ghi chú để giữ các phát hiện quan trọng qua nhiều giai đoạn
- Giao từng câu hỏi cụ thể cho subagent, giữ agent chính lo phần tổng thể
- Tóm tắt giai đoạn trước rồi đưa bản tóm tắt cho subagent của giai đoạn sau
- Thiết kế khôi phục sau sự cố bằng manifest, và dùng /compact khi context đầy
Tìm hiểu một codebase lớn là việc đọc rất nhiều: mở file, lần theo import, chạy tìm kiếm. Mọi thứ đọc vào đều nằm lại trong context. Sau nửa tiếng, context đầy những nội dung file đã đọc qua, và chất lượng câu trả lời bắt đầu đi xuống.
Bài này giúp bạn trả lời: làm sao để một phiên khám phá dài vẫn giữ được những gì đã tìm ra, và không bị context quá tải?
Ví dụ xuyên suốt: phần mềm thư viện của một trường đại học
Bạn nhận bảo trì phần mềm quản lý thư viện của một trường đại học: hơn 900 file, viết từ mười năm trước. Việc được giao: hiểu luồng mượn, trả sách và tính phí trả trễ để sửa một lỗi tính phí sai.
Bạn dùng agent khám phá codebase. Sau khoảng 40 phút:
- Agent bắt đầu trả lời kiểu "thường thì hệ thống thư viện sẽ tính phí theo ngày", thay vì nhắc tới lớp
LoanPolicyvàFineCalculatornó đã đọc từ đầu. - Hỏi lại về cấu trúc module đã bàn, mỗi lần nó trả lời một kiểu.
- Máy bị khởi động lại giữa chừng, mọi thứ agent đã tìm hiểu mất sạch.
Dấu hiệu context bị quá tải
Vấn đề 1 và 2 là dấu hiệu quen thuộc: trong phiên dài, model bắt đầu trả lời không nhất quán và nhắc tới "các mẫu thông thường" (typical patterns) thay vì các lớp cụ thể đã tìm ra trước đó. Bài viết của Anthropic về context gọi hiện tượng này là context rot: số token trong context càng tăng, khả năng nhớ lại chính xác thông tin trong đó càng giảm.
Khi thấy dấu hiệu này, đừng cố hỏi tiếp với câu hỏi cụ thể hơn trong cùng context. Hãy dùng các cách dưới đây.
File ghi chú giữ phát hiện qua các giai đoạn
Cho agent ghi các phát hiện quan trọng ra một file ghi chú (scratchpad file), và đọc lại file đó khi trả lời câu hỏi sau:
# Ghi chú: luồng mượn trả
- Phí trả trễ tính ở FineCalculator.calculate() (src/circulation/fine.ts)
- Số ngày được mượn lấy từ LoanPolicy theo loại bạn đọc (sinh viên 14, giảng viên 30)
- Ngày nghỉ lễ đọc từ bảng holidays, nhưng chỉ khi gia hạn, lúc trả thì không trừFile nằm ngoài context, nên không bị mờ đi khi cuộc trò chuyện dài ra hay khi context được rút gọn. Bài viết của Anthropic về context cũng nêu cách ghi chú có cấu trúc này, như Claude Code lập danh sách việc cần làm hay agent tự duy trì một file NOTES.md.
Subagent cho từng câu hỏi cụ thể
Thay vì agent chính tự đọc mọi thứ, giao từng câu hỏi cụ thể cho một subagent:
- "Tìm mọi file test liên quan tới tính phí."
- "Lần theo luồng gia hạn sách: từ API tới chỗ ghi vào cơ sở dữ liệu."
Mỗi subagent đọc file trong context riêng và chỉ gửi về bản tóm tắt. Tài liệu Claude Code nói tool call của subagent không đi vào context của bạn, Claude chỉ nhận lại bản tóm tắt khi subagent xong. Agent chính giữ được bức tranh tổng thể và điều phối, không bị chôn trong chi tiết.
Khi chuyển giai đoạn, ví dụ xong phần mượn trả, sang phần tính phí: agent chính tóm tắt các phát hiện của giai đoạn trước, rồi đưa bản tóm tắt đó vào context ban đầu của subagent giai đoạn sau. Subagent mới có context sạch mà vẫn biết những gì đã tìm ra.
Khôi phục sau sự cố bằng manifest
Vấn đề 3 cần một thiết kế khác: mỗi agent định kỳ xuất trạng thái của mình (đã làm gì, tìm ra gì, còn lại gì) ra một chỗ cố định. Agent điều phối giữ một file manifest liệt kê các file trạng thái đó.
{
"giaiDoan": "tinh-phi",
"trangThai": ["state/muon-tra.json", "state/gia-han.json"],
"conLai": ["kiểm tra ngày nghỉ lễ khi trả sách"]
}Khi chạy lại sau sự cố, agent điều phối đọc manifest, nạp các file trạng thái và đưa phần liên quan vào prompt của từng agent. Không ai phải làm lại từ đầu. Bài viết của Anthropic về hệ thống nghiên cứu nhiều agent cũng kể họ dựng hệ thống để tiếp tục từ chỗ agent đang dừng khi có lỗi, vì chạy lại từ đầu vừa tốn kém vừa khó chịu cho người dùng.
Dùng /compact khi context đầy
Trong Claude Code, khi context đầy những kết quả khám phá dài, chạy /compact để rút gọn cuộc trò chuyện thành bản tóm tắt. Theo tài liệu Claude Code:
- Bản tóm tắt giữ các yêu cầu của bạn và những đoạn code chính, nhưng hướng dẫn chi tiết từ đầu cuộc trò chuyện có thể mất.
- Bạn có thể nói rõ cần giữ gì:
/compact tập trung vào luồng tính phí. - CLAUDE.md ở gốc dự án được nạp lại sau khi rút gọn, nên quy ước nào cần giữ lâu dài thì để trong CLAUDE.md.
- Claude Code cũng tự rút gọn khi context gần đầy.
/contextcho xem context đang bị chiếm bởi những gì.
Anthropic Exam Pro