Tháng đầu tiên dùng Claude Code cho dự án Kotlin Multiplatform, tôi tốn $340. Tháng thứ hai? $127. Cùng dự án. Cùng tốc độ. Cùng chất lượng output. Sự khác biệt là hiểu được token thực sự đi đâu — và chặn ngay nguồn lãng phí.

Đây không phải chuyện dùng Claude Code ít hơn. Mà là dùng thông minh hơn. Sau đây là những chiến lược tạo nên sự khác biệt, kèm số liệu thật từ workflow của tôi.


Chi Phí Ẩn: Context Window Phình To

Yếu tố tốn kém nhất không phải số prompt bạn gửi. Mà là lượng context bạn mang theo trong mỗi prompt. Mỗi message trong phiên Claude Code đều bao gồm toàn bộ lịch sử hội thoại. Đến message thứ 30, bạn đang gửi 30 exchange trước đó cộng thêm prompt mới — và trả tiền cho mỗi token.

Tôi theo dõi các phiên làm việc trong một tuần. Pattern rất rõ:

Độ dài phiênChi phí TB/PromptTổng chi phí phiên
1-10 messages$0.08$0.50
11-25 messages$0.35$6.50
26-50 messages$0.90$28.00
50+ messages$1.80$72.00+

Chi phí mỗi prompt tăng theo cấp số nhân vì context tích lũy. Một phiên 50 message không tốn gấp 5 phiên 10 message — nó tốn gấp 50 lần hoặc hơn.


Chiến Lược 1: Quy Tắc 15 Message

Giờ tôi bắt đầu phiên mới sau mỗi 15 message. Không ngoại lệ. Trước khi reset, tôi viết tóm tắt nhanh những gì đã làm và bước tiếp theo. Rồi bắt đầu phiên mới với prompt tập trung.

Trước: Một phiên marathon (47 messages) → $34
Sau: Ba phiên tập trung (15+15+12) → $9

Lệnh /compact cũng hữu ích — nó nén context khi quá dài. Nhưng bắt đầu phiên mới còn tốt hơn vì bạn được đặt lại vấn đề chỉ với context liên quan.

Workflow:

  1. Làm việc khoảng 15 message
  2. Chạy /cost để kiểm tra chi phí
  3. Nếu context đang nặng, ghi chú tiến độ
  4. Bắt đầu phiên mới với prompt tập trung chỉ gồm những gì cần thiết

Chiến Lược 2: Ngừng Dump Cả File

Đây là thói quen tệ nhất của tôi. Tôi hay nói “đọc file này” rồi paste 500 dòng. Claude Code đọc hết, đốt token vào imports, boilerplate, và code không liên quan gì đến câu hỏi.

Trước:

"Đọc src/shared/data/repository/UserRepository.kt và sửa bug caching"

Gửi toàn bộ file 400 dòng vào context. Claude đọc hết, nhưng 350 dòng không liên quan.

Sau:

"Trong src/shared/data/repository/UserRepository.kt, hàm getCachedUser()
(khoảng dòng 45-60) trả về data cũ khi cache TTL hết hạn.
Vấn đề nằm ở phần so sánh timestamp. Sửa logic cache invalidation."

Claude biết chính xác cần xem đâu. Response nhanh hơn, rẻ hơn, và chính xác hơn.

Tiết kiệm: Giảm ~40% input token cho mỗi task edit file.


Chiến Lược 3: Dùng One-Shot Mode Cho Task Đơn Giản

Interactive mode tuyệt vời cho exploration và công việc nhiều bước. Nhưng cho task đơn giản, rõ ràng, one-shot mode (claude -p) rẻ hơn đáng kể.

Interactive mode cho task đơn giản:

Terminal window
# Mở session, load context, gõ prompt, nhận response
# Chi phí tối thiểu: ~$0.15 ngay cả cho "thêm một dòng log"
claude
> "Thêm debug log trong processPayment() trước API call"

One-shot mode:

Terminal window
# Prompt trực tiếp, không có session overhead
claude -p "Thêm console.log('Processing payment:', amount) trước
fetch call trong src/api/payments.ts:42"
# Chi phí: ~$0.03

Giờ tôi dùng one-shot mode cho:

  • Thêm log statement
  • Thao tác find-and-replace đơn giản
  • Generate boilerplate (interfaces, data classes)
  • Giải thích nhanh (“regex này làm gì”)

Nguyên tắc: Nếu mô tả task trong một câu và không cần trao đổi qua lại, dùng -p.


Chiến Lược 4: CLAUDE.md Là Vũ Khí Tiết Kiệm

File CLAUDE.md viết tốt giảm chi phí theo cách ít ai nhận ra. Khi Claude Code hiểu cấu trúc project, conventions, và patterns từ đầu, nó hỏi ít hơn và ít đoán sai hơn.

Không có CLAUDE.md:

Prompt: "Thêm API endpoint mới cho user preferences"
Claude: *đọc 12 file để hiểu cấu trúc project*
Claude: *hỏi 3 câu follow-up về patterns*
Claude: *generate code sai convention*
Bạn: "Không, chúng tôi dùng repository pattern"
Claude: *generate lại toàn bộ*
Tổng: 8 messages, $4.20

