Claude CodeTokenChi phí

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.

Vinclair StudioCập nhật Đăng 4 nguồn được dẫn

Nhân vật Vinclair đổ đồng xu vàng qua phễu vào heo đất, cạnh logo Claude và Anthropic
Phần 1 · Hiểu chi phí

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.

Lập trình viên cắt ngắn những cuộn log dài tràn ra từ chiếc ba lô có logo Claude
Ngữ cảnh giống một chiếc ba lô: mỗi cuộn log bạn nhét vào đều được mang theo ở các lượt sau, nên cắt bớt log thường lợi hơn viết câu hỏi ngắn.

Vì vậy, trước khi đổi gì, mình luôn xem số trước:

  • /context cho biết ngữ cảnh hiện tại đang bị chiếm bởi những gì.
  • /usage cho 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ì.
Phần 2 · Miễn phí

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

  • /clear khi 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 /rename trước khi clear nếu muốn quay lại bằng /resume.
  • /compact kè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ư gh thay 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.md gọ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 PreToolUse sử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.
Phần 3 · Công cụ ngoài

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.
caveman−65% token · quảng cáo−8,5% token output · đo thậtrtk−60–90% · README hứa+7,6% chi phí · đo thật, effort thấpcaveman−65% token · quảng cáo−8,5% token output · đo thậtrtk−60–90% · README hứa+7,6% chi phí · đo thật, effort thấp
Hình 1. Thanh xám là con số công cụ tự quảng cáo, thanh màu là con số JetBrains đo được. rtk tăng chi phí, không giảm.

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ú
rtkViết lại lệnh shell để output gọn hơnPhép đo JetBrains ở trên
cavemanBắt model trả lời cụt hơnPhép đo JetBrains ở trên; telemetry bật mặc định
context-modeGiữ output lớn ngoài ngữ cảnh, chỉ trả phần cầnMì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-hudHiện mức dùng ngữ cảnh trên thanh trạng tháiKhông giảm token; giúp bạn biết lúc nào nên /clear
Phần 4 · Làm theo

Thứ tự mình đề nghị

◎BƯỚC 1Đo/context, /usage✓BƯỚC 2Dọn ngữ cảnhMCP, CLAUDE.md, /clear⚓BƯỚC 3Hook cắt outputlệnh ồn nhất!BƯỚC 4Công cụ ngoàithử trên nhánh, đo lại◎BƯỚC 1Đo/context, /usage✓BƯỚC 2Dọn ngữ cảnhMCP, CLAUDE.md, /clear⚓BƯỚC 3Hook cắt outputlệnh ồn nhất!BƯỚC 4Công cụ ngoàithử trên nhánh, đo lại
Hình 2. Bốn bước, rẻ nhất trước. Chỉ sang bước 4 khi ba bước đầu chưa đủ.
  1. Biết token đi đâu

    Xem /context, /usage và ccusage.

  2. Dọn ngữ cảnh

    Tắt MCP không dùng, rút gọn CLAUDE.md, dùng /clear giữa các việc.

  3. 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ậtTerminal so sánh output đầy đủ của bộ test, 39 dòng 3137 ký tự, với bản lọc chỉ còn 3 dòng 29 ký 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|fail cò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òng not ok.
  4. 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í.

Nhớ 4 điều

Điểm mấu chốt

Chia sẻ lên Threads
  1. 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.
  2. 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.
  3. 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.
  4. Đ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

Tất cả hướng dẫn →