Claude APIAnthropic APIExtended ThinkingPrompt Caching

Cách sử dụng Claude API: hướng dẫn đầy đủ cho lập trình viên 2026

1 phút đọc

Claude không phải “GPT với base_url khác”. API Claude có giao thức riêng —Anthropic Messages API— và những điểm mạnh riêng không sống sót qua lớp tương thích OpenAI.

Tư duy mở rộng, nơi Claude hiển thị suy luận nội bộ từng bước. Prompt caching với 90% giảm giá cho đầu vào lặp lại. Sử dụng công cụ được tích hợp sâu vào cấu trúc tin nhắn thay vì gắn thêm.

Nếu bạn dùng Claude qua endpoint tương thích OpenAI, bạn mất tất cả những điều này.

Hướng dẫn này bao quát API Claude đúng cách thiết kế: giao thức gốc, đầy đủ tính năng, sẵn sàng sản xuất. Nếu bạn ở khu vực Anthropic chặn truy cập trực tiếp, các ví dụ code hoạt động giống hệt qua nền tảng tổng hợp hỗ trợ Anthropic gốc —đặt ANTHROPIC_BASE_URL thành endpoint nền tảng và dùng API key của nền tảng.

Model Claude năm 2026

Mô hìnhInput $/MOutput $/MContextSWE-benchPhù hợp nhất
Claude Opus 4.8$5.00$25.001M88.6%Gỡ lỗi phức tạp, quyết định kiến trúc
Claude Sonnet 4.6$3.00$15.001M~85%Viết code hàng ngày, nội dung, phân tích
Claude Haiku 4.5$1.00$5.00200K~78%Tác vụ đơn giản khối lượng lớn, nhạy cảm về chi phí

Fable 5 và Mythos 5 —các model thế hệ tiếp theo của Claude với 95% SWE-bench— đã bị đình chỉ theo các biện pháp kiểm soát xuất khẩu của Mỹ vào tháng 6/2026. Chúng vẫn không khả dụng cho mọi người dùng API tính đến tháng 7/2026. Khi nào và nếu có, giao thức và các mẫu trong hướng dẫn này sẽ áp dụng trực tiếp.

Chọn Claude nào cho tác vụ nào. Opus cho tác vụ nơi câu trả lời sai tốn hơn request API —gỡ lỗi phức tạp, kiểm toán bảo mật, phân tích pháp lý. Sonnet cho phát triển hàng ngày —sinh code, review PR, viết nội dung. Haiku cho tác vụ đơn giản khối lượng lớn —phân loại, trích xuất, Q&A cơ bản— nơi chi phí quan trọng hơn độ sâu tối đa.

Giao thức gốc Anthropic: vượt xa tương thích OpenAI

Messages API của Anthropic khác biệt cơ bản với Chat Completions API của OpenAI. Sự khác biệt không mang tính hình thức —chúng bật các tính năng không tồn tại trong thế giới tương thích OpenAI.

Khác biệt cấu trúc chính. System prompt là tham số cấp cao nhất, không phải vai trò tin nhắn. Tin nhắn xen kẽ giữa vai userassistant.

Việc sử dụng công cụ và kết quả của nó là các loại khối nội dung trong tin nhắn, không phải vai trò tin nhắn riêng. Khối suy nghĩ là một loại nội dung tiết lộ suy luận nội bộ của model.

Chính những khác biệt này là lý do Claude Code, Cursor với Anthropic gốc và các công cụ Claude gốc khác bắt buộc dùng giao thức gốc —toàn bộ UX của chúng phụ thuộc vào các tính năng mà bản dịch tương thích OpenAI lược bỏ.

Python —SDK Anthropic gốc:

import anthropic

client = anthropic.Anthropic(
    base_url="https://api.tokspan.com/anthropic",  # Native protocol endpoint
    api_key="ts-your-key-here"
)

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1000,
    system="You are a senior software engineer. Answer with code when appropriate.",
    messages=[
        {"role": "user", "content": "Write a Python function to detect deadlocks in a concurrent system."}
    ]
)

