Bỏ qua để vào nội dung chính
Claude Code hết usage nhanh: đọc /usage và chặn 8 nguồn rò token

Claude Code hết usage nhanh: đọc /usage và chặn 8 nguồn rò token

Bởi Daniel Foster
21 thg 10, 20267 phút đọc

Hướng dẫn cho dev VN: đo usage Claude Code bằng /usage và /context, khoanh vùng 8 nguyên nhân tốn token, rồi áp 7 đòn bẩy cắt chi phí.

Bạn hỏi Claude Code đúng một câu ngắn, nó trả lời trong ba giây, và session vẫn ngốn usage như thể bạn vừa refactor cả repo. Đến chiều thì limit tuần hết, trong khi nhìn lại khối lượng việc bạn gõ ra thì chẳng đáng.

Bài này đi theo đúng thứ tự nên làm: đo trước bằng /usage và /context, xác định nguyên nhân của riêng bạn, rồi mới áp dụng các đòn bẩy cắt token theo thứ tự trả về nhanh nhất.

Cơ chế tính tiền: mỗi request mang theo cả lịch sử

Gốc rễ nằm ở cách agent gửi request. Theo tài liệu chi phí của Anthropic: Claude Code gửi toàn bộ cuộc hội thoại kèm mỗi request, và mỗi vòng tool use lại gửi thêm một lần nữa cùng kết quả tool. Prompt caching đọc lại phần lịch sử đó ở mức giá cached rẻ hơn, nhưng "một câu hỏi một dòng ở cuối một session mở cả ngày vẫn tính theo toàn bộ cuộc hội thoại".

Từ đó hoá đơn có ba nguồn: mỗi request mang theo bao nhiêu context, context đó bị gửi lại ở giá đầy đủ bao nhiêu lần, và model viết ra bao nhiêu. Phần viết ra không rẻ — theo bảng giá hiện hành của Anthropic, output token có giá gấp năm lần mức input cơ bản với mọi model trong bảng, và extended thinking token được tính như output.

Bước 1: Đo trước khi sửa bất cứ thứ gì

Trên gói Pro, Max, Team hoặc Enterprise, /usage hiển thị limit của gói và bảng phân rã những gì đang trừ vào đó:

  • Attribution — usage gần đây quy cho skills, subagents, plugins và từng MCP server, mỗi thứ một tỉ lệ phần trăm.
  • Behavior flags — long context hoặc cache miss, được gắn cờ khi một nguyên nhân chiếm từ 10% usage gần đây trở lên, kèm gợi ý xử lý.
  • Loops — các /loop và scheduled task nặng nhất, xếp theo tổng token (có ở bản Claude Code mới).

Bấm d hoặc w để đổi giữa 24 giờ và 7 ngày gần nhất. Hai lưu ý quan trọng trước khi bạn kết luận: con số là ước lượng và lấy từ session history trên chính máy đó, nên usage từ máy khác hoặc từ claude.ai không nằm trong đó. Từ phiên bản v2.1.251, dòng Prompt cache (main) cho biết tỉ lệ input token được phục vụ từ cache, số lần miss, và khi xác định được thì cả nguyên nhân khả dĩ.

Chạy thêm /context để thấy cái gì đang lấp đầy context window trước cả khi bạn gõ chữ nào. Nếu bạn gọi API trực tiếp, số liệu nằm sẵn trong mỗi response: Anthropic trả về cache_creation_input_tokens, cache_read_input_tokens và input_tokens trong usage; OpenAI báo cached input ở usage.input_tokens_details.cached_tokens.

Bước 2: Tám nguyên nhân usage leo thang — tìm cái của bạn

Tài liệu liệt kê các nguyên nhân sau cho một session dài tiêu tốn nhiều hơn vẻ ngoài của nó. Đọc kèm bảng Attribution ở trên để khoanh vùng:

  1. Hội thoại dài bị đọc lại ở mỗi request. Xử lý: /clear khi chuyển sang việc không liên quan (dùng /rename trước và /resume sau nếu cần quay lại), và /compact kèm chỉ dẫn giữ lại những gì khi cần tính liên tục.
  2. Cache miss sau khi nghỉ. Tin nhắn đầu tiên sau một quãng nghỉ dài hơn cache lifetime sẽ miss cache và xử lý lại toàn bộ context ở giá đầy đủ. Xử lý: xong việc thì để đó, lần sau mở session mới thay vì resume một context khổng lồ.
  3. Scheduled task vẫn chạy. Một /loop hay task theo session vẫn nổ đúng chu kỳ ngay cả khi session đang idle, mỗi lần gửi full context. Xử lý: xem các dòng Loops trong /usage và tắt task bạn đã quên.
  4. Tin nhắn từ session khác của bạn. Message gửi tới một session đang idle sẽ mở turn mới kèm full context; setting crossSessionInbound đặt thành hold chặn việc giao message đến.
  5. Goal check-in. Bản mới giới hạn ba check-in mỗi goal giữa hai prompt; CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 tắt hẳn.
  6. Subagent và workflow. Mỗi subagent tự gửi request riêng chồng lên hội thoại chính.
  7. Agent team. Mỗi teammate giữ context window riêng và tiêu token cho tới khi thoát; tài liệu nói team dùng khoảng gấp bảy lần token của một session tiêu chuẩn khi teammate chạy ở plan mode.
  8. Compaction cũng là request lớn. /compact phải đọc hết hội thoại mà nó tóm tắt. Khi bạn muốn khởi đầu sạch chứ không cần tính liên tục, /clear không tốn gì.

