Nâng caoKỹ thuậtTổng hợp

Extended Thinking & Ultrathink — Khai thác suy luận sâu của Claude

Nghe bài viết
00:00
Race car mechanics working in a garage

Extended Thinking là gì

Extended Thinking là tính năng cho phép Claude dành thời gian suy nghĩ sâu trước khi đưa ra câu trả lời cuối cùng. Thay vì trả lời ngay lập tức dựa trên pattern recognition, Claude sẽ thực hiện một quá trình internal reasoning — giống như một chuyên gia ngồi viết nháp, suy nghĩ nhiều góc độ, kiểm tra lỗi logic, trước khi đưa ra kết luận.

Về mặt kỹ thuật, Extended Thinking hoạt động thông qua "thinking tokens" — một loại token đặc biệt không xuất hiện trong conversation bình thường nhưng được dùng để Claude "làm việc bên trong" trước khi tạo ra response cuối. Người dùng và developer có thể chọn xem hay không xem nội dung thinking này.

Cơ chế hoạt động — Thinking Tokens

Khi Extended Thinking được bật, Claude tạo ra hai loại output:

  1. Thinking block: Quá trình reasoning nội tâm — đây là nơi Claude "làm bài nháp", thử các hướng tiếp cận, phát hiện lỗi, và tự sửa
  2. Response block: Câu trả lời cuối cùng, được rút ra từ quá trình thinking ở trên
// Response structure khi dùng Extended Thinking
{
  "content": [
    {
      "type": "thinking",
      "thinking": "Hãy để tôi phân tích bài toán này...
                   Đầu tiên, tôi cần xem xét...
                   Hmm, cách tiếp cận A có vấn đề vì...
                   Thử cách B: ..."
    },
    {
      "type": "text",
      "text": "Câu trả lời cuối cùng của tôi là..."
    }
  ]
}

Quan trọng: Thinking tokens thường không được cache trong hầu hết trường hợp và chi phí cao hơn regular tokens. Đây là lý do tại sao cần cân nhắc kỹ khi nào nên bật tính năng này.

Bật Extended Thinking qua API

Extended Thinking được cấu hình thông qua tham số thinking trong API call, với tham số quan trọng nhất là budget_tokens — giới hạn tối đa số thinking tokens Claude có thể dùng:

import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic();

const response = await client.messages.create({
  model: "claude-opus-4",
  max_tokens: 16000,
  thinking: {
    type: "enabled",
    budget_tokens: 10000  // Cho phép tối đa 10K thinking tokens
  },
  messages: [
    {
      role: "user",
      content: "Thiết kế kiến trúc microservices cho hệ thống e-commerce                 xử lý 1 triệu đơn hàng/ngày. Yêu cầu: high availability,                 eventual consistency, và cost-effective trên AWS."
    }
  ]
});

Đọc thinking content

for (const block of response.content) {
  if (block.type === 'thinking') {
    console.log('Claude đang suy nghĩ:', block.thinking);
  } else if (block.type === 'text') {
    console.log('Câu trả lời:', block.text);
  }
}

Ultrathink — Reasoning ở mức tối đa

Ultrathink không phải là một API tham số riêng — đây là cách cộng đồng gọi việc set budget_tokens ở mức rất cao (32.000 tokens trở lên) để Claude có đủ không gian suy nghĩ cho các vấn đề cực kỳ phức tạp.

Khi dùng Ultrathink với Claude Opus, bạn đang khai thác full reasoning capacity của model — phù hợp cho:

  • Bài toán toán học nâng cao (số học, tổ hợp, xác suất phức tạp)
  • Thiết kế hệ thống lớn với nhiều ràng buộc
  • Phân tích chiến lược kinh doanh phức tạp
  • Debug lỗi khó trong hệ thống phức tạp
  • Viết code architecture với nhiều edge cases
// Ultrathink configuration
const response = await client.messages.create({
  model: "claude-opus-4",
  max_tokens: 32000,
  thinking: {
    type: "enabled",
    budget_tokens: 31000  // Gần như toàn bộ tokens dành cho thinking
  },
  messages: [/* complex task */]
});

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

Extended Thinking không phải "luôn tốt hơn". Nó là công cụ cho đúng hoàn cảnh:

Nên dùng khi:

  • Toán học và logic phức tạp: Bài toán có nhiều bước, dễ sai nếu không theo dõi cẩn thận. Extended Thinking giúp Claude không "nhảy" đến kết luận sai
  • Code architecture decisions: Khi cần cân nhắc nhiều trade-offs (performance vs. maintainability, monolith vs. microservices)
  • Phân tích multi-variable: Khi có nhiều yếu tố tác động qua lại nhau
  • Brainstorming sâu: Khi bạn muốn Claude khám phá corner cases và edge scenarios
  • Fact-checking quan trọng: Khi accuracy là critical và bạn muốn Claude double-check reasoning

Không nên dùng khi:

  • Tasks đơn giản: Dịch một câu, format lại text, trả lời câu hỏi fact đơn giản — thinking tokens chỉ tốn tiền không cần thiết
  • Ứng dụng real-time: Chatbot cần phản hồi trong 1-2 giây — Extended Thinking thêm 5-30 giây latency
  • High-volume, low-complexity requests: Khi bạn cần xử lý hàng nghìn requests/ngày với nội dung tương tự
  • Creative writing: Văn phong và sáng tạo không cần thinking tokens — đây là domain Claude đã giỏi sẵn

Tối ưu Thinking Token Budget

Chọn budget_tokens phù hợp là cả nghệ thuật lẫn khoa học:

