TÀI LIỆU  Thư viện kiến thức

Extended Thinking trong Claude là gì? Khi nào nên bật, khi nào nên tắt?

12:24 | 10/08/2026
Extended Thinking trong Claude là chế độ cho phép mô hình suy luận nội bộ trước khi trả lời, bằng một ngân sách token do bạn tự đặt. Bài viết này giải thích cơ chế hoạt động, cách cấu hình qua API, sự khác biệt với Adaptive Thinking, danh sách model còn hỗ trợ và những trường hợp bạn nên tắt nó đi để tiết kiệm chi phí.

Extended Thinking trong Claude là gì?

Extended Thinking là chế độ suy luận thủ công của Claude, nơi bạn cấp một ngân sách token cố định để mô hình suy nghĩ trước khi viết câu trả lời cuối.

Nói đơn giản: thay vì trả lời ngay lập tức, Claude được phép "nháp" trong đầu. Phần nháp đó gọi là thinking block. Trong đó mô hình phân tích đề bài, thử vài hướng giải, tự bắt lỗi logic của chính nó, rồi mới dựa vào kết quả để sinh ra phần văn bản bạn đọc được.

Điểm nhiều người hiểu sai: đây không phải một model khác. Vẫn là cùng một model, chỉ khác ở chỗ nó được cấp thêm token và thời gian để lập luận. Anthropic gọi cách tiếp cận này là hybrid reasoning, tức một mô hình duy nhất vừa trả lời nhanh được, vừa suy nghĩ sâu được.

Trên giao diện claude.ai hoặc app desktop, bạn chỉ cần bật tắt toggle liên quan tới thinking hoặc chọn mức effort cạnh phần chọn model. Còn trên API thì mọi thứ chi tiết hơn nhiều, và đó là phần đáng nói.

Extended Thinking hoạt động như thế nào trên API?

Bạn gửi tham số thinking: {type: "enabled", budget_tokens: N} trong request. Claude dùng tối đa N token để suy luận nội bộ rồi mới sinh phần trả lời.

Cấu trúc request cơ bản

json

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 16000,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  },
  "messages": [
    { "role": "user", "content": "Câu hỏi của bạn" }
  ]
}

Response trả về sẽ gồm hai loại block: thinking (phần suy luận) và text (phần trả lời). Bạn tự quyết định có hiển thị thinking block cho người dùng cuối hay không.

Ba luật về budget_tokens cần nhớ

Ràng buộc Chi tiết
Tối thiểu 1.024 token. Thấp hơn là API từ chối luôn
Quan hệ với max_tokens budget_tokens phải nhỏ hơn max_tokens, vì thinking token được tính vào max_tokens của lượt đó
Không pre-warm cache Vì budget phải nhỏ hơn max_tokens nên không kết hợp được với max_tokens: 0

Có một ngoại lệ cho luật thứ hai: với interleaved thinking, budget_tokens được phép vượt max_tokens vì ngân sách trải ra trên toàn bộ các thinking block trong cùng một lượt assistant.

Một chi tiết dễ bị bỏ qua: budget là mục tiêu, không phải trần cứng. Claude có thể dừng suy nghĩ sớm hơn nhiều so với ngân sách bạn cấp. max_tokens mới là trần thật sự cho tổng output.

Cách theo dõi bạn đang tiêu bao nhiêu

Kiểm tra trường usage.output_tokens_details.thinking_tokens trong response. Nó cho biết trong số output token bị tính phí, bao nhiêu là suy luận nội bộ. Khi dùng streaming, con số này chỉ xuất hiện ở event message_delta cuối cùng.

Adaptive Thinking khác Extended Thinking chỗ nào?

Adaptive Thinking để Claude tự quyết định có cần suy nghĩ hay không và sâu tới đâu, thay vì bạn ấn định một con số token cố định cho mọi request.

