Tiết Kiệm Token Claude Code: Dùng Cách Chính Thức trước, Đo rồi mới Cài Công Cụ
Một skill quảng cáo giảm 65% token, phép đo độc lập ra 8,5%. Bài này đi từ các cách Anthropic đã ghi trong tài liệu đến công cụ ngoài, và chỉ dùng con số có nguồn.

Token của bạn đang đi đâu
Trước khi tìm cách cắt, mình nghĩ cần hiểu token thực sự đi đâu. Mỗi lượt, Claude Code gửi lại ngữ cảnh của phiên: lời nhắn hệ thống, CLAUDE.md, tên công cụ của các máy chủ MCP đang bật, lịch sử hội thoại và mọi output lệnh đã chạy. Một lệnh in vài nghìn dòng log sẽ nằm trong ngữ cảnh và đi theo các lượt sau.
Để đỡ phần nào chi phí đó, Claude Code có sẵn hai cơ chế: prompt caching (phần lặp lại được tính rẻ hơn) và tự nén hội thoại khi gần đầy ngữ cảnh. Nhưng ngữ cảnh càng lớn thì càng tốn, nên cách tiết kiệm hiệu quả nhất thường không phải viết câu hỏi ngắn hơn, mà là để ít thứ thừa lọt vào ngữ cảnh hơn.

