OpenClaw 里用 apiyi 的 Claude(Anthropic Messages)— 已验证可用配置
这份文档记录我们实测跑通的 apiyi Claude 配置形态:能多轮对话、能工具调用(tool loop),并且避开 Bedrock 的400 ValidationException: Operation not allowed。
结论(最重要的几条)
- apiyi 的 Claude 要想工具稳定,优先走
api: "anthropic-messages"(也就是POST /v1/messages)。 - 必须带请求头:
anthropic-version: 2023-06-01。 - 强制禁用 beta 头:
anthropic-beta: ""。 - Claude 4.6 在 apiyi/Bedrock 上,只要请求里出现 thinking 相关字段(
thinking/output_config)就可能直接 400。- 所以我们把模型条目设置为
reasoning: false,让 OpenClaw/pi-ai 不去发 thinking 字段。
- 所以我们把模型条目设置为
为什么要这么配
- 走
openai-completions时:纯聊天能通,但一旦进入工具多轮(tool_calls / tool_result / tool loop),会被 Bedrock 400 拒绝。 - 改走
anthropic-messages后:tool_use+tool_result这套格式能被 apiyi 接受;但 thinking 字段仍然会触发 400,所以要关。
Provider 配置(必须)
把下面这段放进openclaw.json 的 models.providers.apiyi。
注意:
baseUrl必须是https://api.apiyi.com(不要带/v1),否则有机会拼成.../v1/v1/messages。- 别在公频贴真实 key。
allowlist(必须,不然会 fallback)
把模型加入agents.defaults.models,否则 OpenClaw 可能提示 provider/model “未登记/未允许”,然后悄悄 fallback 到别的模型。
Agent 示例(以 tasks 为例)
常见坑:Session 覆盖(非常常见)
就算你改了 config,已有频道 session 可能还保存着旧的modelProvider/model 覆盖,导致“看起来没生效”。
两种修法:
- 直接 patch session model:
- 或者 reset session(清 transcript):
怎么验证
openclaw models status --agent tasksopenclaw agent --agent tasks --message "只回 pong" --json- 看
meta.agentMeta.provider/model是否符合预期。
- 看
已知报错与含义
400 ... ValidationException: Operation not allowed- 基本就是请求里出现了 thinking 字段(
thinking/output_config)或某些 beta 功能。 - 处理:确保
reasoning:false+anthropic-beta:""。
- 基本就是请求里出现了 thinking 字段(
安全提醒
- 如果你曾在 Discord 公频贴过 apiyi key,按“已泄露”处理,立刻去轮换。
openclaw.json和 agent 的models.json都会明文存 key(本机文件层面)。