Đây là thay đổi kiến trúc lớn nhất và cũng là thứ khiến nhiều đoạn code cũ gãy khi nâng cấp model.

Với Extended Thinking, bạn ấn định ngân sách và Claude suy nghĩ trên mọi request, kể cả khi câu hỏi dễ như bài toán lớp 3. Với Adaptive Thinking, mô hình tự đánh giá độ phức tạp của input. Ở mức effort thấp, nó có thể bỏ qua hoàn toàn phần suy nghĩ với các input đơn giản.

Cách chuyển đổi rất gọn:

json

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 16000,
  "thinking": { "type": "adaptive" },
  "output_config": { "effort": "high" }
}

Bỏ budget_tokens, đổi type thành adaptive, điều khiển độ sâu bằng output_config.effort. Mức effort: "high" chính là mặc định của API, viết ra chỉ để bạn thấy chỗ đặt tham số. Bỏ nó đi thì hành vi vẫn y hệt.

Sau khi migrate, bạn có thể xóa luôn beta header interleaved-thinking-2025-05-14. Adaptive Thinking tự động xen kẽ suy nghĩ giữa các lần gọi tool mà không cần header.

Một số tài liệu bên thứ ba mô tả thang effort gồm cả mức xhigh/max [CẦN KIỂM CHỨNG] - nên đối chiếu bảng effort trên tài liệu chính thức của Anthropic trước khi ghi vào codebase sản xuất.

Model nào còn dùng được Extended Thinking?

Extended Thinking đã bị deprecated trên thế hệ Claude 4.6 và bị từ chối hoàn toàn với lỗi 400 trên Claude 4.7 trở đi.

Nhóm model Tình trạng Extended Thinking
Claude 4.5 và cũ hơn (Sonnet 4.5, Opus 4.5, Haiku 4.5, Claude 4 series) Đây là chế độ thinking duy nhất. Cứ dùng budget_tokens bình thường
Claude Opus 4.6, Sonnet 4.6 Deprecated. Request vẫn chạy nhưng nên chuyển sang Adaptive
Claude Opus 4.7, 4.8, Opus 5, Sonnet 5, Fable 5, Mythos 5 Không hỗ trợ. Trả lỗi 400
Claude Mythos Preview Hỗ trợ cả hai chế độ

Nếu request của bạn báo lỗi 400 với thông điệp bắt đầu bằng "thinking.type.enabled" is not supported, nguyên nhân gần như chắc chắn là model bạn đang gọi đã chuyển sang Adaptive Thinking.

Riêng Claude Haiku 4.5 không hỗ trợ interleaved thinking. Claude API vẫn nhận beta header nhưng bỏ qua nó.

Khi nào nên bật Extended Thinking?

Bật khi chi phí của một câu trả lời sai lớn hơn nhiều so với chi phí token và độ trễ tăng thêm.

Danh sách các tình huống đáng bật:

  • Toán và logic nhiều bước. Những bài mà sai ở bước một là hỏng toàn bộ chuỗi lập luận ở bước năm.
  • Kiến trúc phần mềm, refactor nhiều file, debug hệ thống. Mô hình cần không gian để vạch lộ trình các file cần sửa trước khi bắt đầu viết code.
  • Rà soát bảo mật và đánh giá rủi ro. Cần đi qua hàng chục kịch bản tấn công giả định trước khi kết luận.
  • Phân tích tài liệu dài, so sánh nhiều điều khoản. Đọc hợp đồng, đối chiếu quy định, tổng hợp báo cáo tài chính.
  • Lập kế hoạch đa ràng buộc. Ví dụ thiết kế pipeline agent, phân bổ ngân sách marketing đa kênh có nhiều biến số.

Lời khuyên thực dụng từ tài liệu Anthropic: với task đơn giản, bắt đầu gần mức tối thiểu 1.024 token rồi tăng dần. Với task phức tạp, bắt đầu từ 16.000 token trở lên rồi điều chỉnh theo yêu cầu về độ trễ và chất lượng. Lợi ích tăng theo kiểu giảm dần, nên đừng nâng budget một cách vô tội vạ.

Nếu bạn đặt budget trên 32.000 token, hãy dùng batch processing. Ép mô hình suy nghĩ vượt ngưỡng này tạo ra request chạy rất lâu, dễ đụng timeout hệ thống và giới hạn kết nối mở.

Khi nào nên tắt Extended Thinking?

Tắt cho các tác vụ đơn giản, tra cứu nhanh, chuyển đổi định dạng hoặc bất kỳ giao diện nào cần phản hồi tức thì.

Bật Extended Thinking để hỏi "hôm nay là thứ mấy" giống như thuê kiến trúc sư đến nhà chỉ để treo một cái tranh. Vẫn xong việc, nhưng bạn trả tiền cho thứ mình không cần.

Các trường hợp nên tắt:

  • Hỏi đáp fact ngắn, tra định nghĩa, tìm ngày tháng.
  • Trích xuất dữ liệu, chuyển PDF sang JSON, chuẩn hóa cấu trúc.
  • Dịch, tóm tắt ngắn, phân loại đơn giản.
  • Viết caption, meta description, brainstorm nhẹ.
  • Chatbot chăm sóc khách hàng cần trả lời trong một giây.
  • Pipeline batch xử lý hàng loạt request đơn giản, nơi throughput quan trọng hơn chiều sâu.

Nguyên tắc kiến trúc hợp lý là model routing: đặt mặc định ở chế độ tiêu chuẩn cho toàn bộ truy vấn ngắn, chỉ rẽ nhánh sang Extended Thinking khi hệ thống phát hiện độ phức tạp vượt ngưỡng.

Extended Thinking tốn bao nhiêu chi phí và độ trễ?

Thinking token được tính vào output token và tính phí như output token. Bật suy luận sâu đồng nghĩa với việc hóa đơn tăng theo độ sâu lập luận.

Đây là điểm nhiều team hiểu nhầm. Phần "nháp" trong đầu Claude không hề miễn phí chỉ vì người dùng cuối không nhìn thấy nó.

Về độ trễ, một phản hồi ở chế độ chuẩn có thể trả token đầu tiên trong chưa đầy một giây. Với Extended Thinking, thời gian chờ tăng thêm đáng kể, và có thể lên tới hàng chục giây với các thiết lập suy luận sâu [CẦN KIỂM CHỨNG - con số cụ thể phụ thuộc model, budget và tải hệ thống].

Hệ quả cho UI: bạn cần thiết kế loading indicator tử tế, hoặc bật stream: true để người dùng thấy tiến trình thay vì nhìn màn hình trắng.

Extended Thinking ảnh hưởng thế nào tới prompt caching?

Thay đổi budget_tokens giữa các request sẽ vô hiệu hóa cache breakpoint, vì giá trị budget được render vào prompt.

Đây là cái bẫy tốn tiền nhất trong toàn bộ chủ đề này.

Prompt caching giúp bạn tái sử dụng phần tiền tố ổn định của prompt, cắt giảm mạnh chi phí input. Nhưng chỉ cần bạn đổi ngân sách suy nghĩ từ 4.000 lên 8.000 token ở request thứ ba, breakpoint cấp message sẽ miss ngay lập tức. Hệ thống phải tạo lại cache từ đầu.

Việc chuyển đổi giữa hai chế độ thinking cũng là một thay đổi cấu hình, nên request đầu tiên sau khi migrate cũng sẽ làm mất cache.

Quy tắc vận hành: chọn một mức budget rồi giữ nguyên trong suốt vòng đời của một cuộc hội thoại có cache. Đừng nghịch tham số giữa chừng.

Interleaved thinking là gì và bật thế nào?

Interleaved thinking cho phép Claude chèn khối suy nghĩ vào giữa các lần gọi tool trong cùng một lượt, để lập luận về kết quả vừa thu được trước khi quyết định bước tiếp theo.