print(response.content[0].text)

Bạn mất gì với bản dịch tương thích OpenAI. Tư duy mở rộng (chuỗi suy luận nội bộ của model) bị lược bỏ —bạn trả tiền cho token suy nghĩ nhưng không bao giờ thấy chúng. Sử dụng công cụ suy giảm —các khối nội dung tool_use có cấu trúc trở thành JSON phẳng, mất thông tin kiểu và kết quả một phần trong streaming. Model không thể xen kẽ suy luận với hành động, nên các vòng lặp agent phụ thuộc thực thi công cụ thời gian thực thấy kết quả bịa đặt thay vì kết quả thật. Computer use không hoạt động chút nào —nó phụ thuộc các tính năng giao thức gốc không có tương đương OpenAI.

Nếu bạn dùng Claude cho bất cứ điều gì ngoài chat đơn giản, hãy dùng giao thức gốc. Mức giảm 90% prompt caching cũng yêu cầu giao thức gốc —các lớp tương thích OpenAI thường không truyền dấu hiệu cache_control.

Tư duy mở rộng và khối suy nghĩ

Tư duy mở rộng là tính năng đặc trưng nhất của Claude. Model thực hiện suy luận chuỗi suy nghĩ nội bộ trước khi tạo phản hồi. Với tư duy bật, bạn có thể thấy suy luận này —hướng dẫn tư duy mở rộng của Anthropic bao quát cấu hình và thực hành tốt nhất— vô giá cho việc gỡ lỗi prompt, hiểu quyết định model và xây dựng niềm tin vào đầu ra phức tạp.

Cách tư duy hoạt động. Bạn đặt tham số thinking với giá trị budget_tokens (tối thiểu 1,024). Claude phân bổ tối đa số token đó cho suy luận nội bộ. Những token đó được tính theo mức giá đầu ra.

Sau khi suy nghĩ, Claude tạo phản hồi hiển thị. Suy nghĩ được trả trong các khối nội dung thinking tách khỏi phản hồi văn bản.

Cấu hình tư duy:

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=2000,
    thinking={
        "type": "enabled",
        "budget_tokens": 2048  # Allow up to 2,048 tokens for reasoning
    },
    messages=[
        {"role": "user", "content": "Analyze this distributed system design for failure modes."}
    ]
)

# Access the model's reasoning
for block in response.content:
    if block.type == "thinking":
        print(f"Claude's reasoning:\n{block.thinking}")
    elif block.type == "text":
        print(f"Claude's response:\n{block.text}")

Khi nào dùng tư duy mở rộng. Gỡ lỗi phức tạp: luôn bật. Phân tích kiến trúc: luôn bật. Tác vụ code nơi độ chính xác quan trọng hơn tốc độ: bật, với budget_tokens 2,048–4,096.

Q&A đơn giản, phân loại và tóm tắt: tắt —token suy nghĩ thêm chi phí mà không cải thiện chất lượng đầu ra cho tác vụ đơn giản.

Đánh đổi chi phí. Tư duy thêm trung bình 20–40% vào tiêu thụ token. Một request thường tiêu thụ 1,500 token (đầu vào + đầu ra) có thể tiêu thụ 2,100 token với tư duy bật. Với request $0.05, đó là $0.07 —tăng 40%.

Cho phiên gỡ lỗi nơi Claude bắt được một bug đồng thời mà bạn mất bốn giờ tìm, $0.02 thêm là số tiền đáng giá nhất bạn tiêu cả tuần.

Prompt caching: giảm 90% chi phí đầu vào

Claude cung cấp prompt caching mạnh mẽ nhất ngành —giảm 90% cho token đầu vào được cache qua khối cache_control trong Messages API. Về cơ chế hoạt động của caching, kinh tế ghi/đọc cache, hành vi TTL và chiến lược đa nhà cung cấp, xem bài phân tích sâu prompt caching của chúng tôi.