Có CLAUDE.md:

Prompt: "Thêm API endpoint mới cho user preferences"
Claude: *đọc CLAUDE.md, biết patterns*
Claude: *generate code đúng ngay lần đầu*
Tổng: 2 messages, $0.45

Những thứ cần đưa vào CLAUDE.md để tiết kiệm:

  • Cấu trúc project và architecture patterns
  • Naming conventions
  • Quy tắc tổ chức file
  • Patterns phổ biến (error handling, logging, testing)
  • Dependencies và cách sử dụng

30 phút viết CLAUDE.md tự hoàn vốn trong tuần đầu tiên.


Chiến Lược 5: Gom Các Thay Đổi Liên Quan

Thay vì mỗi prompt một thay đổi, gom các thay đổi liên quan lại. Mỗi prompt có chi phí cơ bản (context window), nên ít prompt hơn = tổng chi phí thấp hơn.

Cách tốn kém (5 prompt riêng lẻ):

1. "Thêm field email vào User model"
2. "Update UserRepository xử lý email"
3. "Thêm email validation vào CreateUserUseCase"
4. "Update API endpoint nhận email"
5. "Thêm email vào response DTO"

Chi phí: ~$3.50 (5 prompt với context ngày càng lớn)

Cách tiết kiệm (1 prompt):

"Thêm field email vào hệ thống user:
1. Thêm email: String vào User data class
2. Update UserRepository.createUser() để lưu email
3. Thêm email validation trong CreateUserUseCase (standard email regex)
4. Update POST /users endpoint để nhận và trả email
5. Update UserResponse DTO bao gồm email
Theo patterns hiện có trong CLAUDE.md."

Chi phí: ~$0.90 (1 prompt, output toàn diện)

Tiết kiệm: Giảm 75% chi phí cho cùng khối lượng công việc.


Chiến Lược 6: Thói Quen Cost Dashboard

Chạy /cost thường xuyên. Tôi kiểm tra mỗi 5 message. Thói quen đơn giản này tạo awareness tự nhiên thay đổi hành vi.

Khi thấy “$2.40 đã chi cho phiên này,” bạn bắt đầu nghĩ:

  • “Tôi thực sự cần Claude đọc cả file đó không?”
  • “Tôi có thể mô tả chính xác hơn không?”
  • “Nên bắt đầu phiên mới chưa?”

Tôi cũng theo dõi chi phí hàng ngày trong spreadsheet đơn giản. Dữ liệu trend giúp phát hiện khi nào đang quay lại thói quen tốn kém.


Chi Phí Hàng Tháng (Trước vs. Sau)

Danh mụcTrướcSauTiết kiệm
Phiên dài (50+ messages)$180$0100%
Phiên trung bình (15-30)$95$5245%
Task đơn giản (interactive)$45$1273%
Đọc code / khám phá$20$1810%
Tổng$340$12763%

Chiến thắng lớn nhất là loại bỏ hoàn toàn phiên marathon. Thứ hai là dùng one-shot mode cho task đơn giản.


Những Gì KHÔNG Nên Tối Ưu

Tối ưu chi phí có điểm giảm dần lợi ích. Đừng hy sinh năng suất vì mấy đồng:

  • Đừng tránh dùng Claude Code cho task mà nó tiết kiệm hàng giờ. Prompt $2 tiết kiệm 30 phút debug là quá hời.
  • Đừng viết prompt tệ hơn để tiết kiệm token. Prompt mơ hồ cần 3 lần follow-up tốn hơn prompt chi tiết đúng ngay lần đầu.
  • Đừng bỏ qua đọc file khi cần context. Chi phí Claude đọc file rất nhỏ so với chi phí generate code sai.

Mục tiêu là loại bỏ lãng phí, không phải loại bỏ việc sử dụng.


Tóm Lại

  1. Bắt đầu phiên mới sau ~15 message. Tích lũy context là yếu tố tốn kém #1.
  2. Chỉ đến dòng cụ thể, không dump cả file. Giảm 40% input token.
  3. Dùng claude -p cho task đơn giản. Rẻ gấp 5 lần interactive mode.
  4. Đầu tư vào CLAUDE.md. Hoàn vốn trong tuần đầu.
  5. Gom thay đổi liên quan. Một prompt toàn diện thắng năm prompt nhỏ.
  6. Kiểm tra /cost mỗi 5 message. Awareness thay đổi hành vi.

Tool giống nhau. AI giống nhau. Sự khác biệt là bạn dùng chúng có chủ đích hay không.


Những con số này từ dự án Kotlin Multiplatform của tôi. Chi phí của bạn sẽ khác tùy plan, kích thước project, và cách dùng. Phần trăm và chiến lược vẫn áp dụng bất kể số cụ thể.

Muốn master Claude Code từ nền tảng đến full-auto workflows? Khóa học Claude Code Mastery bao gồm cost optimization và 15 phases khác. Phases 1-3 miễn phí.