Claude Model Capabilities 完整指南:從 Extended Thinking 到 Vision 的全面解析


Claude API 提供了豐富的模型能力(Model Capabilities),涵蓋從深度推理到多模態處理的完整功能矩陣。本文將逐一深入解析十三大核心能力,確保不遺漏任何一個知識點。

一、Extended Thinking:延伸思考

基本概念

Extended Thinking 賦予 Claude 增強的推理能力,讓模型在給出最終答案前,先進行逐步的內部推理過程。啟用後,API 回應會包含 thinking content blocks(思考區塊),隨後才是 text content blocks(文字回覆)。

支援模型

  • Claude Opus 4.6:僅支援 Adaptive Thinking(手動模式已棄用)
  • Claude Sonnet 4.6:支援手動 Extended Thinking(含 Interleaved 模式)及 Adaptive Thinking
  • Claude Opus 4.5、4.1、4:完整支援
  • Claude Sonnet 4.5、4:完整支援
  • Claude Haiku 4.5:完整支援
  • Claude Sonnet 3.7:已棄用,但仍支援

使用方式

透過 thinking 參數啟用:

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={"type": "enabled", "budget_tokens": 10000},
    messages=[{"role": "user", "content": "問題內容"}],
)

budget_tokens 決定 Claude 可用於內部推理的最大 token 數。此值必須小於 max_tokens。注意:在 Opus 4.6 上 budget_tokens 已棄用,應改用 Adaptive Thinking。

Summarized Thinking(摘要式思考)

Claude 4 系列模型的 Extended Thinking 回傳的是思考過程的摘要,而非完整思考內容。關鍵要點:

  • 計費基於完整思考 token,而非摘要 token
  • 帳單上的 output token 數不會與回應中可見的 token 數吻合
  • 摘要的前幾行較為詳細,適合用於 prompt engineering 除錯
  • 摘要由不同模型處理,思考模型本身看不到摘要結果
  • Claude Sonnet 3.7 仍回傳完整思考輸出

Streaming Thinking

透過 SSE 串流時,思考內容以 thinking_delta 事件傳送。思考區塊結束前會有一個 signature_delta 事件,包含用於驗證的簽名。

Extended Thinking 與 Tool Use

Extended Thinking 可與 Tool Use 搭配使用,但有以下限制:

  • 僅支援 tool_choice: {"type": "auto"}{"type": "none"}
  • 強制工具呼叫(any 或指定工具名稱)不相容
  • 必須將 thinking blocks 完整傳回 API 以維持推理連貫性
  • 不可在 assistant turn 中途切換 thinking 模式

Interleaved Thinking(交錯思考)

在 Tool Use 場景中,Interleaved Thinking 允許 Claude 在每次工具呼叫結果回傳後再次思考,實現更精細的多步推理。

模型支援情況:

  • Opus 4.6:使用 Adaptive Thinking 時自動啟用,不需 beta header
  • Sonnet 4.6:支援 interleaved-thinking-2025-05-14 beta header,或透過 Adaptive Thinking 自動啟用
  • 其他 Claude 4 模型:需加入 beta header

啟用 Interleaved Thinking 後,budget_tokens 可以超過 max_tokens,因為它代表整個 assistant turn 中所有思考區塊的總預算。

Thinking Encryption 與 Redaction

完整思考內容會被加密並存於 signature 欄位,用於驗證思考區塊的完整性。偶爾 Claude 的內部推理會觸發安全系統,此時部分或全部思考區塊會被加密為 redacted_thinking blocks。這些區塊傳回 API 時會被解密,不影響 Claude 繼續推理。

Prompt Caching 互動

  • 思考參數(啟用/停用或預算改變)會使訊息快取斷點失效
  • System prompt 和工具定義的快取不受思考參數變更影響
  • Interleaved Thinking 會放大快取失效效果

Thinking Block Preservation

從 Claude Opus 4.5 開始(包含 Opus 4.6),前一輪 assistant turn 的思考區塊預設會保留在模型上下文中。好處是可以優化快取命中率,但長對話會消耗更多 context 空間。

定價

  • 思考過程產生的 token 按 output token 計費
  • 上一輪 assistant turn 的思考區塊在後續請求中作為 input token 計費
  • 帳單上的 output token 數不等於回應中可見的 token 數

二、Adaptive Thinking:自適應思考

基本概念

Adaptive Thinking 是在 Claude Opus 4.6 和 Sonnet 4.6 上使用 Extended Thinking 的推薦方式。與手動設定 budget_tokens 不同,Adaptive Thinking 讓 Claude 根據請求的複雜度動態決定是否使用以及使用多少 Extended Thinking。

使用方式

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    messages=[{"role": "user", "content": "問題內容"}],
)

與 Effort 參數整合

Adaptive Thinking 可與 effort 參數搭配使用:

Effort 等級思考行為
maxClaude 總是深度思考,無約束(僅 Opus 4.6)
high(預設)Claude 幾乎總是思考,對複雜任務進行深度推理
medium中度思考,對非常簡單的查詢可能跳過思考
low最小化思考,對簡單任務跳過思考以追求速度

Adaptive vs Manual vs Disabled

模式設定適用場景
Adaptivethinking: {type: "adaptive"}Claude 自動決定思考深度
Manualthinking: {type: "enabled", budget_tokens: N}需要精確控制思考 token 花費
Disabled省略 thinking 參數不需要 Extended Thinking

自動啟用 Interleaved Thinking

Adaptive Thinking 會自動啟用 Interleaved Thinking,Claude 可在工具呼叫之間進行思考,特別適合 agentic 工作流程。

Prompt Caching

連續使用 adaptive 思考的請求會保留 prompt cache 斷點。但在 adaptiveenabled/disabled 之間切換會破壞訊息的快取斷點。

行為可透過 Prompt 調整

可以在 system prompt 中加入指導來調整思考觸發行為:

Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality - typically for problems
that require multi-step reasoning. When in doubt, respond directly.

三、Effort 參數:控制回應深度

基本概念

Effort 參數讓開發者控制 Claude 在回應時願意花費多少 token,在回應品質與 token 效率之間取得平衡。此參數支援 Claude Opus 4.6、Sonnet 4.6 和 Opus 4.5,無需 beta header。

Effort 等級

等級說明典型用途
max最高能力,不限 token 花費(僅 Opus 4.6)需要最深推理與最詳盡分析的任務
high高能力,等同未設定參數複雜推理、困難程式問題、agentic 任務
medium平衡方式,適度 token 節省需要速度、成本與效能平衡的 agentic 任務
low最高效,大幅 token 節省簡單任務、subagent、需要最佳速度和最低成本

使用方式

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=4096,
    messages=[{"role": "user", "content": "問題內容"}],
    output_config={"effort": "medium"},
)

Effort 影響所有 token 輸出

Effort 影響回應中的所有 token,包括:

  • 文字回覆和說明
  • 工具呼叫和函式參數
  • Extended Thinking(當啟用時)

這意味著較低的 effort 不僅減少回覆長度,也會減少工具呼叫次數。

Sonnet 4.6 的建議

Sonnet 4.6 預設為 high effort。建議明確設定 effort:

  • medium:推薦預設值,適合大多數應用
  • low:高流量或延遲敏感的工作負載
  • high:需要 Sonnet 4.6 最高智力的任務

四、Fast Mode:高速模式(Research Preview)

基本概念

Fast Mode 為 Claude Opus 4.6 提供高達 2.5 倍的 output token 生成速度,適用於延遲敏感和 agentic 工作流程。目前處於 research preview 階段,需要加入等候名單。

使用方式

response = client.beta.messages.create(
    model="claude-opus-4-6",
    max_tokens=4096,
    speed="fast",
    betas=["fast-mode-2026-02-01"],
    messages=[{"role": "user", "content": "問題內容"}],
)

關鍵特性

  • 同一模型,更快的推論配置,智力和能力不變
  • 速度提升集中在 output tokens per second(OTPS),而非 time to first token(TTFT)
  • 僅支援 Claude Opus 4.6

