跳转至

实时模型冒烟(配置文件键)

实时测试:模型冒烟测试(profile 密钥)

实时模型测试分为两层,以便隔离故障:

  • “Direct model”(直接模型)告诉你:使用给定密钥时,该 provider/model 是否能够正常应答。
  • “Gateway smoke”(网关冒烟)告诉你:完整的 gateway+agent 流水线对该模型是否可用(会话、历史记录、工具、沙箱策略等)。

精选模型列表位于 实时:模型矩阵 中的 src/agents/test-helpers/live-model-dynamic-candidates.ts 文件里,并且会随时间变化;请以其中的数组为准,而不是本页面。

MiniMax M3 使用 minimax/MiniMax-M3 作为其默认的 provider/model 引用。

第 1 层:直接模型补全(不经过 gateway)

  • 测试:src/agents/models.profiles.live.test.ts
  • 目标:
  • 枚举已发现的模型
  • 使用 getApiKeyForModel 选择你有凭据的模型
  • 对每个模型运行一次小型补全(并在需要时进行针对性的回归测试)
  • 如何启用:
  • pnpm test:live(或直接调用 Vitest 时使用 OPENCLAW_LIVE_TEST=1)
  • 设置 OPENCLAW_LIVE_MODELS=modern、small 或 all(modern 的别名)以真正运行此套件;否则会跳过,因此单独运行 pnpm test:live 时仍聚焦于网关冒烟测试。
  • 如何选择模型:
  • OPENCLAW_LIVE_MODELS=modern 运行精选的高信号优先列表(参见 实时:模型矩阵)
  • OPENCLAW_LIVE_MODELS=small 运行精选的小模型优先列表
  • OPENCLAW_LIVE_MODELS=all 是 modern 的别名
  • 或 OPENCLAW_LIVE_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,..."(逗号分隔的允许列表)
  • 本地 Ollama 小模型运行默认使用 http://127.0.0.1:11434;仅针对 LAN、自定义或 Ollama Cloud 端点设置 OPENCLAW_LIVE_OLLAMA_BASE_URL。
  • modern/all 与 small 扫描默认以各自精选列表的长度作为上限;设置 OPENCLAW_LIVE_MAX_MODELS=0 可进行穷举式的所选 profile 扫描,或设为正数以使用更小的上限。
  • 穷举式扫描使用 OPENCLAW_LIVE_TEST_TIMEOUT_MS 作为整个直接模型测试的超时时间。默认值:60 分钟。
  • 直接模型探测默认以 20 路并行度运行;可通过设置 OPENCLAW_LIVE_MODEL_CONCURRENCY 覆盖。
  • 如何选择 provider:
  • OPENCLAW_LIVE_PROVIDERS="google,google-gemini-cli"(逗号分隔的允许列表)
  • 密钥来源:
  • 默认:profile store,并回退到环境变量
  • 设置 OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1 可强制仅使用 profile store
  • 为什么需要这一层:
  • 将“provider API 故障 / 密钥无效”与“gateway agent 流水线故障”区分开
  • 包含小型、隔离的回归测试(示例:OpenAI Responses/Codex Responses 推理重放 + 工具调用流程)

第 2 层:Gateway + dev agent 冒烟测试(“@openclaw”实际执行的操作)

  • 测试:src/gateway/gateway-models.profiles.live.test.ts
  • 目标:
  • 启动一个进程内(in-process)gateway
  • 创建/更新一个 agent:dev:* 会话(每次运行可覆盖模型)
  • 遍历有密钥的模型并断言:
    • 能返回“有意义”的响应(不使用工具)
    • 真实的工具调用可用(read 探测)
    • 可选的额外工具探测(exec+read 探测)
    • OpenAI 回归路径(仅工具调用 -> 后续追问)持续可用
  • 探测细节(便于你快速解释失败原因):
  • read 探测:测试会在工作区写入一个 nonce 文件,并让 agent read 该文件并回显 nonce。
  • exec+read 探测:测试要求 agent 通过 exec 把一个 nonce 写入临时文件,然后再 read 出来。
  • 图像探测:测试附带一张生成的 PNG(cat + 随机代码),并期望模型返回 cat <CODE>。
  • 实现参考:src/gateway/gateway-models.profiles.live.test.ts 和 test/helpers/live-image-probe.ts。
  • 如何启用:
  • pnpm test:live(或直接调用 Vitest 时使用 OPENCLAW_LIVE_TEST=1)
  • 如何选择模型:
  • 默认:精选的高信号(modern)优先列表
  • OPENCLAW_LIVE_GATEWAY_MODELS=small 会通过完整的 gateway+agent 流水线运行精选的小模型列表
  • OPENCLAW_LIVE_GATEWAY_MODELS=all 是 modern 的别名
  • 或设置 OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(或逗号列表)来缩小范围
  • modern/all 与 small 的网关扫描默认以各自精选列表的长度作为上限;设置 OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0 可进行穷举式的所选扫描,或设为正数以使用更小的上限。
  • 如何选择 provider(避免“全走 OpenRouter”):
  • OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-gemini-cli,openai,anthropic,zai,minimax"(逗号分隔的允许列表)
  • 此实时测试中工具与图像探测始终开启:
  • read 探测 + exec+read 探测(工具压力测试)
  • 当模型声明支持图像输入时,运行图像探测
  • 流程(概览):
    • 测试生成一张带有“CAT”+ 随机代码的小型 PNG(test/helpers/live-image-probe.ts)
    • 通过 agent 发送 attachments: [{ mimeType: "image/png", content: "<base64>" }]
    • gateway 将附件解析为 images[](src/gateway/server-methods/agent.ts + src/gateway/chat-attachments.ts)
    • 内嵌的 agent 将多模态用户消息转发给模型
    • 断言:回复中包含 cat + 该代码(OCR 容错:允许轻微错误)

Tip

要查看你机器上可以测试的内容(以及确切的 provider/model id),请运行:

openclaw models list
openclaw models list --json

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw