Skip to main content

為什麼選擇 Anthropic 原生模式

OpenClaw 支援兩種方式呼叫 Claude 模型。如果你需要使用**工具呼叫(tool_use)**等高階功能,強烈建議使用 anthropic-messages 原生模式:
openai-completions 時,純聊天能通,但一旦進入工具多輪呼叫(tool_calls → tool_result → tool loop),可能被後端拒絕返回 400。改走 anthropic-messages 後,tool_use + tool_result 格式可正常工作。

推薦配置

編輯 ~/.openclaw/openclaw.json,新增以下 provider 配置:

關鍵配置說明

以下三點必須正確設定,否則會遇到 400 報錯:
  1. baseUrl 不帶 /v1:必須是 https://api.apiyi.com,否則會拼成 .../v1/v1/messages 導致請求失敗
  2. headers 中必須包含 anthropic-version:設為 2023-06-01
  3. anthropic-beta 設為空字串:停用 beta 功能頭,避免觸發不支援的特性

關於 reasoning: false

Claude 模型在 API易 上,請求中如果出現 thinking 相關欄位(thinking / output_config)會直接返回 400 錯誤將模型條目設定 "reasoning": false,可以讓 OpenClaw 不傳送 thinking 欄位,避免此問題。

模型白名單配置

將模型加入 agents.defaults.models,否則 OpenClaw 可能提示模型”未登記”,然後靜默回退到其他模型:

與 OpenAI 相容模式的對比

Claude 模型 ID 列表

混合配置(推薦)

同時配置 OpenAI 相容和 Anthropic 原生兩個提供商,按需切換:
在聊天中使用 /model apiyi/gpt-5.4/model apiyi-claude/claude-sonnet-4-6 切換模型。

驗證配置

配置完成後,驗證是否生效:
在返回的 JSON 中,檢查 meta.agentMeta.providermeta.agentMeta.model 是否與配置一致。

常見問題

這通常是請求中出現了 thinking 相關欄位導致的。確保:
  • 模型條目設定了 "reasoning": false
  • headers 中 "anthropic-beta": "" 已正確配置
已有的聊天 session 可能快取了舊的模型配置。兩種解決方式:修改 session 的模型:
或重置 session:
檢查是否已將模型加入 agents.defaults.models 白名單。未登記的模型會被 OpenClaw 自動回退。
Anthropic 原生模式的 baseUrl 不要/v1。如果寫成 https://api.apiyi.com/v1,實際請求會變成 .../v1/v1/messages,導致 404 錯誤。