在部署或使用 OpenClaw 过程中,如果系统返回 “Model is not allowed” 错误,通常表示当前请求的模型名称不被允许访问或没有被系统正确识别。这类问题通常与模型权限配置、API Key 权限、模型名称错误、模型平台限制、OpenRouter 或 OpenAI API 访问规则以及系统配置文件有关。要解决该问题,需要从模型名称、平台权限、API 配置以及 OpenClaw 模型策略等多个方面进行排查。
一、确认模型名称是否正确
“Model is not allowed” 最常见的原因是模型名称填写错误。OpenClaw 在调用模型时需要使用正确的模型 ID,如果模型名称拼写错误或未在平台支持列表中,就会被拒绝。
例如常见模型名称:
- gpt-4o
- gpt-4-turbo
- claude-3-sonnet
- deepseek-chat
- mistral-7b
错误示例:
MODEL_NAME=gpt4
正确示例:
MODEL_NAME=gpt-4o
需要确保模型名称与 API 平台完全一致。
二、检查 API Key 是否拥有模型权限
不同 API Key 可能拥有不同模型权限。例如某些 API Key 只允许访问基础模型,而无法访问高级模型。
常见情况包括:
- OpenAI Key 未开通 GPT-4 权限
- Claude Key 未启用 Claude 3 模型
- OpenRouter Key 未启用指定模型
可以在平台控制台查看 API Key 权限。
三、确认 OpenRouter 模型是否启用
如果 OpenClaw 通过 OpenRouter 调用模型,需要确认模型是否在 OpenRouter 中启用。
查看可用模型:
curl https://openrouter.ai/api/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
返回列表中如果没有目标模型,则说明该模型未被允许访问。
此时需要更换可用模型或升级账户权限。
四、检查 OpenClaw 配置文件
OpenClaw 的模型配置通常位于环境变量或配置文件中。
示例配置:
MODEL_PROVIDER=openai
MODEL_NAME=gpt-4o
OPENAI_API_KEY=your_key
如果配置文件中模型名称不正确,系统会返回 “Model is not allowed”。
修改配置后需要重启 OpenClaw。
五、确认 API Base 地址正确
如果使用第三方模型平台,例如 OpenRouter 或代理 API,需要确认 API Base 地址正确。
OpenRouter 示例:
OPENAI_API_BASE=https://openrouter.ai/api/v1
如果 API Base 地址错误,服务器可能返回模型权限错误。
六、确认模型在平台中存在
部分模型可能已经下线或更换名称。
例如:
需要查看平台最新模型列表。
例如 OpenAI 模型列表:
curl https://api.openai.com/v1/models
七、检查 OpenClaw 模型白名单设置
部分 OpenClaw 部署版本可能启用了模型白名单策略。
配置示例:
ALLOWED_MODELS=gpt-4o,claude-3-sonnet,mistral-7b
如果请求的模型不在白名单中,系统会返回 “Model is not allowed”。
解决方法是将模型加入白名单。
八、确认模型供应商配置
OpenClaw 支持多模型平台,例如:
- OpenAI
- Anthropic
- OpenRouter
- Ollama
如果模型平台配置错误,也会出现该问题。
示例:
MODEL_PROVIDER=anthropic
MODEL_NAME=claude-3-sonnet
如果 provider 设置为 openai,而模型却是 Claude,则会被拒绝。
九、检查请求参数格式
部分 API 平台要求模型名称必须在请求 JSON 中正确填写。
示例:
{
"model": "gpt-4o",
"messages": [
{"role":"user","content":"hello"}
]
}
如果 model 字段错误,也会返回模型权限错误。
十、确认 API 账户余额
某些 API 平台在余额不足时也可能返回模型权限错误。
例如:
需要检查账户状态。
十一、检查代理或中转 API
如果 OpenClaw 使用代理 API 或模型中转服务,也可能出现该错误。
常见原因:
- 代理服务器未支持该模型
- 代理配置错误
- 模型被代理屏蔽
可以直接测试 API:
curl API_URL
确认是否支持目标模型。
十二、更新 OpenClaw 版本
某些旧版本 OpenClaw 可能不支持新模型名称。
更新系统:
git pull
或更新 Docker 镜像:
docker compose pull
然后重新启动服务。
十三、重启 OpenClaw 服务
修改配置后需要重启系统。
Docker 部署:
docker compose restart
本地运行:
./openclaw restart
这样系统会重新加载模型配置。
十四、完整排查步骤
- 确认模型名称拼写正确
- 检查 API Key 权限
- 查看平台支持模型列表
- 确认 OpenClaw 配置文件
- 检查 API Base 地址
- 确认模型白名单设置
- 检查代理 API 支持
- 更新 OpenClaw 版本
通过以上排查方法,可以快速解决 OpenClaw 提示 “Model is not allowed” 的问题,并恢复模型调用功能。 |