Vì vậy, trước khi đổi gì, mình luôn xem số trước:
/contextcho biết ngữ cảnh hiện tại đang bị chiếm bởi những gì./usagecho biết mức dùng. Trên các gói Pro, Max, Ultra, Team và Enterprise, nó còn chia phần dùng theo skill, subagent, plugin và từng máy chủ MCP, kèm gợi ý cần sửa gì.
Các cách có sẵn trong Claude Code, không tốn gì
Khi đã biết token đi đâu, mình bắt đầu từ những cách miễn phí mà tài liệu chi phí của Claude Code đã ghi sẵn:
Dọn ngữ cảnh
/clearkhi chuyển sang việc khác. Ngữ cảnh của việc cũ không giúp gì cho việc mới mà vẫn bị gửi lại mỗi lượt. Đặt tên phiên bằng/renametrước khi clear nếu muốn quay lại bằng/resume./compactkèm hướng dẫn khi phiên dài nhưng chưa xong, ví dụ/compact giữ lại danh sách file đã sửa và lỗi còn mở.- Tắt máy chủ MCP không dùng bằng
/mcp. Định nghĩa chi tiết của công cụ MCP được hoãn đến khi dùng, nhưng tên công cụ và hướng dẫn của mỗi máy chủ đang bật vẫn nằm trong ngữ cảnh. - Ưu tiên công cụ dòng lệnh như
ghthay cho máy chủ MCP làm cùng việc. Tài liệu ghi rõ công cụ dòng lệnh vẫn gọn ngữ cảnh hơn vì không thêm danh sách công cụ. - Giữ
CLAUDE.mdgọn. File này được nạp ở mỗi phiên. Hướng dẫn chỉ dùng cho một loại việc (review PR, migration database) nên chuyển thành skill, vì skill chỉ nạp khi cần.
Chọn model và mức suy nghĩ hợp với việc
Dọn ngữ cảnh xong, việc tiếp theo là chọn đúng model. Tài liệu gợi ý Sonnet cho phần lớn việc code, để Opus cho quyết định kiến trúc phức tạp. Token suy nghĩ được tính như token output, nên hạ mức effort bằng /effort cho việc đơn giản cũng giảm chi phí.
Đẩy output dài ra khỏi phiên chính
- Giao việc in nhiều output cho subagent, để chỉ phần tóm tắt quay về phiên chính. Subagent vẫn tiêu token của chính nó; có thể cho subagent dùng model nhỏ hơn.
- Dùng hook để cắt output trước khi Claude đọc. Tài liệu có ví dụ hook
PreToolUsesửa lệnh chạy test để chỉ in phần thất bại, và nói một hook lọc log có thể đưa ngữ cảnh từ hàng chục nghìn token xuống hàng trăm. Cách viết hook có trong bài Claude Code hooks.
Công cụ ngoài: đọc phép đo, đừng đọc quảng cáo
Con số quảng cáo và con số đo thật
Chỉ khi các cách miễn phí đã dùng hết, mình mới nhìn sang công cụ ngoài, và lúc đó mình đọc phép đo chứ không đọc quảng cáo. JetBrains đã đo hai công cụ phổ biến trên 80+ cặp tác vụ lập trình thật, mỗi cặp có và không có công cụ:
- caveman (bắt model trả lời cụt): quảng cáo giảm 65% token. Phép đo cho thấy giảm 8,5% token output, và đó là mức trần khi ép skill luôn bật. Con số 65% đến từ hỏi đáp dạng chat; trong phiên agent, phần lớn token là code và lời gọi công cụ, thứ skill này cố ý giữ nguyên.
- rtk (viết lại lệnh shell để output gọn hơn): README hứa giảm 60–90%. Phép đo cho thấy chi phí mỗi tác vụ tăng trung vị 7,6% ở mức effort thấp, và gần như không đổi ở mức effort cao.
Khi công cụ làm chi phí tăng
Điều làm mình chú ý nhất là: trong cùng các lần chạy, bộ đếm rtk gain của chính rtk báo đã tiết kiệm 96,2 triệu token, trong khi hóa đơn đo được lại tăng. Issue #582 trên repo rtk cũng báo chi phí tăng.
Mình vẫn theo dõi các công cụ này trong hub, mỗi trang ghi phiên bản, giấy phép và các phép đo độc lập tìm được:
| Công cụ | Làm gì | Ghi chú |
|---|---|---|
| rtk | Viết lại lệnh shell để output gọn hơn | Phép đo JetBrains ở trên |
| caveman | Bắt model trả lời cụt hơn | Phép đo JetBrains ở trên; telemetry bật mặc định |
| context-mode | Giữ output lớn ngoài ngữ cảnh, chỉ trả phần cần | Mình chưa tìm thấy phép đo độc lập |
| ccusage | Đọc log local để báo token và chi phí | Không giảm token; giúp bạn biết token đi đâu |
| claude-hud | Hiện mức dùng ngữ cảnh trên thanh trạng thái | Không giảm token; giúp bạn biết lúc nào nên /clear |
Thứ tự mình đề nghị
Biết token đi đâu
Xem
/context,/usagevà ccusage.Dọn ngữ cảnh
Tắt MCP không dùng, rút gọn
CLAUDE.md, dùng/cleargiữa các việc.Cắt output của lệnh ồn nhất
Thêm hook cắt output cho lệnh ồn nhất của bạn, thường là test hoặc build.
Ảnh chụp thật
Mình thử trên bộ test của chính site này ngày 01/11/2026: output đầy đủ 39 dòng, 3.137 ký tự; lọc theo tests|pass|failcòn 3 dòng. Đây là số ký tự, không phải số token, và khi có test lỗi bạn cần giữ thêm dòngnot ok.Chỉ khi chưa đủ: thử công cụ ngoài và đo
Thử trên một nhánh, đo trước và sau, rồi mới giữ lại. Chạy mỗi bên nhiều lần: JetBrains ghi nhận hai lần chạy giống hệt nhau đã chênh trung vị 22% chi phí.
- Quảng cáo 65%, đo thật 8,5%: caveman chỉ giảm 8,5% token output trong phép đo của JetBrains.
- Output ngắn hơn không chắc hóa đơn nhỏ hơn: rtk làm chi phí tăng 7,6% ở mức effort thấp.
- Cách rẻ nhất là để ít thứ thừa vào ngữ cảnh: /clear, tắt MCP không dùng, CLAUDE.md gọn.
- Đo mỗi bên nhiều lần: hai lần chạy giống hệt nhau đã chênh 22% chi phí.
Đọc tiếp
Claude CodeClaude Code + Remotion: Từ Prompt ra Video MP4Remotion biến component React thành video, Claude Code viết và sửa nó bằng chat. Quy trình 4 cấp độ, cách chọn phong cách và 9 lỗi cần kiểm trước khi render.→
Claude CodeHook Claude Code: Vì Sao Exit 1 Không Chặn ĐượcHook PreToolUse chặn rm -rf trước khi Claude Code chạy. Cấu hình, script Node đã thử với 12 lệnh mẫu, và 3 hiểu lầm làm hook tưởng chặn mà không chặn.→
Next.jsTăng Tốc Next.js: Lighthouse Mobile 58 lên 71Những gì đã làm trên một site Next.js static export: LCP từ 8,3s còn 5,4s, trang nhẹ từ 1.129 KiB còn 604 KiB. Cả thay đổi có ích lẫn thay đổi làm trang tệ đi.→