Các bài trong khoáBài 10/38

38 bài

Domain 2: Claude Models, Prompting & Context Engineering·Task 2.4

Tối ưu context window và quản lý token

Những gì chiếm context window, chuyện gì xảy ra khi chạm giới hạn, cách đo token trước và sau khi gọi, và cách giảm token ở từng giai đoạn của một yêu cầu.

  • 6 phút đọc
  • Đối chiếu docs 02/11/2026
  • 7 nguồn

Đọc xong bạn nắm được

  • Kể được mọi thứ tính vào context window, kể cả phần đã cache và phần thinking
  • Phân biệt lỗi khi đầu vào quá dài với lúc câu trả lời bị dừng vì hết chỗ
  • Đo token trước khi gửi bằng token counting và sau khi gửi bằng các trường usage
  • Xếp các cách giảm token vào đúng giai đoạn chuẩn bị đầu vào, dựng prompt, xử lý đầu ra
  • Giảm phần context do tool chiếm, và giữ hội thoại dài trong giới hạn

Context window 1 triệu token nghe như không bao giờ hết. Nhưng mỗi token trong đó đều tốn tiền, làm chậm câu trả lời, và docs của Anthropic nói rõ: càng nhiều token thì độ chính xác và khả năng nhớ lại càng giảm. Nhồi càng nhiều càng tốt là sai.

Bài này giúp bạn trả lời: cái gì đang chiếm context, đo nó ra sao, và giảm ở chỗ nào mà không làm hỏng chất lượng?

Ví dụ xuyên suốt: trợ lý kỹ thuật của một hãng máy lạnh

Một hãng máy lạnh làm trợ lý cho kỹ thuật viên đi sửa máy tại nhà. Mỗi yêu cầu gửi kèm:

  • System prompt 6.000 token: quy trình an toàn điện, cách chẩn đoán, giọng văn.
  • 35 tool: tra mã lỗi, tra sơ đồ mạch, tra linh kiện tồn kho, đặt linh kiện, ghi biên bản...
  • Đoạn trích từ sổ tay sửa chữa dài 300 trang, truy xuất theo câu hỏi.
  • Cả lịch sử trò chuyện với kỹ thuật viên, có khi kéo dài cả buổi.

Hoá đơn API tăng nhanh, và những cuộc trò chuyện dài bắt đầu có câu trả lời lẫn lộn giữa hai máy khác nhau.

Cái gì chiếm context

Docs về context window liệt kê: mọi thứ trong yêu cầu đều tính, gồm system prompt, mọi tin nhắn trong messages (kể cả kết quả tool), và định nghĩa tool. Câu trả lời Claude sinh ra, kể cả phần thinking, cũng tính.

Ba điều hay bị hiểu sai:

Hiểu saiĐúng
Phần đã cache thì không chiếm chỗDocs nói phần prompt đã cache vẫn chiếm context window. Cache chỉ đổi giá bạn trả cho chúng
Context càng lớn càng tốtDocs gọi hiện tượng độ chính xác giảm khi token tăng là context rot
Định nghĩa tool không đáng kể35 tool gửi kèm mọi yêu cầu là một khoản lớn, cả về chỗ lẫn tiền

Các model hiện nay (Opus, Sonnet, Haiku 5.5, Fable 5.1) có context window 1 triệu token. Một số model cũ hơn vẫn là 200.000 token.

Khi chạm giới hạn

Có hai trường hợp khác nhau:

  • Riêng đầu vào đã vượt context window: API trả lỗi 400 invalid_request_error ("prompt is too long"), trên mọi model. Yêu cầu không chạy.
  • Đầu vào cộng max_tokens vượt context window: trên các model từ Claude 4.5 trở đi, yêu cầu vẫn chạy, và nếu câu trả lời dài tới mức hết chỗ thì dừng với stop_reason là model_context_window_exceeded.

Đo token trước và sau khi gửi

