AI Automation

Kinh nghiệm tối ưu credit Claude Code trên VSCode

Bạn mở VSCode, gõ lệnh claude và bắt đầu hỏi, một phút sau, 10 credit đã bay. Nếu bạn làm việc với AI coding hàng ngày, việc credit "cháy" nhanh hơn dự tính là câu chuyện quen thuộc. Bài viết này tổng hợp kinh nghiệm thực chiến để tối ưu credit Claude Code khi dùng trong VSCode: chọn model nào cho task nào, viết prompt ra sao, và quản lý context thế nào để không phải nạp thêm giữa chừng.

Yêu cầu trước khi bắt đầu

  • Tài khoản Claude Pro hoặc API key Anthropic đã active.
  • VSCode đã cài extension Claude Code (hoặc CLI claude).
  • Hiểu cơ bản về prompt engineering, không bắt buộc nhưng giúp ích nhiều.
  • Nếu bạn chạy Claude Code trên VPS để làm automation hoặc CI/CD, cần VPS có RAM tối thiểu 4GB và ổn định mạng. Thuê VPS Linux với NVMe và IPv4 Việt Nam là lựa chọn phù hợp cho tác vụ này.

Vì sao credit Claude Code lại "bay" nhanh?

Claude Code tính phí dựa trên token đầu vào (input) và đầu ra (output). Mỗi lần bạn gửi một câu hỏi, Claude không chỉ xử lý câu hỏi đó mà còn phải đọc lại toàn bộ lịch sử trò chuyện, bao gồm code bạn đã dán, file bạn đã mở, và cả những câu trả lời trước đó. Nếu bạn để context dài và chọn model claude-opus-4-20250514 (model mạnh nhất, giá cao gấp 5-10 lần sonnet), chỉ vài lượt hỏi-đáp là bạn đã tiêu tốn tương đương một buổi tối làm việc với model rẻ hơn.

Điều này không có nghĩa là bạn nên dùng model yếu, mà là chọn đúng model cho đúng task, và kiểm soát context thông minh.

Bước 1 - Chọn model Claude Code phù hợp với từng task

Không phải task nào cũng cần model mạnh nhất. Claude Code cho phép chọn model qua flag --model hoặc cấu hình trong file .claude.json. Bảng dưới đây là hướng chọn dựa trên kinh nghiệm thực tế:

Loại taskModel khuyến nghịLý doChi phí credit tương đối
Viết code mới từ đầu (generation)claude-sonnet-4-20250514Đủ nhanh và chính xác, giá thấp hơn opus ~3-4 lầnThấp
Debug / phân tích lỗi phức tạpclaude-opus-4-20250514Cần suy luận sâu, dễ tìm root causeCao
Refactor code (tái cấu trúc)claude-sonnet-4-20250514Cân bằng giữa hiểu ngữ cảnh và tiết kiệmTrung bình
Viết test / documentclaude-sonnet-4-20250514 hoặc claude-haiku-3-5-20241022Task đơn giản, haiku đủ dùng và rẻ nhấtRất thấp
Review code / kiểm tra bảo mậtclaude-opus-4-20250514Cần phát hiện lỗi logic tinh viCao

Mẹo: Đặt model mặc định là claude-sonnet-4-20250514 trong .claude.json. Chỉ chuyển sang opus khi thực sự cần, bạn sẽ tiết kiệm được 40-50% credit so với để opus làm mặc định.

// .claude.json
{
  "model": "claude-sonnet-4-20250514",
  "maxTokens": 4096,
  "temperature": 0.3
}

Bước 2 - Viết prompt rõ ràng, đúng cấu trúc

Một prompt dài dòng, không rõ ràng sẽ khiến Claude đoán sai hướng, phải hỏi lại hoặc trả lời dài hơn cần thiết, mỗi lần như vậy là một lần tiêu credit vô ích. Kinh nghiệm từ sysadmin: viết prompt theo cấu trúc vai trò + task + ràng buộc + output mong muốn.

