Bạn dùng model mạnh nhất cho việc đổi tên biến, rồi lại giao model rẻ nhất debug một bug bảo mật? Đó là cách đốt tiền nhanh nhất mà chất lượng vẫn tệ. Vấn đề không phải model nào tốt hơn — mà là việc nào xứng đáng với model nào.
Chọn model theo "chi phí nếu làm sai", không theo "việc trông khó hay dễ".
Nguyên tắc cốt lõi
Khi làm việc với Claude Code, bạn không chỉ có một model — bạn có cả một dải: Fable 5, Opus 4.8, Sonnet 5 và Haiku 4.5. Rule chọn model xoay quanh một câu hỏi duy nhất: nếu bước này làm sai, thiệt hại là bao nhiêu? Sai ở khâu thiết kế schema thanh toán thì đắt gấp trăm lần sai một cái typo. Vì vậy: dùng model mạnh nhất cho khâu đắt giá, giao việc máy móc cho model rẻ, và trong một nhiệm vụ nên phối nhiều model cùng lúc.
Bảng chọn nhanh
| Model | Model ID | Dùng khi |
|---|---|---|
| Fable 5 | claude-fable-5 |
Việc khó nhất, hậu quả sai lớn, nhiều bước, cần chính xác cao |
| Opus 4.8 | claude-opus-4-8 |
Code chính hằng ngày cần chất lượng; có fast mode khi cần nhanh |
| Sonnet 5 | claude-sonnet-5 |
Code tầm trung, theo mẫu đã rõ, khối lượng vừa |
| Haiku 4.5 | claude-haiku-4-5 |
Việc máy móc, số lượng lớn, cần rẻ và nhanh |
Khi nào dùng model nào?
🏆 Fable 5 — đắt nhất, chỉ cho khâu xứng đáng
Tính năng lớn nhiều bước, refactor xuyên module, migration schema/dữ liệu. Debug căn nguyên khó (bug gián đoạn, lỗi ẩn qua nhiều lớp). Audit bảo mật, threat model, review PR lớn. Điều phối nhiều subagent song song. Và mọi chỗ "sai là đắt": auth, thanh toán, dữ liệu nhạy cảm/PII, xoá dữ liệu.
⚙️ Opus 4.8 — mặc định an toàn
Phần lớn việc implement feature độ phức tạp vừa-cao. Review code thường, viết test, sửa bug rõ nguyên nhân. Cần nhanh mà vẫn chất lượng? Bật /fast — Opus output nhanh hơn, KHÔNG hạ xuống model nhỏ. Phân vân giữa Fable 5 và Sonnet 5? Chọn Opus.
🔧 Sonnet 5 — theo pattern đã rõ
Code CRUD, thêm endpoint/component theo pattern có sẵn trong repo. Sửa lỗi nhỏ-vừa, viết glue code, chỉnh cấu hình có hướng dẫn. Việc rõ ràng, ít rủi ro, không cần suy luận kiến trúc.
⚡ Haiku 4.5 — cơ học, số lượng lớn
Đổi text/label, format, sửa typo, đổi tên biến hàng loạt. Tra cứu một dữ kiện, chạy lệnh máy móc, tóm tắt ngắn. Các bước lặp lại độc lập, rủi ro thấp.
🤖 Quy tắc cho Subagent — điểm hay nhất của rule này
Claude không tự đổi được model của phiên chính (đó là quyền của bạn qua /model), nhưng Claude chủ động chọn được model cho từng subagent qua tham số model của Agent/Workflow tool. Đây chính là chỗ để phối rẻ/đắt trong cùng một nhiệm vụ.
Scout / tìm file / biến đổi cơ học
→ Haiku hoặc Sonnet. Rẻ, nhanh, đủ dùng.
Implement phần có ranh giới rõ
→ Sonnet (mẫu rõ) hoặc Opus (logic thật).
Verify đối kháng / judge / audit
→ Opus hoặc Fable 5. Bước quyết định cuối phải là model mạnh.
Controller điều phối
→ Opus/Fable 5 làm nhạc trưởng; worker cơ học để model rẻ.
💡 Tip: Mặc định KHÔNG set model cho subagent — nó kế thừa model phiên chính. Chỉ set khi chắc chắn tầng khác hợp hơn.
Ba nguyên tắc chi phí
1. Không dùng Fable 5 cho việc Haiku làm được
Phí tiền, và cũng không nhanh hơn.
2. Không dùng Haiku cho việc cần suy luận sâu
Rẻ lúc chạy, nhưng sai thì sửa đắt hơn nhiều lần số tiền tiết kiệm.
3. Đắt giá = dùng mạnh. Cơ học = dùng rẻ. Phân vân = Opus.
Một câu duy nhất tóm tắt cả rule — dán lên màn hình cũng đáng.
⚠️ Lưu ý: Khi một việc rõ ràng cần model cao/thấp hơn phiên hiện tại, Claude nên nói ra và đề nghị bạn đổi bằng /model — chứ không âm thầm làm tiếp với model không phù hợp.
Áp dụng thế nào?
Lưu rule này thành file ~/.claude/rules/model-selection.md và inject vào context mỗi phiên Claude Code (qua CLAUDE.md hoặc hook). Từ đó, mỗi khi Claude spawn subagent — scout, implement, verify — nó sẽ tự cân nhắc tầng model phù hợp thay vì chạy tất cả bằng một model duy nhất. Kết quả: cùng một nhiệm vụ, chi phí giảm đáng kể mà những khâu quan trọng vẫn được model mạnh nhất xử lý.
📥
Tải về file rule gốc
Toàn bộ rule trong bài là file model-selection.md — tải về, bỏ vào ~/.claude/rules/ là dùng được ngay.
Bài viết được thực hiện bởi team Loc Nguyen Data — chuyên tư vấn và triển khai giải pháp AI/Data cho doanh nghiệp.