


























@@ -16,6 +16,8 @@ type CronSessionModelOverrides = {
1616providerOverride?: string;
1717};
181819+type CronModelSelectionSource = "default" | "subagent" | "agent" | "hook" | "payload" | "session";
20+1921export type ResolveCronModelSelectionParams = {
2022cfg: OpenClawConfig;
2123cfgWithAgentDefaults: OpenClawConfig;
@@ -36,6 +38,7 @@ export type ResolveCronModelSelectionResult =
3638ok: true;
3739provider: string;
3840model: string;
41+modelSource: CronModelSelectionSource;
3942}
4043| {
4144ok: false;
@@ -73,6 +76,7 @@ export async function resolveCronModelSelection(
7376});
7477let provider = resolvedDefault.provider;
7578let model = resolvedDefault.model;
79+let modelSource: CronModelSelectionSource = "default";
76807781let catalog: Awaited<ReturnType<typeof loadModelCatalog>> | undefined;
7882const loadCatalogOnce = async () => {
@@ -82,10 +86,14 @@ export async function resolveCronModelSelection(
8286return catalog;
8387};
848885-const subagentModelRaw =
86-normalizeModelSelection(params.agentConfigOverride?.subagents?.model) ??
87-normalizeModelSelection(params.agentConfigOverride?.model) ??
88-normalizeModelSelection(params.cfg.agents?.defaults?.subagents?.model);
89+const agentSubagentModel = normalizeModelSelection(params.agentConfigOverride?.subagents?.model);
90+const agentModel = normalizeModelSelection(params.agentConfigOverride?.model);
91+const defaultSubagentModel = normalizeModelSelection(
92+params.cfg.agents?.defaults?.subagents?.model,
93+);
94+const subagentModelRaw = agentSubagentModel ?? agentModel ?? defaultSubagentModel;
95+const subagentModelSource: CronModelSelectionSource =
96+agentSubagentModel !== undefined ? "subagent" : agentModel !== undefined ? "agent" : "subagent";
8997if (subagentModelRaw) {
9098const resolvedSubagent = resolveAllowedModelRef({
9199cfg: params.cfgWithAgentDefaults,
@@ -97,6 +105,7 @@ export async function resolveCronModelSelection(
97105if (!("error" in resolvedSubagent)) {
98106provider = resolvedSubagent.ref.provider;
99107model = resolvedSubagent.ref.model;
108+modelSource = subagentModelSource;
100109}
101110}
102111@@ -119,6 +128,7 @@ export async function resolveCronModelSelection(
119128provider = hooksGmailModelRef.provider;
120129model = hooksGmailModelRef.model;
121130hooksGmailModelApplied = true;
131+modelSource = "hook";
122132}
123133}
124134@@ -144,6 +154,7 @@ export async function resolveCronModelSelection(
144154}
145155provider = resolvedOverride.ref.provider;
146156model = resolvedOverride.ref.model;
157+modelSource = "payload";
147158}
148159149160if (!modelOverride && !hooksGmailModelApplied) {
@@ -161,9 +172,10 @@ export async function resolveCronModelSelection(
161172if (!("error" in resolvedSessionOverride)) {
162173provider = resolvedSessionOverride.ref.provider;
163174model = resolvedSessionOverride.ref.model;
175+modelSource = "session";
164176}
165177}
166178}
167179168-return { ok: true, provider, model };
180+return { ok: true, provider, model, modelSource };
169181}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。