OpenClaw Dashboard 模型下拉菜单修复指南

OpenClaw Dashboard 模型下拉菜单修复指南

问题描述

在使用 OpenClaw Dashboard 时,下拉菜单中显示了大量未配置模型(如 Claude Opus 4、Gemini 3 Flash、GPT-5.3 Codex 等),这些模型既不在 openclaw.json 中配置,也从未在实际项目中使用。

这些多余的模型条目来自 models-registry.json 文件——这是 OpenClaw Dashboard 内置的硬编码模型注册表,用于显示流行 AI 模型的参考价格和颜色配置。但它与实际配置的模型是叠加关系,导致下拉菜单变得混乱。

解决方案

核心原理

OpenClaw Dashboard 模型下拉菜单的数据来源有两个:

  • **`models-registry.json`** — Dashboard 内置的硬编码模型列表(需禁用)
  • **`openclaw.json` 中的 `agents.defaults.models`** — 实际配置的模型白名单(需正确设置)

agents.defaults.models 才是最终决定下拉菜单显示哪些模型的白名单

步骤一:在 openclaw.json 中配置模型白名单

agents.defaults 下添加 models 配置:

{
  "agents": {
    "defaults": {
      "models": {
        "one-api/z-ai/glm-5.1": {"alias": "glm-5.1"},
        "one-api/minimaxai/minimax-m2.7": {"alias": "minimax-m2.7"},
        "one-api/qwen/qwen3-coder-480b-a35b-instruct": {"alias": "qwen3-coder"},
        "one-api/deepseek-ai/deepseek-v3.2": {"alias": "deepseek-v3.2"},
        "ollama/qwen2.5-coder": {"alias": "ollama-qwen"}
      }
    }
  }
}

其中 alias 字段用于下拉菜单中的显示名称。

步骤二:禁用 models-registry.json 加载

修改 api-server.js,注释掉 models-registry.json 的加载逻辑:

// NOTE: models-registry.json intentionally skipped —
// dropdown is driven by openclaw.json agents.defaults.models
// // 1. Load overrides/base costs from models-registry.json
// try {
//   const rPath = require('path').join(__dirname, 'models-registry.json');
//   ...
// } catch(e) {}

步骤三:更新 HTML 硬编码默认值

Dashboard 的 agent-dashboard.html 在 API 响应前使用硬编码默认值作为回退。找到 MODEL_OPTIONS 并替换为实际配置的模型:

let globalDefaultModel = 'glm-5.1';

let MODEL_OPTIONS = [
  { value: 'default', label: '', full: null, isDefault: true },
  { value: 'glm-5.1', label: 'GLM 5.1', full: 'glm-5.1' },
  { value: 'minimax-m2.7', label: 'MiniMax M2.7', full: 'minimax-m2.7' },
  { value: 'qwen3-coder', label: 'Qwen3 Coder', full: 'qwen3-coder-480b-a35b-instruct' },
  { value: 'deepseek-v3.2', label: 'DeepSeek V3.2', full: 'deepseek-v3.2' },
  { value: 'ollama-qwen', label: 'Ollama Qwen', full: 'qwen2.5-coder' },
];

步骤四:重启 API 服务器

pkill -f "api-server.js"
nohup node /path/to/api-server.js > /dev/null 2>&1 &

修复效果

修复后,下拉菜单仅显示 5 个实际配置的模型:

  • **GLM 5.1** — Primary 模型
  • **MiniMax M2.7** — Fallback 1
  • **Qwen3 Coder** — Fallback 2
  • **DeepSeek V3.2** — Fallback 3
  • **Ollama Qwen** — Fallback 4

仪表板变得更加清晰,避免了未使用模型的干扰。

关键要点

  • **`agents.defaults.models` 是白名单** — 只在此列表中添加想看到的模型
  • **`models-registry.json` 需禁用** — 否则会与实际配置叠加
  • **HTML 默认值也需更新** — 确保 API 未响应时显示正确的备选方案

*文章发表于 2026-04-21*