From 9cb6a779c3557510ca24fa59a647c3924136d0df Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 20 Feb 2026 17:51:10 +0800 Subject: [PATCH] fix: align agent avatar with auto image model setting --- app/(chat)/api/models/route.ts | 40 +++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/app/(chat)/api/models/route.ts b/app/(chat)/api/models/route.ts index 89ce3a209..da81254b1 100644 --- a/app/(chat)/api/models/route.ts +++ b/app/(chat)/api/models/route.ts @@ -3,6 +3,7 @@ import { getAgentAiModelWithProvider, getDefaultAiModel, getEnabledAiModelsWithProvider, + getSiteSettings, } from "@/lib/db/queries"; import { ChatSDKError } from "@/lib/errors"; import { isAiModelAgentAuto } from "@/lib/db/ai-model-flags"; @@ -33,6 +34,7 @@ export async function GET() { const modelsWithProvider = await getEnabledAiModelsWithProvider(false); const agentModelWithProvider = await getAgentAiModelWithProvider(); const defaultModel = await getDefaultAiModel(); + const siteSettings = await getSiteSettings(); const visibleModelsWithProvider = sortModelsForDisplay( modelsWithProvider .filter(({ model }) => !isAiModelAgentAuto(model)) @@ -66,6 +68,32 @@ export async function GET() { sortOrder: model.sortOrder ?? 0, })); + // Agent 模式在前端展示头像/参数时,优先使用“Agent模式 - 默认生图模型”的配置 + // 避免展示成分析模型(如视觉模型)的头像,导致与管理员设置不一致 + const imageGenModelsWithProvider = visibleModelsWithProviderSorted.filter( + ({ model }) => model.supportsImageGen + ); + const configuredAutoImageModelId = + typeof siteSettings?.canvasAutoModeDefaultModelId === "string" + ? siteSettings.canvasAutoModeDefaultModelId.trim() + : ""; + const configuredAutoImageModel = configuredAutoImageModelId + ? imageGenModelsWithProvider.find( + ({ model }) => model.id === configuredAutoImageModelId + ) + : undefined; + const defaultImageGenModel = + (defaultModel && + !isAiModelAgentAuto(defaultModel) && + defaultModel.supportsImageGen + ? imageGenModelsWithProvider.find(({ model }) => model.id === defaultModel.id) + : undefined) || imageGenModelsWithProvider[0]; + const agentDisplayModelWithProvider = + configuredAutoImageModel || + defaultImageGenModel || + agentModelWithProvider || + null; + const resolvedDefaultModelId = (defaultModel && !isAiModelAgentAuto(defaultModel) && @@ -78,13 +106,13 @@ export async function GET() { return Response.json({ models, defaultModelId: resolvedDefaultModelId, - agentModel: agentModelWithProvider + agentModel: agentDisplayModelWithProvider ? { - id: agentModelWithProvider.model.id, - displayName: agentModelWithProvider.model.displayName, - avatarUrl: agentModelWithProvider.model.avatarUrl, - providerType: agentModelWithProvider.provider.type, - imageGenConfig: agentModelWithProvider.model.imageGenConfig, + id: agentDisplayModelWithProvider.model.id, + displayName: agentDisplayModelWithProvider.model.displayName, + avatarUrl: agentDisplayModelWithProvider.model.avatarUrl, + providerType: agentDisplayModelWithProvider.provider.type, + imageGenConfig: agentDisplayModelWithProvider.model.imageGenConfig, } : null, });