Budget range Phù hợp cho Latency thêm
1.000 - 3.000 tokens Tasks trung bình — cần chút suy nghĩ thêm nhưng không quá phức tạp +3-8 giây
5.000 - 10.000 tokens Tasks phức tạp — code architecture, phân tích chiến lược +10-20 giây
16.000 - 32.000 tokens Ultrathink — bài toán cực kỳ phức tạp, không giới hạn thời gian +30-90 giây

Claude không bắt buộc phải dùng hết budget_tokens — nó dừng thinking khi cảm thấy đã đủ. Vì vậy, set budget cao hơn cần thiết không nhất thiết tốn thêm chi phí nếu task không đủ phức tạp.

Chi phí và Implications

Thinking tokens được tính phí như input tokens nhưng ở mức cao hơn. Với Claude Opus:

  • Regular input: ~$15 / 1M tokens
  • Thinking tokens: ~$15 / 1M tokens (tính vào tổng input)
  • Output tokens: ~$75 / 1M tokens

Một Ultrathink request với 30.000 thinking tokens + 2.000 output = khoảng $0.45-0.60 per request. Đắt hơn nhiều so với regular Opus call (~$0.10), nhưng cho kết quả có thể thay thế nhiều giờ làm việc của chuyên gia.

So sánh có/không có Extended Thinking

Bài toán: Tìm lỗi trong algorithm

Không có Extended Thinking: Claude thường nhận diện được lỗi rõ ràng nhưng có thể bỏ qua edge cases tinh tế, đặc biệt trong những thuật toán có nhiều state transitions.

Với Extended Thinking (5K budget): Claude trace qua từng bước execution với test cases khác nhau, phát hiện cả lỗi hiển nhiên lẫn lỗi chỉ xuất hiện với input đặc biệt. Thinking block thường chứa quá trình "chạy thử" algorithm trong đầu.

Bài toán: System design

Không có Extended Thinking: Câu trả lời đầy đủ về các components cần thiết nhưng có thể thiếu sót về failure modes, network partition handling, hay data consistency edge cases.

Với Extended Thinking (10K budget): Claude tự challenge assumptions của mình, xem xét failure scenarios, so sánh trade-offs của các design choices một cách systematic trước khi đưa ra recommendation.

Prompt Patterns hiệu quả với Extended Thinking

Một số prompt patterns giúp khai thác Extended Thinking tốt nhất:

Pattern 1: Explicit constraint listing

Thiết kế hệ thống với các constraints sau:
- Throughput: 100.000 req/s
- Latency: p99 dưới 50ms
- Budget: dưới $5.000/tháng
- Team size: 3 backend engineers

Phân tích trade-offs và đề xuất kiến trúc phù hợp nhất.

Pattern 2: Multi-perspective analysis

Đánh giá quyết định kinh doanh sau từ 3 góc độ:
1. Financial: ROI, cash flow, risk
2. Operational: implementation complexity, team capability
3. Strategic: market positioning, competitive advantage

Quyết định: [mô tả quyết định]

Pattern 3: Step-by-step verification

Giải bài toán sau và verify từng bước:
[Bài toán]

Sau khi giải, hãy:
1. Kiểm tra lại từng bước
2. Test với boundary cases
3. Confirm kết quả cuối cùng

Extended Thinking trong Agentic Workflows

Extended Thinking đặc biệt mạnh khi kết hợp với agentic workflows. Thay vì bật thinking cho mọi step, chỉ bật cho các "decision points" quan trọng:

async function agentWithSelectiveThinking(task) {
  // Bước planning: cần thinking sâu
  const plan = await claude.complete({
    messages: [{ role: 'user', content: 'Lên kế hoạch cho: ' + task }],
    thinking: { type: 'enabled', budget_tokens: 8000 }
  });

  // Bước execution: không cần thinking (actions rõ ràng)
  for (const step of plan.steps) {
    const result = await executeStep(step); // Không dùng thinking
  }

  // Bước reflection cuối: cần thinking để đánh giá
  const review = await claude.complete({
    messages: [{ role: 'user', content: 'Review kết quả: ' + results }],
    thinking: { type: 'enabled', budget_tokens: 4000 }
  });
}

Thực tế: Khi nào Extended Thinking thực sự tạo ra sự khác biệt

Qua thực tế sử dụng, Extended Thinking tạo ra sự khác biệt lớn nhất trong các tình huống:

  • Code review phức tạp: Phát hiện race conditions và security vulnerabilities tinh tế mà không-thinking Claude bỏ qua
  • Financial modeling: Đảm bảo tất cả assumptions được explicit và consistent
  • Legal/compliance analysis: Xem xét nhiều tình huống áp dụng luật và edge cases
  • Competitive analysis: Phân tích second-order effects của các quyết định chiến lược

Extended Thinking không phải là phép màu — nó là công cụ mạnh khi dùng đúng chỗ. Hiểu rõ khi nào cần suy nghĩ sâu và khi nào chỉ cần trả lời nhanh là kỹ năng quan trọng để tối ưu cả chất lượng lẫn chi phí khi làm việc với Claude.


Bài viết liên quan

Tính năng liên quan:Extended thinkingChain of thought

Bai viet co huu ich khong?

Bản quyền thuộc về tác giả. Vui lòng dẫn nguồn khi chia sẻ.

Bình luận (3)
Ảnh đại diện
Đăng nhập để bình luận...
Đăng nhập để bình luận
  • Đang tải bình luận...

Đăng ký nhận bản tin

Nhận bài viết hay nhất về sản phẩm và vận hành, gửi thẳng vào hộp thư của bạn.

Bảo mật thông tin. Hủy đăng ký bất cứ lúc nào. Chính sách bảo mật.