实时模型冒烟(配置文件键)
实时测试:模型冒烟测试(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 文件,并让 agentread该文件并回显 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 容错:允许轻微错误)
- 测试生成一张带有“CAT”+ 随机代码的小型 PNG(
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw