模型

Anthropic: Claude Sonnet 4.5

Markdown · JSON

Anthropic: Claude Sonnet 4.5

Claude Sonnet 4.5 是 Anthropic 的文字與圖片模型,適用於軟體開發、複雜代理、電腦操作與分析工作。它支援直接回應或手動延伸思考,文件記載的 beta 流程可在工具呼叫之間推理。

關於模型

此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。

Claude Sonnet 4.5 是 Anthropic 偏重軟體開發、複雜代理任務與電腦操作的 Sonnet 版本,也改善推理與數學。它接收文字與圖片,產生文字。發布說明描述跨多步驟持續工作、程式碼理解,以及涉及較廣專案而非單一獨立函式的修改。實用簡報會指出必要行為、相關來源資料與交付成品:修補程式提案、實作說明、文件分析或結構化答案。

軟體工作請提供專案限制、相關檔案或摘錄、觀察到的錯誤,以及預期結果的具體範例。要求提供受影響程式碼,說明提議修改如何處理該範例。開發者將此模型定位於建構代理與透過工具進行開發任務。周邊應用程式讀取及編輯檔案、執行命令或檢查,並回傳實際輸出;模型依這些證據推理。最終報告應區分修改提案與已完成檢查。

電腦操作是其視覺與代理能力的另一種應用。Anthropic 發布示範透過連接環境與瀏覽器互動、瀏覽頁面及處理試算表。視覺簡報可提供截圖、指出目標,並定義應用程式允許哪些操作。應用程式再執行選定互動,回傳改變後畫面或其他結果。同樣地,模型可為文件、試算表與投影片準備內容及程式碼,由環境產生完成檔案。文字與圖片理解不代表模型是原生圖片或音訊生成器。

確切的開發者規格列出 200K 詞元上下文視窗,以及最多 64K 輸出詞元。可靠知識截止為 2025 年 1 月,與頁面列出的較晚訓練資料截止不同。長輸入應清楚保留文件邊界、頁面標籤、單位與程式碼識別碼,並為所需答案及推理預留空間。開發者也記載此版本的上下文感知,因此支援的流程會追蹤對話剩餘空間。這有助於在視窗內管理持續任務,但不會把視窗改成後來 Sonnet 版本的較大容量。

Sonnet 4.5 支援一般回應與手動延伸思考。後者以 budget_tokens 設定可見答案之前內部推理的目標。文件記載的最小值為 1,024 詞元,預算通常必須低於 max_tokens,因為思考與最終答案共用生成額度。預算是目標,不承諾恰好消耗該詞元數。此版本沒有後來 Sonnet 模型所述的自適應思考模式或 effort 控制。請選擇所需分析深度,並為可用的最終答案保留足夠額度。

開發者的交錯思考 beta,讓 Sonnet 4.5 在同一輪的工具呼叫之間推理,利用回傳觀察決定下一步。它需要支援的 Messages 流程中所記載的 beta 功能。這種情況下,思考預算可超過 max_tokens,因為它涵蓋同一助理輪次中的多個思考區塊。回傳工具結果時,應原封不動帶回相關思考內容,包括簽章;編輯內容會使其失效。因此,研究或除錯任務可在提議檢查、實際回傳結果與更新分析之間交替,不把文字提案當成完成動作。

視覺資料方面,開發者支援 JPEG、PNG、GIF 與 WebP,動畫只使用第一格。此版本使用的標準原生圖片級別,長邊上限為 1,568 像素,視覺詞元上限為 1,568;較大圖片會縮小。開發者圖片指南為 200K 上下文模型列出每次 API 請求最多 100 張圖片,但圖片及整體請求大小條件可能更早達到。實際可行時,將圖片放在問題前,為多張圖片加標籤,並保留小字或圖表標籤。指南建議清楚圖片,以及足以解讀可見細節的周邊上下文。

上下文編輯與記憶工具隨此模型一同引入,以支援較長代理流程。這些是應用程式支援的方式,用來保留有用狀態或移除舊工具資料;不是無限模型記憶,也不是後來的伺服器壓縮功能。多階段任務應保留已作決策、待解問題,以及下一步所需證據。Anthropic 也描述了更能抵抗外部內容中的隱藏指令,同時指出模型特定分類器有時會標記無害資料。實用結果仍是連結提供證據、可供審查的成品,並讓確切 Sonnet 4.5 模式及限制與後來版本分開。

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions claude-sonnet-4-5-20250929-thinking

claude-sonnet-4-5-20250929-thinking

Anthropic /claude-sonnet-4-5-20250929-thinking

入門

Claude Sonnet 4.5 是 Anthropic 的文字與圖片模型,適用於軟體開發、複雜代理、電腦操作與分析工作。它支援直接回應或手動延伸思考,文件記載的 beta 流程可在工具呼叫之間推理。

接受的輸入
文字
結果
文字

Ailoot 可用 · 輸入與方法

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
輸入
text
輸出
text
輸出格式
json 或 SSE
欄位類型要求值與限制預設值
欄位model類型string要求必填值與限制
claude-sonnet-4-5-20250929-thinking
預設值—
欄位messages類型message[]要求必填值與限制
項目數下限: 1
預設值—
欄位messages[].role類型string要求必填值與限制
依模型而定
預設值—
欄位messages[].content類型string要求選填值與限制
適用條件: 文字對話
預設值—
欄位stream類型boolean要求選填值與限制預設值false
輸入素材組合

文字 · UTF8 文字

messages[].content

方法參數與生命週期
參數規格
參數content_type規格application/json
參數required規格model, messages
參數material_types規格text
參數messages規格具有 role/content 結構的訊息陣列
參數file_material規格實際 UTF-8 文件以原文文字插入;不推定檔案 ID
參數optional_controls規格stream
參數control_scope規格文字對話;stream 是布林值,預設為 false。
參數output_modalities規格text
參數hosted_operations規格false
參數multimodal_input_binding規格null

方法別名: /chat/completions

生命週期: synchronous_or_streamed

將確切模型 ID 與 messages 一併送出。

上下文長度不是輸出上限。

文字檔案可提供原文文字;圖片/音訊/檔案物件輸入需要精確綁定。

方案

費率資訊不會增加請求選項。支援的參數列於所選方法中。

快速模式
未指定 選取快速模式時
flex 模式
未指定 選取 flex 模式時
最高推理強度
未指定 最高推理強度採用 default 調整值時

Ailoot 費率

各設定的價格

設定費率表費用
設定詞元基本費率費率表基本費率費用
輸入 · 輸入 Token $0.006 / 1K Token
輸出 · 輸出 Token $0.03 / 1K Token
輸入 · 讀取快取 $0.0006 / 1K Token
輸入 · 寫入快取 $0.0075 / 1K Token
輸入 · 寫入快取,1 小時 — / 1K Token

Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →

請求範例

Ailoot Ultra · OpenAI Chat

curlPython SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"claude-sonnet-4-5-20250929-thinking","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="claude-sonnet-4-5-20250929-thinking", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))

接收並儲存結果

Ailoot Ultra · OpenAI Chat

json 或 SSE

保留所有已完成的結果

請保留所有完整傳回的回應、檔案與內容區塊。

保留每個候選項及其內容/工具呼叫/推理。SSE 中依候選項/工具索引組合增量,保留最終完成原因與用量。

需要檢查原始回應時

保留請求/回應 ID 與標頭。未提供通用的文字工作擷取 URL。

回應欄位
欄位類型
欄位choices[].index類型integer
欄位choices[].message.content類型string|null
欄位choices[].message.tool_calls類型tool_call[]
欄位choices[].message.reasoning_content類型string
欄位choices[].message.reasoning_details類型object|array
欄位choices[].finish_reason類型string|null
欄位usage類型object
錯誤與後續步驟
回應條件下一步
回應400 · invalid_request_error條件必要欄位、素材表示方式或參數值無效下一步提出新的建立請求前,先修正指定欄位。

別名

模型別名

Ailoot Ultra claude-sonnet-4-5-20250929-thinking

方法路徑別名

/chat/completions

相關呼叫用 ID

claude-sonnet-4-5-20250929-thinking

FAQ · Anthropic: Claude Sonnet 4.5
可以使用哪些輸入與結果?

POST /v1/chat/completions · claude-sonnet-4-5-20250929-thinking: text → text

請求使用哪些欄位?

POST /v1/chat/completions · claude-sonnet-4-5-20250929-thinking: model, messages, stream

適用哪些限制?

POST /v1/chat/completions · claude-sonnet-4-5-20250929-thinking: messages.min_items: 1

更多詳情

將 Ailoot 串接 Claude Code、OpenCode、Hermes 或自己的應用程式。

公司及其專案組合

公司及其專案組合:數百萬客戶,每月銷售額達數十億。

優惠購買 token。

訂閱優惠適合持續工作,折扣碼購買 token 最高可折 50%。

訂閱
為定期請求選擇優惠方案。
最高 50% 折扣碼
購買時輸入代碼,價格依活動重算。
歷史中的費用
每次請求保存模型、token 與金額。

選擇訂閱 · 查看模型價格

將 API 加入 你銷售的產品。

依 Ailoot 正式服務條款與授權合約串接 SaaS、應用程式與機器人;轉售請申請經銷授權。

商用應用程式
在付費功能加入文字、圖片、影片與聲音生成。
經銷授權
提供專案說明與存取方式,要求書面使用和轉售條件。
網站文件
串接前可閱讀正式服務條款、授權合約與資料處理政策。

申請經銷授權 · 正式服務條款與授權合約