Triển khai:

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1000,
    system=[
        {
            "type": "text",
            "text": "You are a code reviewer. Here are our coding standards...",
            "cache_control": {"type": "ephemeral"}  # Cache this system prompt
        }
    ],
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Review this PR diff: ...",
                    "cache_control": {"type": "ephemeral"}  # Can be cached if repeated
                }
            ]
        }
    ]
)

Sử dụng công cụ và computer use

Việc sử dụng công cụ của Claude khác biệt về cấu trúc so với function calling của OpenAI —và trong sản xuất, khác biệt này có ý nghĩa. Những lập trình viên coi tool calling của Claude như thay thế trực tiếp cho function calling của OpenAI sẽ khám phá khoảng cách ngay trong vòng lặp agent streaming đầu tiên.

Hỏng hóc phổ biến nhất: OpenAI trả tool_calls như một delta bạn tích lũy qua các chunk streaming. Claude trả tool_use như một khối nội dung ngang hàng với khối text —bạn xử lý nó như một đối tượng hoàn chỉnh, không phải dòng mảnh vỡ. Code viết theo mẫu OpenAI âm thầm bỏ lỡ lời gọi công cụ của Claude vì nó tìm delta.tool_calls trong cấu trúc nơi tool use đến như content[1].type == "tool_use". Khi biết khác biệt, sửa chữa đơn giản, nhưng chẩn đoán lần đầu tốn của đội hàng giờ gỡ lỗi thứ trông như model “phớt lờ” công cụ của họ.

Cho so sánh đầy đủ giữa các nhà cung cấp với code chạy được cho cả bốn nền tảng, xem hướng dẫn function calling và sử dụng công cụ.

Sử dụng công cụ —triển khai Python:

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1000,
    tools=[{
        "name": "search_codebase",
        "description": "Search the codebase for a given symbol or pattern.",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "Search query"},
                "file_pattern": {"type": "string", "description": "Optional glob pattern, e.g. '*.py'"}
            },
            "required": ["query"]
        }
    }],
    messages=[{"role": "user", "content": "Find where authentication logic is implemented."}]
)

# Handle tool_use content blocks
for block in response.content:
    if block.type == "tool_use":
        tool_name = block.name
        tool_input = block.input
        # Execute the tool, then continue the conversation with tool_result

Khác biệt chính với OpenAI. Claude trả tool_use như một khối nội dung trong tin nhắn cạnh các khối text —chúng ngang hàng trong mảng nội dung. OpenAI trả tool_calls như một trường riêng của tin nhắn. Khác biệt cấu trúc này nghĩa là Claude có thể xen kẽ suy nghĩ, văn bản và lời gọi công cụ trong một phản hồi —model có thể giải thích nó đang làm gì trong khi gọi công cụ.

Điều hỏng với bản dịch tương thích OpenAI. Gửi cho Claude một yêu cầu tìm kiếm mã nguồn qua endpoint tương thích OpenAI, phản hồi có thể là: “Để tôi tìm module auth… [tool_use: search_codebase query=‘auth’] Tìm thấy trong src/auth/handlers.py.” Với giao thức gốc, bạn nhận ba khối nội dung riêng biệt theo thứ tự: khối văn bản giải thích ý định, khối tool_use có cấu trúc với đầu vào được gõ kiểu, và khối văn bản khác với kết quả. Vòng lặp agent của bạn xử lý từng khối, thực thi công cụ và chèn tool_result để tiếp tục. Với bản dịch tương thích OpenAI, ba khối hợp nhất thành một chuỗi văn bản phẳng. Vòng lặp agent của bạn thấy một tin nhắn duy nhất không có khối tool_use khả thi. Lời gọi công cụ không bao giờ thực thi. Lời giải thích của model —“Tìm thấy trong src/auth/handlers.py”— được viết trước khi tìm kiếm thực sự chạy, nên đường dẫn tệp có thể là ảo giác. Chế độ lỗi này là lặng lẽ: model nghe có vẻ tự tin, nhưng mọi kết quả đều bịa đặt.

