OpenClaw模型列表为空的根本原因是配置未被正确加载,需依次验证配置路径、YAML结构、环境变量干扰及API响应。执行openclaw config path确认config.yaml存在且可写;用openclaw config reload --debug检查是否Loaded X models;确保models:下缩进为2空格、模型ID合法;unset相关环境变量排除覆盖;最后curl http://localhost:3000/api/models验证返回非空JSON数组。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw多模型配置完成后,在Web界面或CLI中模型列表为空、仅显示默认模型或提示“no available model”,说明模型注册未被正确加载,常见于配置格式错误、环境变量冲突或配置路径错位。
确认配置文件路径与加载状态
第一步:执行openclaw config path命令,获取当前生效的配置文件绝对路径(如/home/user/.openclaw/config.yaml)。【必须确保该路径下存在可写入的config.yaml,而非仅有一个config.template.yaml】
第二步:运行openclaw config reload --debug,观察终端输出。若出现Loaded 0 models或model section not found,说明配置未被识别;若显示Loaded X models但界面仍不显示,则问题在前端缓存或API路由层。
第三步:检查进程是否读取了正确的配置——杀掉所有openclaw进程后,用openclaw server --verbose启动,并紧盯日志中loading model config from ...行,确认路径与你编辑的文件一致。
修正多模型YAML结构(关键步骤)
OpenClaw要求多模型必须置于models:顶层键下,每个模型以唯一ID为子键,且全部字段缩进严格为2空格。常见错误是把多个模型写成平级model:重复块,或混用Tab与空格。
打开config.yaml,将模型区块改写为如下结构:
models:<br> llm-qwen:<br> provider: "openai-compatible"<br> base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"<br> api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx"<br> model_name: "qwen-turbo"<br> llm-glm:<br> provider: "openai-compatible"<br> base_url: "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions"<br> api_key: "your_baidu_api_key"<br> model_name: "glm-4-flash"
【注意:每个模型ID(如llm-qwen)不能含空格、下划线以外的特殊字符,且不可与内置保留名(default、fallback)冲突】
清除环境变量干扰
如果设置了OPENCLAW_MODEL_PROVIDER、OPENCLAW_API_KEY等全局环境变量,OpenClaw会优先读取它们并忽略config.yaml中的多模型定义。
临时清空测试:在启动前执行unset OPENCLAW_MODEL_PROVIDER OPENCLAW_API_KEY OPENCLAW_BASE_URL,再运行openclaw server。若此时模型正常显示,说明环境变量覆盖了配置文件。
永久解决:从~/.bashrc或~/.zshrc中删除相关export行,或改用openclaw config set命令写入配置而非依赖环境变量。
验证模型可用性
方法一:终端直连测试
执行openclaw model test --model llm-qwen,观察是否返回OK: response received in Xms。失败则提示具体HTTP错误(如401表示密钥无效,404表示base_url路径错误)。
方法二:强制重写默认模型
运行openclaw model default llm-qwen,该命令会直接向config.yaml写入default_model: "llm-qwen",绕过前端渲染逻辑,验证底层模型注册是否真实生效。
方法三:查看API响应
启动服务后,用curl访问curl http://localhost:3000/api/models,返回应为JSON数组,每个对象含id、name、status字段。若返回空数组,说明server未解析models区块;若返回status: "unavailable",说明网络或认证失败。


