定價

Fast Mode 的定價為標準 Opus 費率的 6 倍:

  • Input:$30 / MTok
  • Output:$150 / MTok

Fast Mode 定價可與其他定價修飾符疊加(如 Prompt Caching、Data Residency)。

Rate Limits

Fast Mode 有獨立的 rate limit,與標準 Opus rate limit 分開。回應中包含 anthropic-fast-* 相關的 header 資訊。

Fallback 策略

當 Fast Mode 的 rate limit 被用盡時,可以捕捉 RateLimitError 並移除 speed: "fast" 參數以回退到標準速度。注意:切換速度會導致 prompt cache miss。

限制

  • 切換 fast/standard 速度會使 prompt cache 失效
  • 不支援 Batch API
  • 不支援 Priority Tier

五、Structured Outputs:結構化輸出

基本概念

Structured Outputs 透過 constrained decoding(約束解碼)確保 Claude 的回應遵循特定 schema,保證輸出有效且可解析。提供兩個互補功能:

  • JSON Outputs(output_config.format):以特定 JSON 格式取得回應
  • Strict Tool Use(strict: true):保證工具名稱和輸入的 schema 驗證

JSON Outputs

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "提取此郵件的關鍵資訊..."}],
    output_config={
        "format": {
            "type": "json_schema",
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "email": {"type": "string"},
                },
                "required": ["name", "email"],
                "additionalProperties": False,
            },
        }
    },
)

回應中的 response.content[0].text 會是符合 schema 的有效 JSON。

SDK 整合

各 SDK 提供便利的 helper:

  • Python:使用 Pydantic model 搭配 client.messages.parse()
  • TypeScript:使用 Zod schema 搭配 zodOutputFormat()
  • Java:使用 Java class 搭配 outputFormat(Class<T>)
  • Ruby:使用 Anthropic::BaseModel 搭配 output_config: {format: Model}

Strict Tool Use

在工具定義中加入 strict: true 即可啟用:

tools=[{
    "name": "get_weather",
    "description": "取得天氣資訊",
    "strict": True,
    "input_schema": {
        "type": "object",
        "properties": {
            "location": {"type": "string"},
        },
        "required": ["location"],
        "additionalProperties": False,
    },
}]

保證效果:

  • 工具 input 嚴格遵循 input_schema
  • 工具 name 始終有效

JSON Schema 限制

支援的功能:

  • 所有基本型別:object、array、string、integer、number、boolean、null
  • enum(僅限 string、number、bool、null)
  • anyOfallOf(有限制)
  • $ref$defdefinitions
  • 字串格式:date-timetimedatedurationemailhostnameuriipv4ipv6uuid

不支援的功能:

  • 遞迴 schema
  • 外部 $ref
  • 數值約束(minimummaximummultipleOf
  • 字串約束(minLengthmaxLength
  • additionalProperties 設為 false 以外的值

Grammar Compilation 與 Caching

  • 首次使用特定 schema 時會有額外延遲(grammar 編譯)
  • 編譯後的 grammar 會快取 24 小時
  • 變更 schema 結構會使快取失效

無效輸出情況

  • Refusal(stop_reason: "refusal"):安全拒絕優先於 schema 約束
  • Token Limit(stop_reason: "max_tokens"):回應被截斷,可能不符合 schema

功能相容性

  • 相容:Batch Processing、Token Counting、Streaming
  • 不相容:Citations、Message Prefilling

六、Citations:引用

基本概念

Citations 讓 Claude 在回答文件相關問題時提供詳細的引用來源,幫助追蹤和驗證資訊。所有活躍模型(Haiku 3 除外)均支援此功能。

運作方式

  1. 提供文件並啟用 citations(citations.enabled=true
  2. 文件被處理和分塊
  3. Claude 回覆中包含引用資訊

文件類型

類型適用場景分塊方式引用格式
Plain Text簡單文字、散文句子字元索引(0-based)
PDF含文字的 PDF句子頁碼(1-based)
Custom Content列表、逐字稿、特殊格式不額外分塊區塊索引(0-based)

回應結構

啟用 citations 後,回應包含多個 text blocks,每個 text block 可包含 Claude 的宣稱和支持該宣稱的引用列表:

{
    "type": "text",
    "text": "草是綠色的",
    "citations": [{
        "type": "char_location",
        "cited_text": "The grass is green.",
        "document_index": 0,
        "start_char_index": 0,
        "end_char_index": 20
    }]
}

Token 成本

  • 啟用 citations 會因系統提示和文件分塊而略增 input tokens
  • cited_text 欄位不計入 output tokens
  • 在後續對話輪次中傳回時,cited_text 也不計入 input tokens

功能相容性

  • 相容:Prompt Caching、Token Counting、Batch Processing
  • 不相容:Structured Outputs(JSON output format)

七、Streaming Messages:串流訊息

基本概念

透過設定 "stream": true,使用 Server-Sent Events(SSE)逐步接收回應。

SDK 使用方式

with client.messages.stream(
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
    model="claude-opus-4-6",
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

取得完整 Message(不處理事件)

若不需要逐步處理文字,SDK 提供在底層使用 streaming 但回傳完整 Message 物件的方式:

with client.messages.stream(
    max_tokens=128000,
    messages=[{"role": "user", "content": "撰寫詳細分析..."}],
    model="claude-opus-4-6",
) as stream:
    message = stream.get_final_message()

max_tokens 大於 21,333 時,SDK 會強制要求使用 streaming 以避免 HTTP timeout。

事件類型

串流使用以下事件流程:

  1. message_start:包含空 content 的 Message 物件
  2. 一系列 content blocks,各含 content_block_start、多個 content_block_deltacontent_block_stop
  3. message_delta:頂層 Message 變更(如 stop_reason
  4. message_stop:串流結束

Content Block Delta 類型

  • text_delta:文字內容增量
  • input_json_delta:工具呼叫的 JSON 參數增量(為 partial JSON 字串)
  • thinking_delta:Extended Thinking 的思考內容增量
  • signature_delta:思考區塊的簽名
  • citations_delta:引用資訊增量

錯誤復原

  • Claude 4.5 及更早版本:可透過將部分回應作為 assistant message 的開頭來恢復中斷的串流
  • Claude 4.6:需加入 user message 指示模型從中斷處繼續

八、Batch Processing:批次處理

基本概念

Message Batches API 是一種強大且節省成本的方式,用於異步處理大量 Messages 請求。特別適合不需即時回應的任務,大多數批次在 1 小時內完成,同時降低 50% 的成本。

定價

所有用量均以標準 API 價格的 50% 計費:

模型批次 Input批次 Output
Claude Opus 4.6$2.50 / MTok$12.50 / MTok
Claude Sonnet 4.6$1.50 / MTok$7.50 / MTok
Claude Haiku 4.5$0.50 / MTok$2.50 / MTok

批次限制

  • 每批次最多 100,000 個 Message 請求或 256 MB(以先達到者為準)
  • 處理時間最長 24 小時
  • 結果可在建立後 29 天內取用
  • 批次以 Workspace 為範圍

使用方式

message_batch = client.messages.batches.create(
    requests=[
        Request(
            custom_id="request-1",
            params=MessageCreateParamsNonStreaming(
                model="claude-opus-4-6",
                max_tokens=1024,
                messages=[{"role": "user", "content": "Hello"}],
            ),
        ),
    ]
)

可批次處理的功能

任何可透過 Messages API 發送的請求都可加入批次:Vision、Tool Use、System Messages、多輪對話、任何 beta 功能。

結果類型

結果類型說明
succeeded請求成功
errored請求遇到錯誤(不計費)
canceled使用者在處理前取消(不計費)
expired24 小時過期(不計費)

與 Prompt Caching 搭配

批次處理支援 Prompt Caching,但由於異步併行處理,cache hit 僅以 best-effort 方式提供,通常 cache hit rate 介於 30%-98%。

九、PDF Support:PDF 處理

基本概念

Claude 可以理解 PDF 中的文字、圖片、圖表和表格,適用於分析財務報告、提取法律文件資訊、翻譯文件、將文件資訊轉換為結構化格式等場景。

需求與限制

需求限制
最大請求大小32MB
每次請求最大頁數100
格式標準 PDF(無密碼/加密)

提供 PDF 的三種方式

  1. URL 引用:直接引用線上 PDF 的 URL
  2. Base64 編碼:將 PDF 轉為 base64 後放入 document content block
  3. Files API:上傳 PDF 後以 file_id 引用

處理流程

  1. 系統將每頁轉換為圖片,同時提取每頁的文字
  2. Claude 分析文字和圖片以理解文件
  3. Claude 回覆時可同時引用文字和視覺內容

Token 成本估算

  • 文字 token:每頁通常 1,500-3,000 tokens
  • 圖片 token:每頁轉換為圖片後,套用 Vision 的成本計算

效能最佳實踐

  • 將 PDF 放在文字之前
  • 使用標準字體
  • 確保文字清晰可讀
  • 將頁面旋轉到正確方向
  • 在提示中使用邏輯頁碼
  • 大型 PDF 分塊處理
  • 啟用 Prompt Caching 以加速重複分析

Amazon Bedrock 上的 PDF 支援

Bedrock 的 Converse API 有兩種模式:

  • Converse Document Chat(原始模式):僅基本文字提取
  • Claude PDF Chat(新模式):完整視覺理解,需啟用 citations

十、Search Results:搜尋結果

基本概念

Search Result content blocks 為 RAG 應用程式啟用自然引用和來源歸屬功能,將 web search 品質的引用帶到自訂應用程式中。

提供方式

  1. 從工具呼叫回傳:自訂工具回傳搜尋結果,適合動態 RAG
  2. 作為頂層內容:直接在 user messages 中提供搜尋結果

Schema 結構

{
    "type": "search_result",
    "source": "https://example.com/article",
    "title": "文章標題",
    "content": [
        {"type": "text", "text": "搜尋結果的實際內容..."}
    ],
    "citations": {"enabled": true}
}

引用格式

Claude 使用搜尋結果中的資訊時,會自動包含引用:

{
    "type": "search_result_location",
    "source": "https://example.com",
    "title": "文章標題",
    "cited_text": "被引用的確切文字",
    "search_result_index": 0,
    "start_block_index": 0,
    "end_block_index": 0
}

引用控制

預設情況下 citations 是停用的。需要明確設定 citations.enabled: true 來啟用。注意:同一請求中所有搜尋結果的 citations 設定必須一致(全部啟用或全部停用)。

支援模型

所有主要 Claude 模型均支援,包括 Opus 4.6、Sonnet 4.6、Sonnet 4.5、Opus 4.5、Opus 4.1、Opus 4、Sonnet 4、Haiku 4.5 等。

十一、Multilingual Support:多語言支援

效能表現

Claude 在多語言任務中表現出色,以英語(100%)為基準的相對效能:

語言Opus 4.1Sonnet 4.5Haiku 4.5
西班牙語98.1%98.2%96.4%
葡萄牙語97.8%97.8%96.1%
法語97.9%97.5%95.7%
中文(簡體)97.1%96.9%94.2%
日語96.9%96.8%93.5%
韓語96.6%96.7%93.3%
阿拉伯語97.1%97.2%92.5%
印地語96.8%96.7%92.4%
孟加拉語95.7%95.4%90.4%
斯瓦希里語89.8%91.1%78.3%
約魯巴語80.3%79.7%52.7%

上述數據基於 MMLU 測試集的翻譯版本,由專業人工翻譯。

最佳實踐

  1. 提供清晰的語言上下文:明確指定輸入/輸出語言以提高可靠性
  2. 使用原生文字:以原生文字(而非音譯)提交文字可獲最佳效果
  3. 考慮文化脈絡:有效溝通需要語言之外的文化和地區意識

語言支援考量

  • Claude 可處理大多數使用標準 Unicode 字元的世界語言
  • 效能因語言而異,廣泛使用的語言表現特別強
  • 即使在數位資源較少的語言中,Claude 仍維持有意義的能力

十二、Embeddings:嵌入向量

基本概念

文字嵌入(text embeddings)是文字的數值表示,用於衡量語義相似度。Anthropic 本身不提供嵌入模型,推薦使用 Voyage AI。

Voyage AI 推薦模型

模型Context Length維度說明
voyage-3-large32,0001024最佳通用和多語言檢索品質
voyage-3.532,0001024平衡效能與檢索品質
voyage-3.5-lite32,0001024最佳延遲和成本
voyage-code-332,0001024程式碼檢索最佳化
voyage-finance-232,0001024金融領域最佳化
voyage-law-216,0001024法律領域最佳化

此外還有多模態模型 voyage-multimodal-3,可處理交錯的文字和圖片內容。

使用方式

import voyageai

vo = voyageai.Client()
texts = ["範例文字 1", "範例文字 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")

重要參數

  • input_type:對檢索任務必須指定 "document""query"
  • output_dtype:支援 floatint8uint8binaryubinary 量化選項

相似度函式

Voyage 嵌入已正規化為長度 1,因此 dot-product 和 cosine similarity 等效,且計算更快。

十三、Vision:視覺能力

基本概念

Claude 的視覺能力允許理解和分析圖片,開啟多模態互動的可能性。

基本限制

  • 單一請求最多 100 張圖片(API)或 20 張(claude.ai)
  • 單張圖片最大 8000x8000 px(超過 20 張時限 2000x2000 px)
  • 單張圖片最大 5MB(API)或 10MB(claude.ai)
  • 支援格式:JPEG、PNG、GIF、WebP

提供圖片的三種方式

  1. Base64 編碼:直接在 image content block 中提供
  2. URL 引用:引用線上圖片的 URL
  3. Files API:上傳後以 file_id 引用
message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "url",
                    "url": "https://example.com/image.jpg",
                },
            },
            {"type": "text", "text": "描述這張圖片。"},
        ],
    }],
)

圖片大小與 Token 成本

最佳做法是在上傳前調整圖片大小。長邊超過 1568 pixels 的圖片會被縮放。Token 計算公式:tokens = (width px * height px) / 750

範例成本(基於 Opus 4.6 的 $3/MTok input):

圖片大小Token 數每張成本
200x200 px~54~$0.00016
1000x1000 px~1334~$0.004
1092x1092 px~1590~$0.0048

最佳實踐

  • 圖片放在文字之前可獲最佳效果
  • 確保圖片清晰、不模糊
  • 重要文字確保可讀且不過小
  • 多張圖片時使用「Image 1:」「Image 2:」標註

限制

  • 無法辨識(即命名)圖片中的人物
  • 低品質、旋轉或過小圖片可能導致錯誤
  • 空間推理能力有限(如讀類比時鐘、描述棋子位置)
  • 大量小物體的計數可能不精確
  • 無法判斷圖片是否為 AI 生成
  • 不處理違反使用政策的不當或明確內容
  • 不適用於複雜診斷掃描(CT、MRI)
  • Claude 只能理解圖片,不能生成或編輯圖片

總結

Claude 的 Model Capabilities 涵蓋了從深度推理(Extended Thinking、Adaptive Thinking)到效率控制(Effort、Fast Mode),從結構化輸出(Structured Outputs)到來源追蹤(Citations、Search Results),從串流處理(Streaming)到批量運算(Batch Processing),再到多模態處理(PDF Support、Vision)和多語言支援。每項能力都可獨立使用或互相搭配,為開發者構建複雜 AI 應用提供了完整的工具箱。

在實際開發中,建議根據場景選擇合適的能力組合。例如:需要高品質推理的任務可啟用 Adaptive Thinking 搭配 high effort;需要快速回應的簡單任務可使用 low effort 甚至 Fast Mode;需要處理大量資料的場景適合 Batch Processing 搭配 Prompt Caching;RAG 應用可結合 Search Results 和 Citations 實現精確的來源歸屬。