Gốc so với tương thích: so sánh bằng tác vụ thực. Chúng tôi chạy cùng tác vụ review PR qua Claude Opus 4.8 hai lần —một lần gốc, một lần qua endpoint tương thích OpenAI. Tác vụ: tìm mọi mẫu SQL injection trong một mã nguồn Python 200 tệp, giải thích từng phát hiện và đề xuất sửa chữa. Giao thức gốc: Claude stream 14 khối texttool_use xen kẽ. Agent thực thi từng tìm kiếm tệp khi đến, xử lý kết quả một phần ngay lập tức. Tổng thời gian: 32 giây, 8,400 token. Tương thích OpenAI: lời gọi công cụ đến như JSON phẳng đính kèm tin nhắn cuối. Không streaming tool use, không kết quả một phần. Agent không thể bắt đầu xử lý cho đến khi phản hồi đầy đủ hoàn tất ở giây 68. Hai lần tìm kiếm quá hạn và cần retry. Tổng thời gian: 94 giây, 11,500 token với retry. Cùng model, cùng tác vụ —biến số duy nhất là lớp giao thức.

Computer use (beta). Claude có thể tương tác với giao diện máy tính —di chuyển con trỏ, bấm chuột, gõ phím. Điều này mang tính thử nghiệm và đắt (tính theo mức giá đầu ra tiêu chuẩn cho ảnh chụp màn hình và hành động liên quan). Đừng dùng cho bất cứ điều gì bạn có thể đạt bằng một lời gọi công cụ. Hãy dùng để tự động hóa ứng dụng kế thừa không có API, hoặc kiểm thử ứng dụng GUI nơi việc xác minh trực quan có ý nghĩa.

Tích hợp Claude Code. Claude Code —agent CLI viết code của Anthropic— chỉ dùng giao thức gốc. Cho việc xây dựng kiến trúc agent tận dụng giao thức này, xem hướng dẫn kiến trúc agent AI của chúng tôi. Để dùng Claude Code với nền tảng tổng hợp, đặt:

export ANTHROPIC_BASE_URL="https://api.tokspan.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="ts-your-key-here"

Claude Code sẽ dùng endpoint Anthropic gốc của nền tảng một cách minh bạch. Mọi tính năng —tư duy mở rộng, sử dụng công cụ, computer use— hoạt động không cần sửa đổi.

Truy cập và thanh toán: giải quyết vấn đề chặn Claude

Truy cập API trực tiếp của Anthropic khả dụng trong một tập khu vực được hỗ trợ, và việc chấp nhận thẻ tùy thuộc từng quốc gia. Claude Code và SDK Anthropic kiểm tra khu vực của bạn trên mỗi kết nối.

Ba cách truy cập hoạt động tháng 7/2026:

  1. Nền tảng tổng hợp hỗ trợ Anthropic gốc. Đặt ANTHROPIC_BASE_URL thành endpoint nền tảng. Dùng API key nền tảng. Mọi tính năng Claude hoạt động —tư duy mở rộng, caching, sử dụng công cụ.

  2. Gateway tự lưu trữ để kiểm soát dữ liệu doanh nghiệp. Triển khai LiteLLM hoặc gateway trên hạ tầng bạn kiểm soát. Kết nối Anthropic từ môi trường của riêng bạn. Cần duy trì hạ tầng và có tài khoản Anthropic với phương thức thanh toán được hỗ trợ.

  3. API trực tiếp với thanh toán được hỗ trợ. Nếu bạn có phương thức thanh toán được Anthropic chấp nhận và ở khu vực được hỗ trợ, truy cập API trực tiếp hoạt động. Đây là lựa chọn đơn giản nhất nếu khả dụng với bạn.