Prompt kém (tốn credit vì phải làm lại nhiều lần):

"Viết script để backup database."

Prompt tốt (đúng ngay từ đầu):

"Bạn là sysadmin. Viết script bash backup PostgreSQL database `mydb` trên Ubuntu 24.04, nén bằng gzip, giữ lại 7 ngày gần nhất, log kết quả ra file /var/log/backup.log. Output: script hoàn chỉnh + giải thích từng dòng."

Kết quả: prompt tốt thường chỉ cần 1 lần là ra output đúng, tiết kiệm 50-70% credit so với prompt kém.

Bước 3 - Quản lý context: không để Claude "nhớ" quá nhiều

Context là kẻ thù hàng đầu của credit. Mỗi token trong context (dù là code bạn đã xoá, file cũ bạn đã mở) đều được tính phí ở mỗi lần gửi. Nếu bạn làm việc với một project lớn, context có thể lên tới 50.000-100.000 token, mỗi lần gửi tốn tương đương 10-20 câu trả lời ngắn.

Cách kiểm soát context trên Claude Code CLI:

  • Dùng lệnh /compact để nén lịch sử trò chuyện, Claude sẽ tóm tắt lại, xoá bớt chi tiết không cần thiết.
  • Dùng /clear để reset context hoàn toàn khi chuyển sang task khác. Đừng để lịch sử của task A làm nặng task B.
  • Mở ít file nhất có thể trong VSCode khi chat với Claude. Mỗi file mở trong editor đều được đưa vào context mặc định.
  • Dùng @file hoặc @folder để chỉ định chính xác file muốn Claude xem, thay vì để nó tự động lấy.

Cấu hình giới hạn context trong .claude.json:

{
  "context": {
    "maxTokens": 32000,
    "autoIncludeOpenTabs": false,
    "includeGitDiff": false
  }
}

Đặt autoIncludeOpenTabs: false để Claude không tự động thêm file bạn đang mở. Bạn chủ động gọi file nào cần. includeGitDiff: false tránh việc Claude đọc diff mỗi lần chat, dễ tốn thêm 5.000-10.000 token vô ích.

Bước 4 - Tận dụng tính năng "chế độ task" và plan trước

Claude Code CLI có flag --plan cho phép Claude lập kế hoạch trước khi viết code. Hãy dùng nó. Cách này có vẻ tốn thêm một lượt chat, nhưng thực tế giúp bạn tránh được 3-4 lượt sửa đi sửa lại vì thiếu ràng buộc.

Cách dùng:

claude --plan "Thêm tính năng đặt lại mật khẩu cho user. Code Python + Flask. Mô tả các bước cần làm."

Claude sẽ trả về plan. Bạn review, nếu đúng hướng thì yêu cầu implement. Nếu sai, sửa plan, rẻ hơn nhiều so với sửa code đã viết.

Chế độ task (flag --task): dùng khi bạn muốn Claude làm việc độc lập trong background, không cần chat từng bước. Task sẽ chạy và ghi kết quả ra log. Cách này tiết kiệm credit vì không phải giữ session chat mở, mỗi lần mở lại context bắt đầu từ đầu, không bị tích lũy.

claude --task "Sửa lỗi null pointer trong file /src/app.js. Viết test cho hàm đã sửa." --allowedTools "Write"

Bước 5 - Dùng prompt mẫu (template) cho các task lặp lại

Nếu bạn thường xuyên yêu cầu Claude làm cùng một kiểu task, ví dụ viết unit test, tạo Dockerfile, debug lỗi, hãy lưu prompt mẫu vào file và dùng lại. Điều này tránh việc phải viết lại từ đầu mỗi lần, và giữ cho prompt luôn tối ưu.

Ví dụ file prompts/debug.txt:

Bạn là senior developer. Debug lỗi sau trong dự án Node.js:
- File: {file_path}
- Lỗi: {error_message}
- Log liên quan: {log_snippet}

