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 错误。