Cho hướng dẫn đầy đủ về việc tích hợp Claude và các mô hình tiên phong khác qua một điểm cuối API duy nhất, với so sánh độ trễ và code, xem cách truy cập API OpenAI & Claude năm 2026.

Câu hỏi thường gặp

Tôi có thực sự cần SDK Anthropic gốc không?

Cho chat cơ bản: không, tương thích OpenAI chạy được. Cho tư duy mở rộng, sử dụng công cụ, computer use và prompt caching: có, bắt buộc Anthropic gốc.

Những tính năng đó là lợi thế cạnh tranh của Claude. Dùng Claude mà không có chúng giống như mua xe thể thao và không bao giờ ra khỏi số một.

Token suy nghĩ tốn bao nhiêu?

Token suy nghĩ tính theo mức giá đầu ra —$25/M cho Opus, $15/M cho Sonnet. Dự trù thêm 20–40% token mỗi request khi dùng tư duy mở rộng. Một phản hồi 1,000 token với 500 token suy nghĩ trên Opus tốn ~$0.0375 so với $0.025 không có tư duy.

Tại sao Claude Code yêu cầu giao thức gốc?

Claude Code dùng khối suy nghĩ, streaming sử dụng công cụ và các mẫu hội thoại đa lượt không sống sót qua bản dịch tương thích OpenAI. Toàn bộ UX của công cụ —hiển thị suy luận model, xử lý kết quả công cụ giữa luồng— phụ thuộc các tính năng giao thức gốc.

Dùng Claude thế nào nếu truy cập trực tiếp không khả dụng ở nơi tôi sống?

Dùng nền tảng tổng hợp hỗ trợ giao thức Anthropic gốc. Đặt ANTHROPIC_BASE_URL thành endpoint nền tảng. Đặt ANTHROPIC_AUTH_TOKEN thành key nền tảng của bạn.

Claude Code và SDK Anthropic hoạt động giống hệt.

Claude Opus vs. Sonnet: chênh lệch giá có đáng không?

Cho gỡ lỗi phức tạp và agent sản xuất: có —suy luận kiến trúc sâu hơn của Opus bắt các trường hợp hiếm mà Sonnet bỏ lỡ. Cho chat hàng ngày, sinh nội dung và code đơn giản: Sonnet rẻ hơn 40% và đủ gần về chất lượng để người dùng không nhận ra khác biệt.

Thị trường LLM API năm 2026 đang tách dọc theo một đường đứt gãy mà hầu hết lập trình viên chưa nhận ra. Một bên: tiêu chuẩn tương thích OpenAI, một lớp hàng hóa nơi model thay thế được và giá là điểm khác biệt duy nhất.

Bên kia: giao thức gốc —Messages protocol của API Claude, Gemini API của Google— nơi các tính năng riêng của nhà cung cấp như tư duy mở rộng, function calling tự động và streaming sử dụng công cụ tạo ra khoảng cách năng lực thực sự mà không lớp tương thích nào nối được.

Những lập trình viên xây dựng trên giao thức gốc không đặt cược vào một nhà cung cấp. Họ đặt cược rằng lớp hàng hóa sẽ luôn là tập con của những gì các model tốt nhất thực sự làm được. Cho đến nay, cược đó đang sinh lời.

Giao thức gốc quan trọng vì những tính năng khiến Claude đáng dùng —tư duy mở rộng, sử dụng công cụ và prompt caching giảm 90% chi phí đầu vào. Nếu truy cập API trực tiếp không khả dụng ở khu vực của bạn, hoặc bạn muốn giữ Claude bên cạnh các model khác đằng sau một mối quan hệ thanh toán duy nhất, các nền tảng tổng hợp nói Messages protocol gốc cho phép bạn dùng Claude Code giống hệt bằng cách đặt ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN thành endpoint nền tảng.