Skip to content
Bùi Thúc Đồng Notebook · since 2009

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ứcMô tảDùng khi
lowTiết kiệm token đáng kể, đánh đổi một phần năng lựcPhâ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
mediumCân bằng, tiết kiệm token vừa phảiSoạn thảo thường ngày, tóm tắt, câu hỏi hằng ngày
highMặc định. Năng lực caoSuy luận phức tạp, phân tích tinh tế, coding khó
xhighSuy luận sâu hơn high nhưng chưa tốn như maxTác vụ coding và agentic dài hơi, workflow bất đồng bộ
maxThấu đáo nhất, chậm nhấtViệc đòi hỏi suy luận sâu nhất, sai là tốn kém

Bốn điểm quan trọng:

  1. Mặc định là high trên hầu hết model. Docs Claude Code liệt kê rõ: mặc định high trên Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 và Sonnet 4.6; riêng Opus 4.7 mặc định xhigh.
  2. 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 /effort hoặ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.
  3. Haiku không hỗ trợ effort. Thanh trượt biến mất khi bạn chọn Haiku.
  4. 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 xhigh cho cache_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.

Nguồn: How Claude Code uses prompt caching


2. Bảng tra: Chat (claude.ai / mobile)

Tác vụModelEffortThinking
Tra cú pháp, hỏi nhanh một dòng lệnhHaiku 4.5off
Dịch, viết lại email, mô tả taskSonnet 5low–mediumoff
Viết snippet code ngắn (< 50 dòng)Sonnet 5medium–highon
Debug từ log / stack trace rõ ràngSonnet 5highon
Debug khi không có log rõ, phải suy luận nguyên nhânOpus 4.8highon
So sánh trade-off công cụ, phân tích quyết địnhOpus 4.8highon
Thiết kế kiến trúc hệ thốngOpus 4.8Extra high (xhigh)on
Bài toán nhiều ràng buộc, sai là tốn tiền thậtOpus 4.8Maxon
Dự án lớn nhất, cần độ tự chủ cao nhấtFable 5highluô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.

Nguồn: Change the model, effort, and thinking settings


3. Bảng tra: Cowork

Tác vụModelEffort
Đọc, tóm tắt PDF; trích thông tin từ tài liệuSonnet 5medium
Sinh file xlsx / docx / pptx từ dữ liệuSonnet 5high
Thao tác file hàng loạt, rename, convertSonnet 5low–medium
Phân tích dữ liệu đa nguồn rồi ra kết luậnOpus 4.8high
Chuỗi tool call dài qua nhiều MCP connectorOpus 4.8Extra high
Deliverable quan trọng, chất lượng > tốc độOpus 4.8Extra 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ụModelEffort
Khám phá codebase, subagent explore, grepHaiku 4.5
Sửa một file, đổi tên biến, thêm hookSonnet 5medium
Viết test, refactor nhỏSonnet 5high
Debug bug thật trong module phức tạpOpus 4.8xhigh
Refactor đa file, migration lớnOpus 4.8xhigh
Plan mode trước khi động vào repo lạOpus 4.8xhigh
Viết lại module từ đầu, phiên async dàiOpus 4.8ultracode
Bug đã thử xhigh mà vẫn không raOpus 4.8max

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

  1. 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.
  2. Slider trong /model — dùng phím mũi tên trái/phải khi đang chọn model.
  3. Cờ --effort khi khởi động, áp cho một phiên.
  4. Biến môi trường CLAUDE_CODE_EFFORT_LEVEL (nhận tên mức, hoặc auto).
  5. Settings file: effortLevel nhận low, medium, high, xhigh. maxultracode chỉ dùng được trong phiên, không đặt được ở đây.
  6. Frontmatter của skill / subagent: đặt effort trong 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.

Nguồn: Model configuration — Claude Code Docs


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 ở xhigh hoặc max, đặt max_tokens lớ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

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.