Trước khi gửi: endpoint token counting cho biết một yêu cầu có bao nhiêu token mà không phải gọi model. Docs nói dùng nó để quản lý giới hạn tốc độ và chi phí, chọn model theo độ dài, và tối ưu prompt về một độ dài nhất định. Đây là con số ước lượng, và tokenizer của các model từ Claude 4.7 trở đi cho số token nhiều hơn khoảng 30% với cùng một đoạn chữ, nên đếm lại theo đúng model sẽ dùng.

Sau khi gửi: đọc object usage trong phản hồi. Tổng token đầu vào là cache_read_input_tokens + cache_creation_input_tokens + input_tokens. Chỉ nhìn input_tokens sẽ thấy con số nhỏ bất thường khi đang dùng cache, vì nó chỉ đếm phần sau điểm cache cuối cùng.

Giảm token ở từng giai đoạn

Câu luyện thi chia các cách quản lý token theo giai đoạn của một yêu cầu. Cách chia này dễ nhớ:

Giai đoạnCách giảmTrong ví dụ
Chuẩn bị đầu vào (Input Preparation)Tóm tắt phần hội thoại cũ khi không cần đầy đủ nữa; cắt đoạn truy xuất chỉ còn phần liên quan tới câu hỏiBỏ chi tiết của máy đã sửa xong; chỉ lấy đoạn sổ tay về đúng mã lỗi
Dựng prompt (Prompt Construction)Xếp phần ổn định lên đầu để cache được; đưa nội dung lặp lại vào prefix cacheSystem prompt 6.000 token và định nghĩa tool đặt đầu, bật cache
Xử lý đầu ra (Output Handling)Kiểm đầu ra có cấu trúc đúng schema; lưu kết quả đã kiểm cho bước sau và cho kiểm toánKiểm biên bản sửa chữa trước khi ghi vào hệ thống

Phần context do tool chiếm

Docs về quản lý context của tool nói có hai nguồn: định nghĩa tool, và các kết quả tool tích luỹ dần. Bốn cách, mỗi cách nhắm một chỗ:

CáchGiảm gìKhi nào
Tool searchKhông gửi trước mọi định nghĩa tool, Claude tìm tool khi cầnBộ tool lớn, khoảng 20 tool trở lên; đổi lại thêm một lượt tra
Programmatic tool callingKết quả trung gian không vào lịch sử hội thoạiChuỗi nhiều lần gọi tool nhỏ chạy được thành một đoạn code
Prompt caching cho định nghĩa toolKhông giảm token, chỉ giảm tiền cho phần lặp lạiNên bật ngay từ đầu
Context editingXoá kết quả tool cũ đã dùng xong khỏi lịch sửHội thoại dài

Trợ lý máy lạnh có 35 tool: bật cache cho định nghĩa tool, rồi chuyển sang tool search để chỉ những tool hay dùng (tra mã lỗi, tra sơ đồ) luôn được nạp.

Hội thoại dài

Với hội thoại và agent chạy lâu, docs nói compaction phía server là cách chính để quản lý context: thay các lượt cũ bằng một bản tóm tắt do Claude viết, để hội thoại tiếp tục được. Context editing là cách nhắm hẹp hơn: xoá kết quả tool cũ hay khối thinking cũ. Với trợ lý máy lạnh, khi kỹ thuật viên chuyển sang máy thứ hai, tóm tắt phần về máy thứ nhất là cách tránh câu trả lời lẫn lộn hai máy.

Nguồn

  1. Exam Guide CCAR-P v1.0, Domain 2(mở tab mới)
  2. Context windows (Claude Docs)(mở tab mới)
  3. Token counting (Claude Docs)(mở tab mới)
  4. Manage tool context (Claude Docs)(mở tab mới)
  5. Compaction (Claude Docs)(mở tab mới)
  6. Context editing (Claude Docs)(mở tab mới)
  7. Prompt caching (Claude Docs)(mở tab mới)

Nắm rồi thì thử sức với đề

Xem khoá luyện thi
Tối ưu context window và quản lý token · Anthropic Exam Pro