AI cho người mớiHướng dẫn
Reasoning effort và thinking token: vì sao suy nghĩ tốn hơn
Thinking token được tính như đầu ra. Các mức effort nghĩa là gì, nên đặt gì vào max_tokens để câu trả lời không bị cắt, và cách ước tính hóa đơn.

Trên trang này
Yêu cầu của bạn là một câu hỏi thực tế. Câu trả lời chỉ có ba dòng. Nhưng bộ đếm đầu ra báo hàng nghìn token. Đó không phải lỗi: trước khi trả lời, nhiều mô hình suy nghĩ trong một bản nháp ẩn, và những token suy nghĩ đó được tính như token đầu ra. Cài đặt effort quyết định lượng suy nghĩ diễn ra, và max_tokens phải chừa chỗ cho nó, nếu không bạn sẽ nhận câu trả lời bị cắt hoặc trống rỗng.
Mô hình làm gì trước khi trả lời#
Hãy nghĩ đến một bài kiểm tra. Bạn có thể viết đáp án ngay, hoặc dành một trang để nháp trước. Nháp thường cho kết quả tốt hơn với bài toán khó, nhưng giấy không miễn phí. Suy luận chính là phần nháp đó, và nó được tính bằng token như mọi thứ khác.
Tài liệu về extended-thinking của Anthropic (kiểm tra ngày 23 tháng 10 năm 2026) nói rằng token suy nghĩ là một phần của token đầu ra được tính phí, và phản hồi cho bạn biết số lượng: usage.. Giả sử một phản hồi trả về với khối usage như sau (số liệu ví dụ):
"usage": {
"input_tokens": 480,
"output_tokens": 2150,
"output_tokens_details": { "thinking_tokens": 1900 }
}Bạn bị tính phí cho 2.150 token đầu ra. Phần suy nghĩ chiếm 1.900 trong đó, nên văn bản bạn thực sự đọc là 2.150 − 1.900 = 250 token. Điều này vẫn đúng ngay cả khi văn bản suy nghĩ không được trả về cho bạn: nó vẫn được tính. Nếu bạn muốn phân biệt rõ đầu vào và đầu ra trước, hãy bắt đầu với input vs output tokens.
Effort: nút vặn cho suy nghĩ#
Trong API của Claude, nút vặn là output_. Trang effort của Anthropic (kiểm tra ngày 23 tháng 10 năm 2026) liệt kê năm mức: low, medium, high, xhigh, max. Ba chi tiết quan trọng với người mới:
- Nó ảnh hưởng đến mọi token đầu ra, không chỉ suy nghĩ: văn bản, lệnh gọi công cụ và suy nghĩ cùng nhau.
- Đây là tín hiệu hành vi, không phải ngân sách nghiêm ngặt. Effort thấp hơn nghĩa là ít token hơn nhưng đánh đổi một phần năng lực; ở effort thấp, Claude có thể bỏ qua suy nghĩ hoàn toàn với bài toán đơn giản.
- Mặc định là
mediumtrên Claude Opus 5.5 và Claude Haiku 5.5, vàhightrên hầu hết các mô hình khác hỗ trợ tham số này. Đặt mặc định một cách tường minh cũng giống như bỏ qua nó.
Các mức được hiệu chỉnh lại theo từng mô hình, nên high trên một mô hình không phải cùng lượng suy nghĩ như high trên mô hình khác, và không phải mô hình nào cũng chấp nhận mọi mức. Trong một video đã công bố, ai đó chạy mọi mức effort của Claude Opus 5.5 trên cùng một tác vụ motion-graphics và so sánh hình ảnh. Đó là cách tốt để thấy suy nghĩ nhiều hơn mang lại gì. Nó sẽ không cho bạn biết hóa đơn của bạn, vì tác vụ của bạn không giống của họ.
Một yêu cầu cho câu hỏi đơn giản, với effort được hạ xuống:
{
"model": "claude-opus-5-5",
"max_tokens": 4000,
"output_config": { "effort": "low" },
"messages": [
{ "role": "user", "content": "What is the capital of Australia?" }
]
}Cái bẫy câu trả lời trống: suy nghĩ được tính vào max_tokens#
Đây là cách nó sai. Bạn mong đợi câu trả lời hai câu, nên đặt max_tokens là 300. Mô hình bắt đầu suy nghĩ, dùng hết 300 cho bản nháp, chạm giới hạn và dừng. Bạn nhận được phản hồi trống hoặc một câu kết thúc giữa từ, và lý do dừng ghi là max_tokens.
Tài liệu nói rõ: max_tokens là giới hạn cứng cho tổng đầu ra, suy nghĩ cộng văn bản phản hồi, và suy nghĩ vẫn được tính ngay cả khi nội dung của nó không được trả về. Ở mức effort high trở lên, Anthropic khuyên đặt giá trị lớn.
Trong thực tế:
- Lấy độ dài câu trả lời bạn muốn.
- Cộng thêm chỗ rộng rãi cho suy nghĩ. Vài nghìn token là khởi đầu hợp lý cho bất cứ thứ gì trên
low. - Kiểm tra lý do dừng sau những lần chạy đầu. Nếu vẫn ghi
max_tokens, hãy tăng giới hạn. Nếu câu trả lời đầy đủ, bạn có thể giảm nó.
Bản thân việc bị cắt, với finish_reason và cửa sổ ngữ cảnh, được đề cập trong why an AI answer stops mid-sentence.
Suy luận dài ảnh hưởng thế nào đến hóa đơn#
Giả sử bạn chạy bot hỗ trợ với 2.000 ticket mỗi ngày. Mỗi ticket khoảng 500 token đầu vào. Câu trả lời ngắn, trực tiếp khoảng 400 token đầu ra. Cùng ticket đó với suy luận ẩn dài khoảng 4.000 token đầu ra. Đó là các giả định cho ví dụ; để có số của riêng bạn, xem how many tokens a request uses.
Mỗi ngày, đó là 2.000 × 500 = 1.000.000 token đầu vào, và hoặc 2.000 × 400 = 800.000 token đầu ra hoặc 2.000 × 4.000 = 8.000.000 token đầu ra. Người đọc ticket thấy cùng hai dòng như nhau trong cả hai trường hợp. Thứ duy nhất thay đổi là khối lượng đầu ra, và đầu ra là phía mà suy luận làm phình lên.
Phép tính giống nhau trên bất kỳ mô hình nào tính phí suy luận ẩn: token đầu ra × giá đầu ra. Với DeepSeek-V4-Flash, giá đó là $0.10 mỗi 1M token đầu ra, và phía đầu ra của nó rẻ hơn giá tham chiếu của OpenRouter. Nó cũng trả lời tới 32.768 token một lần với ngữ cảnh 380K, nên max_tokens lớn vừa vặn. Giá cố định theo từng mô hình, không có giờ cao điểm, và bảng trên tự tính lại từ danh sách giá trực tiếp. Mọi giá đều có trên pricing page; DeepSeek page có chi tiết mô hình.
Đây là một yêu cầu để bạn tự gửi. Đây là tác vụ tóm tắt đơn giản, nên bạn không cần suy luận dài, và giới hạn để lại nhiều chỗ:
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"max_tokens": 2000,
"messages": [
{"role": "user", "content": "Summarize in one sentence: A token is a small piece of text that a model reads and writes, and APIs bill by the token."}
]
}'Trong phản hồi, usage. là thứ bạn trả tiền ở phía đầu ra, và finish_reason phải là stop. Nếu nó ghi length, giới hạn đã cắt câu trả lời. Lấy khóa và lệnh gọi đầu tiên: docs.
Effort nào cho công việc nào#
- Một sự kiện, tóm tắt một dòng, nhãn. Effort thấp nhất. Đây là trường hợp từ đầu bài: bạn không cần phần nháp.
- Viết hàng ngày, giải thích ngắn, chỉnh sửa đơn giản. Mặc định của mô hình. Chỉ thay đổi sau khi bạn thấy câu trả lời tốn bao nhiêu.
- Lỗi khó, kế hoạch nhiều bước, bài toán.
hightrở lên, vàmax_tokenslớn. Ở đây suy nghĩ thêm chính là mục đích.
Khi không chắc, chạy cùng prompt ở hai mức, so sánh câu trả lời và so sánh output_tokens. Nếu câu trả lời rẻ hơn vẫn tốt như vậy, bạn đã có mức của mình.
Chuyển yêu cầu cũ: lỗi 400#
Mã cũ điều khiển suy nghĩ bằng ngân sách token. Trên Claude 4.7 và các mô hình sau (Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1), dạng đó bị từ chối với lỗi 400. Bạn chuyển sang adaptive thinking và đặt độ sâu bằng effort:
// before: returns 400 on newer models
"thinking": { "type": "enabled", "budget_tokens": 8000 }
// after
"thinking": { "type": "adaptive" },
"output_config": { "effort": "medium" }
Một cái bẫy nữa: trên Opus 5.5, adaptive thinking luôn bật, và thinking: { "type": "disabled" } trả về 400 ở mọi mức effort. Haiku 5.5 cho phép tắt suy nghĩ ở mức effort high trở xuống. Nếu bạn muốn ít suy nghĩ hơn trên Opus 5.5, hãy hạ effort thay vì tắt nó.
Agent và chat dài: chọn một mức và giữ nguyên#
Nếu prompt của bạn được cache, thay đổi effort cấp cao nhất giữa các yêu cầu sẽ vô hiệu hóa các điểm ngắt cache cho cuộc hội thoại đó. Với vòng lặp agent hoặc chat dài, hãy chọn một mức ngay từ đầu. Một số mô hình cung cấp effort theo từng tin nhắn ở bản beta để giữ cache, đáng để xem khi bạn đã nắm cơ bản. Chat dài có yếu tố chi phí thứ hai, được đề cập trong why a long chat costs more.
Thử với yêu cầu của riêng bạn#
- Gửi prompt thật của bạn một lần và đọc
usage: có bao nhiêu token đầu ra, và bao nhiêu trong đó là suy nghĩ. - Hạ effort một mức và gửi lại. So sánh câu trả lời và số lượng.
- Đặt
max_tokensbằng câu trả lời bạn muốn cộng chỗ cho suy nghĩ, và kiểm tra lý do dừng.
Sau đó đưa số token của bạn vào bảng giá trực tiếp trên pricing page và bạn có ước tính hàng tháng.



