Chọn Model và Effort trong Claude: bảng tra cứu theo từng tác vụ
Hướng dẫn thực dụng về hai trục điều khiển model và effort trên Claude chat, Cowork và Claude Code — đã đối chiếu từng claim với tài liệu chính thức.
Contents
Từ khi Anthropic đưa effort ra khỏi API và đặt nó ngay cạnh model selector trên claude.ai, Cowork và Claude Code, việc “dùng Claude” không còn chỉ là chọn model nữa. Bạn đang điều khiển hai trục độc lập, và chọn sai một trong hai đều dẫn đến cùng một hậu quả: hoặc trả giá quá cao cho việc đơn giản, hoặc nhận câu trả lời hời hợt cho vấn đề khó.
Bài này là bảng tra cứu tôi dùng hàng ngày, kèm dẫn chứng từ tài liệu chính thức.
1. Hai trục điều khiển
Trục model
Thứ tự từ nhẹ đến nặng: Haiku 4.5 → Sonnet 5 → Opus 4.8 → Fable 5.
Anthropic mô tả vai trò từng model khá rõ:
- Haiku là tầng nhanh. Lookup, rename đơn giản, grep codebase, những việc cần model thực thi hơn là suy luận.
- Sonnet là daily driver. Sonnet 5 đủ mạnh cho coding, viết lách, phân tích, nghiên cứu và giải quyết vấn đề phức tạp ở mức đời thường. Nếu không chắc chọn gì, bắt đầu từ đây.
- Opus là chuyên gia suy luận lớn. Opus 4.8 dành cho bài toán thực sự cần suy nghĩ sâu theo thời gian. Nó ăn rate limit nhiều hơn, nên chỉ để dành cho việc xứng đáng.
- Fable dành cho dự án lớn nhất, quan trọng nhất. Nó tự chủ hơn — mô tả kết quả mong muốn, nó tự lập kế hoạch và tự kiểm tra. Đổi lại: chậm nhất và ăn rate limit nhiều nhất.
Đừng đọc bảng này như một cái thang phải leo. Khuyến nghị chính thức: nếu chưa chắc chọn gì, bắt đầu với Opus 4.8 cho agentic coding và công việc doanh nghiệp; chỉ dùng Fable 5 khi workload cần năng lực cao nhất hiện có — điển hình là agent chạy dài, tự chủ nhiều bước. Opus 4.8 vẫn là con chủ lực cho phần lớn việc nặng về suy luận. Nhảy lên Fable cho một bài toán khó nhưng ngắn thường chỉ tốn quota mà không đổi được kết quả.
Nguồn: Choosing the right Claude model, Models overview, Choosing the right model
Trục effort
Năm mức: low / medium / high / xhigh (hiển thị là “Extra high” trên claude.ai) / max.
| Mức | Mô tả | Dùng khi |
|---|---|---|
| low | Tiết kiệm token đáng kể, đánh đổi một phần năng lực | Phân loại đơn giản, tra cứu nhanh, tác vụ khối lượng lớn nơi cải thiện biên không đáng tiền |
| medium | Cân bằng, tiết kiệm token vừa phải | Soạn thảo thường ngày, tóm tắt, câu hỏi hằng ngày |
| high | Mặc định. Năng lực cao | Suy luận phức tạp, phân tích tinh tế, coding khó |
| xhigh | Suy luận sâu hơn high nhưng chưa tốn như max | Tác vụ coding và agentic dài hơi, workflow bất đồng bộ |
| max | Thấu đáo nhất, chậm nhất | Việc đòi hỏi suy luận sâu nhất, sai là tốn kém |
Bốn điểm quan trọng:
- Mặc định là
hightrên hầu hết model. Docs Claude Code liệt kê rõ: mặc địnhhightrên Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 và Sonnet 4.6; riêng Opus 4.7 mặc địnhxhigh. - Claude Code có cơ chế “giữ mặc định của model” dễ gây nhầm. Lần đầu bạn chạy Fable 5, Opus 4.8 hoặc Opus 4.7, Claude Code áp mức mặc định của model đó kể cả khi bạn đã set mức khác cho model khác trước đó — và giữ mức này qua các phiên cho đến khi bạn chủ động chọn lại bằng
/efforthoặc--effort. May là mức effort đang chạy luôn hiển thị cạnh spinner (ví dụ “with low effort”), liếc qua là biết. - Haiku không hỗ trợ effort. Thanh trượt biến mất khi bạn chọn Haiku.
- Chỉnh effort thường là đòn bẩy tốt hơn đổi model. Đây là câu trong tài liệu “Choosing a model” của Anthropic, và nó đáng để dán lên tường.
Nguồn: Effort — Claude Platform Docs, Model configuration — Claude Code Docs, Choosing the right model
Khuyến nghị gốc từ Anthropic
Bắt đầu ở xhigh cho coding và agentic, high cho hầu hết workload cần trí tuệ, và chỉ hạ xuống medium/low khi bạn đã đo được rằng chất lượng vẫn giữ trên bộ eval của mình.
Chi phí ẩn: đổi effort giữa phiên làm mất cache
Đây là phần hầu hết bài viết bỏ qua, và nó làm hỏng lời khuyên “cứ chỉnh effort thoải mái”.
Trong Claude Code, model và effort level đều nằm trong cache key — chúng không phải một phần văn bản prompt, nhưng vẫn tham gia định danh cache. Mỗi effort level có cache riêng cho cùng một model. Đổi bằng /effort giữa phiên nghĩa là request kế tiếp đọc lại toàn bộ lịch sử hội thoại, không có cache hit nào. Chính vì thế Claude Code hiện hộp thoại xác nhận trước khi áp dụng thay đổi effort làm mất cache. Một thay đổi trỏ về đúng mức đang chạy (ví dụ set lại mức mặc định của model) sẽ bỏ qua hộp thoại và giữ nguyên cache.
Hệ quả thực tế: chọn model và effort ở đầu phiên, đừng nhảy qua nhảy lại giữa chừng. Cache read được tính giá thấp hơn nhiều so với input thường; một lần miss là bạn trả full price cho lượng nội dung đã xử lý rồi.
Ghi chú [chưa ngã ngũ]: issue #63962 trên repo claude-code (vẫn đang mở tại thời điểm viết bài) đưa ra test thực nghiệm cho thấy cache vẫn được giữ qua các lần đổi effort — request sau khi chuyển sang
xhighchocache_readđầy đủ vàcache_creation: 0— và lập luận rằng hộp thoại cảnh báo là sai. Tài liệu chính thức vẫn nói ngược lại. Cho đến khi một trong hai bên được sửa, cách an toàn là cứ hành xử theo docs.
2. Bảng tra: Chat (claude.ai / mobile)
| Tác vụ | Model | Effort | Thinking |
|---|---|---|---|
| Tra cú pháp, hỏi nhanh một dòng lệnh | Haiku 4.5 | — | off |
| Dịch, viết lại email, mô tả task | Sonnet 5 | low–medium | off |
| Viết snippet code ngắn (< 50 dòng) | Sonnet 5 | medium–high | on |
| Debug từ log / stack trace rõ ràng | Sonnet 5 | high | on |
| Debug khi không có log rõ, phải suy luận nguyên nhân | Opus 4.8 | high | on |
| So sánh trade-off công cụ, phân tích quyết định | Opus 4.8 | high | on |
| Thiết kế kiến trúc hệ thống | Opus 4.8 | Extra high (xhigh) | on |
| Bài toán nhiều ràng buộc, sai là tốn tiền thật | Opus 4.8 | Max | on |
| Dự án lớn nhất, cần độ tự chủ cao nhất | Fable 5 | high | luôn bật |
Hai lưu ý:
- Effort và Thinking là hai công tắc riêng biệt trên claude.ai. Effort điều khiển mức độ thấu đáo của mọi phản hồi; Thinking chỉ quyết định Claude có hiển thị phần suy luận trong khối mở rộng hay không. Bạn dùng được mọi tổ hợp của hai cái. Riêng Fable 5 thì thinking luôn bật, không tắt được.
- Nếu không thấy thanh effort với model đang chọn thì model đó chạy ở mức mặc định — Help Center hiện liệt kê effort selector cho Opus 4.8 / 4.7 / 4.6 và Sonnet 4.6; danh sách này thay đổi theo thời gian.
3. Bảng tra: Cowork
| Tác vụ | Model | Effort |
|---|---|---|
| Đọc, tóm tắt PDF; trích thông tin từ tài liệu | Sonnet 5 | medium |
| Sinh file xlsx / docx / pptx từ dữ liệu | Sonnet 5 | high |
| Thao tác file hàng loạt, rename, convert | Sonnet 5 | low–medium |
| Phân tích dữ liệu đa nguồn rồi ra kết luận | Opus 4.8 | high |
| Chuỗi tool call dài qua nhiều MCP connector | Opus 4.8 | Extra high |
| Deliverable quan trọng, chất lượng > tốc độ | Opus 4.8 | Extra high–Max |
Một chi tiết ít người biết: Opus 4.8 thiên về suy luận hơn là gọi tool. Tài liệu prompting nói thẳng rằng nâng effort là đòn bẩy hữu ích để tăng mức sử dụng tool, đặc biệt trong knowledge work — mức high và xhigh cho thấy lượng tool use nhiều hơn hẳn trong agentic search và coding. Nếu Claude cứ ngồi suy luận thay vì gọi MCP connector của bạn, hãy thử nâng effort trước khi đi sửa prompt.
Nguồn: Prompting Claude Opus 4.8
4. Bảng tra: Claude Code
| Tác vụ | Model | Effort |
|---|---|---|
| Khám phá codebase, subagent explore, grep | Haiku 4.5 | — |
| Sửa một file, đổi tên biến, thêm hook | Sonnet 5 | medium |
| Viết test, refactor nhỏ | Sonnet 5 | high |
| Debug bug thật trong module phức tạp | Opus 4.8 | xhigh |
| Refactor đa file, migration lớn | Opus 4.8 | xhigh |
| Plan mode trước khi động vào repo lạ | Opus 4.8 | xhigh |
| Viết lại module từ đầu, phiên async dài | Opus 4.8 | ultracode |
| Bug đã thử xhigh mà vẫn không ra | Opus 4.8 | max |
ultracode là gì?
ultracode xuất hiện trong menu /effort của Claude Code nhưng không phải một mức effort API bổ sung. Docs định nghĩa nó là một setting của Claude Code: gửi mức xhigh lên model, đồng thời cho phép Claude tự dàn dựng dynamic workflow đa agent cho các task lớn. Nó chỉ áp dụng cho phiên hiện tại — bật qua /effort ultracode hoặc claude --effort ultracode (cần v2.1.203 trở lên). Các mức mà API thực sự chấp nhận vẫn chỉ là low / medium / high / xhigh / max.
Cảnh báo kèm theo: vì ultracode cho phép spawn nhiều subagent chạy song song, nó ăn quota nhanh hơn hẳn một phiên xhigh thông thường. Trên gói Pro, đây là cách nhanh nhất để hết limit giữa chừng một task dài. Chỉ bật khi task thực sự cần phân rã đa agent.
Còn ultrathink thì sao?
Từ khóa này sống dai hơn tôi tưởng. Cơ chế gốc của nó — mở hết thinking budget qua budget_tokens — đã chết cùng với các model dùng adaptive reasoning. Nhưng bản thân từ khóa thì vẫn được hỗ trợ chính thức: docs Claude Code hiện tại ghi rõ, đặt ultrathink ở bất kỳ đâu trong prompt sẽ khiến Claude Code thêm một chỉ thị in-context yêu cầu suy luận sâu hơn cho riêng lượt đó, còn effort level gửi lên API giữ nguyên. Các cụm khác như “think”, “think hard”, “think more” chỉ là văn bản thường, không được nhận diện là keyword.
Tóm gọn: ultrathink là cú hích một lượt, /effort là đổi mức cho cả phiên. Cần nghĩ sâu đúng một câu hỏi khó giữa phiên đang chạy effort thấp? Dùng ultrathink — khỏi mất cache vì đổi effort.
Sáu cách cấu hình effort
- Lệnh
/effort— chạy không tham số để mở slider, kèm tên mức để set thẳng, hoặc/effort autođể về mặc định của model. - Slider trong
/model— dùng phím mũi tên trái/phải khi đang chọn model. - Cờ
--effortkhi khởi động, áp cho một phiên. - Biến môi trường
CLAUDE_CODE_EFFORT_LEVEL(nhận tên mức, hoặcauto). - Settings file:
effortLevelnhậnlow,medium,high,xhigh.maxvàultracodechỉ dùng được trong phiên, không đặt được ở đây. - Frontmatter của skill / subagent: đặt
efforttrong file markdown để override khi skill đó chạy.
Thứ tự ưu tiên: biến môi trường > mức bạn cấu hình > mặc định của model. Frontmatter áp dụng khi skill/subagent đó đang hoạt động, đè lên mức của phiên nhưng không đè được biến môi trường.
// ~/.claude/settings.json
{
"effortLevel": "xhigh"
}
---
# skills/heavy-refactor/SKILL.md
name: heavy-refactor
effort: xhigh
---
export CLAUDE_CODE_EFFORT_LEVEL=high
claude --effort xhigh
Nếu bạn set một mức mà model đang dùng không hỗ trợ, Claude Code tự động hạ xuống mức cao nhất được hỗ trợ ở dưới nó — ví dụ xhigh sẽ chạy như high trên Opus 4.6.
5. Năm cạm bẫy
1. Effort cao không phải lúc nào cũng tốt hơn. Trên tác vụ thường, effort cao khiến model overthink: output chậm hơn, dài dòng hơn, nhiều hedging hơn trên một việc chỉ cần câu trả lời thẳng. Chạy mọi thứ ở Max là đốt token, không phải tối ưu.
2. Effort khuếch đại prompt, không thay thế nó. Một chỉ thị mơ hồ ở mức Max chỉ cho ra một câu trả lời thấu đáo và đắt tiền — cho câu hỏi sai.
3. Effort không thay đổi kiến thức hay context window. Vẫn cùng model đó, cùng context, cùng training cutoff ở mọi mức. Bạn đang chỉnh nó làm việc chăm đến đâu, không phải nó biết gì.
4. Đổi model hay effort giữa phiên đều tốn tiền thật. Cả hai đều nằm trong cache key. Đổi model làm tính lại toàn bộ request kể cả khi nội dung y hệt. Đổi effort cũng vậy (theo docs — xem ghi chú ở mục 1). Chốt hai thứ này ở đầu phiên.
5. Opus 4.8 diễn giải prompt theo nghĩa đen, đặc biệt ở effort thấp. Nó không tự suy rộng một chỉ thị từ mục này sang mục khác, và không suy diễn những yêu cầu bạn không nêu. Đây là điểm mạnh cho pipeline cần hành vi dự đoán được — nhưng nếu bạn muốn áp dụng rộng, phải nêu rõ phạm vi: “áp dụng định dạng này cho mọi section, không chỉ section đầu tiên.”
6. Phụ lục: nếu bạn gọi API trực tiếp
Phần này không áp dụng cho người dùng claude.ai / Cowork / Claude Code — ở đó bạn không set được max_tokens.
- Nếu chạy Opus 4.8 ở
xhighhoặcmax, đặtmax_tokenslớn để model có chỗ suy nghĩ và hành động qua nhiều subagent và tool call. Tài liệu gợi ý bắt đầu từ 64k rồi tinh chỉnh. - Opus 4.8 dùng adaptive thinking:
thinking: {type: "adaptive"}. Extended thinking thủ công (thinking: {type: "enabled", budget_tokens: N}) trả về lỗi 400. Không cóthinking, request chạy không suy nghĩ. temperature,top_p,top_kđặt giá trị khác mặc định sẽ trả 400 trên Opus 4.8. Dùng prompt để điều hướng hành vi.- Effort truyền trong field
output_configở top level.
Nguồn: Effort, What’s new in Claude Opus 4.8
7. Tóm tắt một dòng
- Không chắc? Sonnet 5, effort mặc định.
- Coding, agentic, chạy dài? Opus 4.8 + xhigh.
- Việc lặp lại, khối lượng lớn? Hạ effort trước, đừng vội hạ model.
- Trước khi nâng lên Max, hãy sửa prompt. Rẻ hơn nhiều.
Nguồn tham khảo
- Effort — Claude Platform Docs
- Models overview — Claude Platform Docs
- Choosing the right model — Claude Platform Docs
- What’s new in Claude Opus 4.8
- Prompting Claude Opus 4.8
- Model configuration — Claude Code Docs
- How Claude Code uses prompt caching — Claude Code Docs
- Prompt caching — Claude Platform Docs
- Change the model, effort, and thinking settings — Claude Help Center
- Introducing Claude Opus 4.8 — Anthropic
Bài viết dựa trên tài liệu chính thức, đối chiếu lần cuối ngày 14/07/2026. Model lineup và effort level của Anthropic thay đổi khá nhanh — nên kiểm tra lại docs trước khi dựa vào để ra quyết định hạ tầng.