Yêu cầu:
1. Xác định nguyên nhân gốc.
2. Đưa ra 2-3 cách fix khả thi.
3. Chọn cách hàng đầu và giải thích vì sao.
4. Output: code fix + giải thích.

Khi cần, bạn gọi: claude --prompt prompts/debug.txt và điền biến. Không phải viết prompt từ đầu mỗi lần → tiết kiệm credit vì không mất lượt "nói rõ yêu cầu".

Bước 6 - Theo dõi và phân tích mức tiêu thụ credit

Không tối ưu được nếu không đo được. Claude Code CLI có sẵn lệnh /stats để xem số token đã dùng trong session hiện tại. Trên Anthropic Console, bạn có thể xem lịch sử API call và token consumption chi tiết.

Lệnh kiểm tra nhanh:

# Trong session Claude Code
/stats

Script đơn giản log token usage ra file: (chạy sau mỗi session)

#!/bin/bash
# Ghi nhật ký token usage
echo "$(date -I) - $(claude /stats 2>/dev/null | grep 'Total tokens')" >> ~/claude_usage.log

Theo dõi hằng tuần: nếu thấy một loại task nào đó (ví dụ "viết test") ngốn nhiều token bất thường, hãy xem lại prompt hoặc chuyển sang model haiku cho task đó.

Xử lý lỗi thường gặp

1. Claude Code không nhận model flag

Kiểm tra phiên bản CLI: claude --version. Nếu dùng bản cũ, update: npm update -g @anthropic-ai/claude-code. Flag --model yêu cầu CLI >= 0.8.x.

2. Context bị đầy dù đã dùng /compact

/compact chỉ nén, không xoá. Nếu context vẫn nặng, dùng /save <tên> để lưu snapshot, sau đó /clear/load <tên> để tiếp tục với context sạch hơn. Cách này giảm ngay 50-70% token đầu vào.

3. Claude tự ý thêm file vào context dù đã cấu hình

Kiểm tra lại .claude.json, mục context.autoIncludeOpenTabs phải là false. Nếu vẫn không hiệu quả, dùng lệnh /forget để xoá file khỏi context ngay lập tức.

Câu hỏi thường gặp

Nên dùng Claude Code Pro hay API key để tối ưu credit?

Claude Code Pro trả phí cố định tháng ($20), phù hợp nếu bạn dùng dưới ~500k token/tháng. Nếu dùng nhiều hơn hoặc cần kiểm soát chi phí ở mức token, API key với rate limiting thủ công sẽ tiết kiệm hơn. Với dev làm việc full-time coding, API key thường rẻ hơn.

Model nào tiết kiệm credit nhất cho code đơn giản?

Claude Haiku 3.5 là rẻ nhất hiện tại (giá khoảng 1/10 so với Opus). Dùng cho task viết boilerplate, template, hoặc script đơn giản. Sonnet 4 là lựa chọn cân bằng cho đa số task code thường ngày.

Có nên dùng context dài cho project lớn không?

Không nên. Chia nhỏ project thành các module hoặc file, mỗi lần chỉ cho Claude xem một module. Dùng @file để chọn lọc. Context dài 50k+ token thường không mang lại lợi ích tương xứng với chi phí.

Làm sao biết mình đang dùng bao nhiêu token mỗi session?

Dùng lệnh /stats trong Claude Code CLI. Hoặc vào Anthropic Console để xem lịch sử. Ghi log ra file hàng ngày để theo dõi xu hướng.

Claude Code trên VPS có khác gì so với chạy local không?

Không khác về credit, vẫn tính token như nhau. Nhưng nếu bạn chạy automation hoặc CI/CD trên VPS, hãy dùng --task thay vì session tương tác để tránh context bị tích lũy. Một VPS Linux với 4GB RAM và ổ SSD NVMe là đủ cho tác vụ này.

Bài viết liên quan

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.