diff --git a/lib/openclaw-provider.js b/lib/openclaw-provider.js index 81b65be..4ff69fc 100644 --- a/lib/openclaw-provider.js +++ b/lib/openclaw-provider.js @@ -224,6 +224,21 @@ function applyFullProviderFromVps(provider, onDone) { if (err) { log.warn('openclaw-provider', `拉模型失败,使用空列表: ${err.message}`); } + + // 校验 apiKey + 模型列表是否有实际变化,无变化则跳过写盘,避免触发不必要的 gateway 重启 + try { + const existing = readJsonFile(configFile); + const cur = existing.models?.providers?.[name] || {}; + const curApiKey = cur.apiKey || ''; + const curMd5 = computeModelsMd5(cur.models || []); + const newMd5 = computeModelsMd5(list); + if (curApiKey === apiKey && curMd5 === newMd5) { + log.info('openclaw-provider', `provider 无变化(apiKey + 模型列表相同),跳过写盘`); + if (typeof onDone === 'function') { try { onDone(); } catch (e) { log.warn('openclaw-provider', `onDone: ${e.message}`); } } + return; + } + } catch (_) { /* 读取失败则继续写盘 */ } + addProviderSync(configFile, name, baseUrl, apiKey, list, defaultModel); if (typeof onDone === 'function') { try {