Thay vì gọi một loạt tool một cách máy móc, Claude gọi tool thứ nhất, đọc kết quả, mở không gian suy nghĩ để đánh giá, rồi mới quyết định có cần gọi tool thứ hai hay không.

Cách bật ở chế độ thủ công:

  • Claude Opus 4.5, Sonnet 4.5 và các model Claude 4 cũ hơn: thêm beta header interleaved-thinking-2025-05-14.
  • Claude Sonnet 4.6: header vẫn chạy được nhưng đã deprecated. Nên chuyển sang Adaptive Thinking.
  • Claude Opus 4.6: chế độ thủ công không có interleaved thinking. Bắt buộc dùng thinking: {type: "adaptive"} nếu bạn cần suy luận giữa các lần gọi tool.

Lưu ý thêm: interleaved thinking chỉ hỗ trợ tool dùng qua Messages API.

Câu hỏi thường gặp về Extended Thinking trong Claude

Extended Thinking có phải là một model riêng không?

Không. Đây là chế độ vận hành của cùng một model, cho phép nó dùng thêm token để suy luận nội bộ trước khi sinh câu trả lời cuối.

budget_tokens tối thiểu là bao nhiêu?

Tối thiểu 1.024 token. API sẽ từ chối mọi giá trị thấp hơn.

Thinking token có được tính phí không?

Có. Thinking token được tính vào output token của lượt đó và tính phí như output token thông thường.

Vì sao request của tôi báo lỗi 400 khi dùng thinking.type enabled?

Vì model bạn đang gọi thuộc thế hệ Claude 4.7 trở lên, nơi chế độ thủ công không còn được hỗ trợ. Hãy chuyển sang thinking: {type: "adaptive"}.

Extended Thinking và Adaptive Thinking nên chọn cái nào?

Nếu model của bạn hỗ trợ Adaptive Thinking thì nên dùng Adaptive. Chỉ giữ Extended Thinking khi bạn cần độ trễ dự đoán được hoặc kiểm soát chính xác chi phí suy nghĩ.

Đổi budget_tokens giữa chừng có sao không?

Có. Việc này làm mất hiệu lực cache breakpoint và buộc hệ thống tính lại toàn bộ bối cảnh, gây lãng phí chi phí.

Người dùng claude.ai có cần quan tâm tới budget_tokens không?

Không cần. Trên giao diện web và app, bạn chỉ thao tác với toggle thinking hoặc mức effort. budget_tokens là tham số dành cho API.

Nên bắt đầu từ đâu?

Nếu bạn đang gọi API, việc cần làm ngay là kiểm tra model mình dùng thuộc nhóm nào trong bảng ở trên, rồi quyết định giữ budget_tokens hay migrate sang effort. Chỉ mất mười phút nhưng tránh được một lỗi 400 giữa production.

Nếu bạn dùng Claude cho công việc hằng ngày, thứ đáng học không phải là tham số API mà là thói quen phân loại tác vụ: cái nào cần Claude suy nghĩ kỹ, cái nào chỉ cần nó trả lời nhanh. Phân loại đúng thì bạn vừa tiết kiệm thời gian chờ, vừa nhận được câu trả lời chất lượng hơn ở đúng chỗ cần.

Ở Vinalink Academy, phần tư duy này nằm ngay trong buổi đầu của khóa Claude AI Mastery: hiểu đúng cách Claude xử lý context, prompt, memory và output, rồi cá nhân hóa Claude bằng Project và Skill cho công việc thật của bạn. Chương trình 6 buổi học online qua Zoom, có cả phần xây trợ lý AI và Vibe Coding cho người không biết lập trình. Chi tiết tại: https://vinalink.edu.vn/cac-khoa-hoc/claude-ai-mastery/

Call Zalo Messenger TikTok LinkedIn