Bỏ qua đến nội dung chính

Extended thinking

📖 Nội dung bài học

Tóm tắt

Lưu ý quan trọng: Extended thinking không tương thích với một số tính năng khác, đáng chú ý là message pre-filling và temperature. Xem danh sách đầy đủ các hạn chế tại đây: https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking#feature-compatibility

Tư duy mở rộng (Extended thinking) là tính năng suy luận nâng cao của Claude, cho phép mô hình có thời gian để giải quyết các vấn đề phức tạp trước khi đưa ra phản hồi cuối cùng. Hãy coi đây là "giấy nháp" của Claude - bạn có thể thấy quá trình suy luận dẫn đến câu trả lời, giúp tăng tính minh bạch và thường mang lại phản hồi chất lượng tốt hơn.

Cách Extended Thinking hoạt động

Khi Extended thinking được bật, phản hồi của Claude thay đổi từ một khối văn bản đơn thuần thành một phản hồi có cấu trúc gồm hai phần:

Với tính năng thinking được bật, bạn sẽ nhận được cả quá trình suy luận và câu trả lời cuối cùng:

Các lợi ích chính bao gồm:

  • Khả năng suy luận tốt hơn cho các tác vụ phức tạp
  • Tăng độ chính xác cho các vấn đề khó
  • Minh bạch trong quá trình tư duy của Claude

Tuy nhiên, có những sự đánh đổi quan trọng:

  • Chi phí cao hơn (bạn trả tiền cho thinking tokens)
  • Độ trễ (latency) tăng (việc suy nghĩ tốn thời gian)
  • Xử lý phản hồi trong code của bạn phức tạp hơn

Khi nào nên dùng Extended Thinking

Quyết định này rất đơn giản: hãy dựa vào kết quả đánh giá (eval) prompt của bạn. Trước tiên, hãy chạy prompt mà không dùng thinking, nếu độ chính xác không đáp ứng yêu cầu sau khi bạn đã tối ưu hóa prompt, lúc đó hãy cân nhắc bật Extended thinking. Đây là công cụ dành cho những trường hợp prompting thông thường không đạt được kết quả mong muốn.

Cấu trúc phản hồi và Bảo mật

Các phản hồi Extended thinking bao gồm một hệ thống chữ ký (signature) đặc biệt để bảo mật:

Signature là một token mã hóa đảm bảo rằng bạn không chỉnh sửa văn bản suy luận. Điều này ngăn chặn các nhà phát triển can thiệp vào quá trình suy luận của Claude, vốn có khả năng dẫn dắt mô hình theo các hướng không an toàn.

Redacted Thinking

Đôi khi bạn sẽ nhận được một khối suy luận bị ẩn (redacted thinking block) thay vì văn bản suy luận có thể đọc được:

Điều này xảy ra khi quá trình suy luận của Claude bị các hệ thống an toàn nội bộ gắn cờ. Nội dung bị ẩn chứa phần suy luận thực tế dưới dạng mã hóa, cho phép bạn gửi lại toàn bộ tin nhắn cho Claude trong các cuộc hội thoại tương lai mà không bị mất ngữ cảnh.

Triển khai

Để bật Extended thinking trong code, bạn cần thêm hai tham số vào hàm chat của mình:

def chat(
    messages,
    system=None,
    temperature=1.0,
    stop_sequences=[],
    tools=None,
    thinking=False,
    thinking_budget=1024
):

Ngân sách suy luận (thinking budget) thiết lập số token tối đa Claude có thể sử dụng để suy luận. Giá trị tối thiểu là 1024 tokens, và tham số max_tokens của bạn phải lớn hơn thinking budget.

Thêm cấu hình thinking vào các tham số API:

if thinking:
    params["thinking"] = {
        "type": "enabled",
        "budget": thinking_budget
    }

Sau đó gọi hàm với thinking được bật:

chat(messages, thinking=True)

Kiểm thử phản hồi bị ẩn (Redacted Responses)

Để phục vụ mục đích kiểm thử, bạn có thể ép Claude trả về một khối suy luận bị ẩn bằng cách gửi một chuỗi kích hoạt (trigger string) đặc biệt. Điều này giúp đảm bảo ứng dụng của bạn xử lý các phản hồi bị ẩn một cách mượt mà mà không bị lỗi.

Extended thinking là một tính năng mạnh mẽ khi bạn cần Claude giải quyết các tác vụ suy luận phức tạp, nhưng hãy sử dụng nó một cách khôn ngoan do các tác động về chi phí và độ trễ. Hãy bắt đầu với prompting tiêu chuẩn, tối ưu hóa kỹ lưỡng, sau đó mới thêm thinking khi bạn cần thêm khả năng suy luận đó.

Tải xuống

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?