




















@@ -189,28 +189,69 @@ function normalizeModelProviderConfigsForWrite(cfg: OpenClawConfig): OpenClawCon
189189};
190190}
191191192+function normalizeAgentListForWrite(value: unknown): unknown {
193+if (!Array.isArray(value)) {
194+return value;
195+}
196+197+let mutated = false;
198+const next = value.map((agent) => {
199+if (!isPlainRecord(agent)) {
200+return agent;
201+}
202+203+let nextAgent = agent;
204+if (Object.prototype.hasOwnProperty.call(agent, "model")) {
205+const normalizedModel = normalizeAgentModelConfigForWrite(agent.model);
206+if (normalizedModel !== agent.model) {
207+nextAgent = { ...nextAgent, model: normalizedModel };
208+mutated = true;
209+}
210+}
211+if (Object.prototype.hasOwnProperty.call(agent, "models")) {
212+const normalizedModels = normalizeAgentModelMapForWrite(agent.models);
213+if (normalizedModels !== agent.models) {
214+nextAgent = { ...nextAgent, models: normalizedModels };
215+mutated = true;
216+}
217+}
218+return nextAgent;
219+});
220+221+return mutated ? next : value;
222+}
223+192224function normalizeConfigModelRefsForWrite(cfg: OpenClawConfig): OpenClawConfig {
193225const providerNormalized = normalizeModelProviderConfigsForWrite(cfg);
194226const defaults = providerNormalized.agents?.defaults;
195-if (!defaults) {
196-return providerNormalized;
197-}
227+const agentsList = providerNormalized.agents?.list;
198228199-const nextDefaults: NonNullable<NonNullable<OpenClawConfig["agents"]>["defaults"]> = {
200- ...defaults,
201-};
202-if (defaults.model !== undefined) {
203-nextDefaults.model = normalizeAgentModelConfigForWrite(defaults.model) as typeof defaults.model;
229+let nextDefaults = defaults;
230+if (defaults) {
231+nextDefaults = { ...defaults };
232+if (defaults.model !== undefined) {
233+nextDefaults.model = normalizeAgentModelConfigForWrite(
234+defaults.model,
235+) as typeof defaults.model;
236+}
237+if (defaults.models !== undefined) {
238+nextDefaults.models = normalizeAgentModelMapForWrite(
239+defaults.models,
240+) as typeof defaults.models;
241+}
204242}
205-if (defaults.models !== undefined) {
206-nextDefaults.models = normalizeAgentModelMapForWrite(defaults.models) as typeof defaults.models;
243+244+const nextAgentsList = normalizeAgentListForWrite(agentsList);
245+if (nextDefaults === defaults && nextAgentsList === agentsList) {
246+return providerNormalized;
207247}
208248209249return {
210250 ...providerNormalized,
211251agents: {
212252 ...providerNormalized.agents,
213-defaults: nextDefaults,
253+ ...(nextDefaults ? { defaults: nextDefaults } : {}),
254+ ...(nextAgentsList !== undefined ? { list: nextAgentsList as typeof agentsList } : {}),
214255},
215256};
216257}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。