OpenClaw + OmniaKey:一个 provider,三家模型
把 OmniaKey 作为一个 OpenAI 兼容 provider 加进 OpenClaw,用 model id 跑 Claude、GPT、Gemini——附上所有人都会漏的 allowlist 那步。
OpenClaw 是个框架,不是开箱即用的助手:它给你 agent 循环、工具调用和代码编辑,但智能来自你接进去的 provider。所以 provider 配置是你最该花心思的那个文件——而 OmniaKey 正好能作为一个 OpenAI 兼容入口接进去,一把就接通 Claude、GPT、Gemini 三家。
把 OmniaKey 加成一个 provider
provider 配置在 ~/.openclaw/openclaw.json。在 models.providers 下加 OmniaKey:
{
"models": {
"mode": "merge",
"providers": {
"omniakey": {
"baseUrl": "https://api.omniakey.com/v1",
"apiKey": "your-omniakey-api-key",
"api": "openai-completions",
"models": [
{ "id": "claude-opus-4-8" },
{ "id": "gpt-5.5" },
{ "id": "gemini-3.1-pro-preview" }
]
}
}
}
}
"mode": "merge" 告诉 OpenClaw 把这个 provider 加到你现有配置里、而不是整个替换——如果你已经配过别的 provider,留着这行。一个 OpenAI 兼容 provider 就覆盖三家模型:OmniaKey 按 model id 路由,所以 claude-opus-4-8、gpt-5.5、gemini-3.1-pro-preview 都走同一个入口。
所有人都会漏的一步:把 model 加进 allowlist
光定义 provider 还不够。OpenClaw 还要求 model 在 allowlist 里,否则就算 key 没问题,你也会撞上经典的 model not allowed 报错。这一段进同一个 openclaw.json,和上面的 models 同级——models 和 agents 是平级的顶层 key。把全限定 ref——provider/model-id——加到 agents.defaults 下:
{
"agents": {
"defaults": {
"models": ["omniakey/claude-opus-4-8", "omniakey/gpt-5.5", "omniakey/gemini-3.1-pro-preview"],
"model": "omniakey/claude-opus-4-8"
}
}
}
请求体里只带 model id;provider/model-id 这个 ref 是 OpenClaw 内部的名字。provider 定义和 allowlist 条目缺一不可,各自负责不同的事——很多人正是配好了 provider、漏了 allowlist,于是卡在这里。
验证
openclaw doctor
doctor 会检查配置文件、provider、key 格式、一次实时连接和 model 访问。然后 openclaw models list 应该列出你的 OmniaKey 模型,你可以在 agents.defaults 里把当前模型设成 omniakey/gpt-5.5,或任何你 allowlist 过的 id。
别手动改 ~/.openclaw/agents/main/agent/models.json——它是从 openclaw.json 重新生成的。万一 JSON 敲错了,直接让 OpenClaw 帮你修,它很擅长揪出漏掉的逗号。
为什么让 OpenClaw 走 OmniaKey
三家一把 key、一份余额,按 token 计费、没有月费——而且绝不偷换。OmniaKey 跑的就是你 allowlist 里那个确切的 model id;上游不可用时你会看到报错,而不是被悄悄换成一个“等价模型”——而它跑到一半,对你代码库的理解可能就跟前面对不上了。
编程 agent 指南 覆盖了其他工具。