Bước 3: Các đòn bẩy, theo thứ tự trả về nhanh nhất

Bảy đòn bẩy, xếp theo thứ tự thường trả về nhanh nhất: đo, cache, thu hẹp context, kiểm soát output, định tuyến model, batch, đặt ngân sách. Đo xong ở Bước 1 — phần còn lại:

Cache phải thật sự hit

Theo tài liệu prompt caching của Anthropic: cache read có giá 0.1x giá input cơ bản (0.05x trên Opus 5.5 và Sonnet 5.5), cache write loại 5 phút có giá 1.25x, và cache mặc định sống 5 phút, được làm mới miễn phí mỗi lần dùng. Claude Code tự cache giúp bạn. Nếu bạn tự dựng agent trên Anthropic API thì đặt nội dung ổn định lên trước và đánh dấu điểm kết thúc — câu hỏi kiểm tra: cache breakpoint đã nằm ở block cuối cùng giữ nguyên qua mọi request chưa?

Thu hẹp context

Token rẻ nhất là token bạn không gửi. Giữ CLAUDE.md ngắn — tài liệu gợi ý dưới 200 dòng và chuyển các chỉ dẫn theo workflow sang skills, vốn chỉ load khi được gọi. Tắt MCP server không dùng bằng /mcp; tài liệu nói thêm rằng CLI như gh vẫn tiết kiệm context hơn MCP server. Một hook có thể chỉ trả về các dòng test fail thay vì cả log. Và prompt cụ thể thắng prompt mơ hồ: "Improve this codebase" kích hoạt quét diện rộng, còn chỉ đích danh file và thay đổi thì không.

Kiểm soát output và định tuyến model

Vì output đắt hơn mỗi token, chỉnh ở đây cộng dồn nhanh. Với task đơn giản, tài liệu gợi ý hạ effort bằng /effort, hoặc tắt thinking trong /config trên model cho phép; model có thinking budget cố định thì dùng biến MAX_THINKING_TOKENS. Về định tuyến: tài liệu chi phí nói Sonnet xử lý tốt phần lớn task coding và rẻ hơn Opus — Opus để dành cho quyết định kiến trúc phức tạp và suy luận nhiều bước; subagent việc đơn giản thì đặt model: haiku. Ví dụ minh hoạ cấu hình subagent tìm kiếm codebase chạy model rẻ:

---
name: Explore
description: "Searches and reads the codebase to answer questions without making changes."
tools: Read, Grep, Glob
model: haiku
---

Batch và ngân sách chặn

Việc không cần trả lời ngay — chạy eval set, review một loạt file, sinh docs qua đêm — nên đi qua Message Batches API: giảm 50% so với giá tiêu chuẩn, phần lớn batch xong dưới một giờ, và chiết khấu batch cộng dồn được với chiết khấu caching. Cuối cùng là chặn trường hợp xấu nhất: với headless run, CLI dừng khi chi tiêu ước tính chạm ngưỡng.

claude -p --max-budget-usd 5.00 "Fix the failing tests in src/auth"

Hai giới hạn cần biết trước khi tin vào nó: cờ này chỉ hoạt động ở print mode, và nó đối chiếu với ước lượng phía client của chính Claude Code, không phải số liệu billing. Ở tầng trên, tài liệu liệt kê workspace spend limit trong Claude Console và spend limit theo organization, group hoặc member trên gói Team và Enterprise.

Việc cần làm tuần này

Thứ tự quan trọng hơn danh sách: đo trước, rồi sửa các đòn bẩy chạm vào mọi request — caching và context — sau đó mới tinh chỉnh phần còn lại. Nếu chạy nhiều session song song, nhớ rằng tất cả rút từ cùng một allowance, nên bốn session tiêu nhanh hơn một, và /usage tính theo máy chứ không theo session. Mở /usage, xem dòng nào vượt 10%, sửa đúng dòng đó.

Không spam, hủy đăng ký bất kỳ lúc nào.

Bài viết liên quan