diff --git a/server/service/agent/collaboration.ts b/server/service/agent/collaboration.ts index 32d527e..77ca39b 100644 --- a/server/service/agent/collaboration.ts +++ b/server/service/agent/collaboration.ts @@ -2,7 +2,8 @@ import { generateText, stepCountIs } from "ai"; import type { AgentInvocation, AgentInvocationResult } from "./types"; import { getAgentBySlug } from "./agent"; import { getAgentToolsForChatByAgentId } from "#server/service/agent-tool"; -import { resolveModelForUser, toLanguageModel } from "#server/service/llm/model-resolver"; +import { resolveModelForUser, resolveModelAny, toLanguageModel } from "#server/service/llm/model-resolver"; +import { getConfigGlobal } from "#server/utils/context"; import log4js from "logger"; const logger = log4js.getLogger("APP"); @@ -50,13 +51,17 @@ export async function invokeAgent( }; } - if (!agent.defaultModelId) { - return { agentSlug, output: "", ok: false, error: `agent ${agentSlug} has no defaultModelId` }; + const globalDefaultModelId = (await getConfigGlobal("agentDefaultModelId")) ?? null; + const targetModelId = agent.defaultModelId ?? globalDefaultModelId; + if (!targetModelId) { + return { agentSlug, output: "", ok: false, error: `agent ${agentSlug} has no defaultModelId and no global default model configured` }; } - const resolved = await resolveModelForUser(agent.defaultModelId, userId); + const resolved = userId + ? await resolveModelForUser(targetModelId, userId) + : await resolveModelAny(targetModelId); if (!resolved) { - return { agentSlug, output: "", ok: false, error: `model ${agent.defaultModelId} not resolvable for agent ${agentSlug}` }; + return { agentSlug, output: "", ok: false, error: `model ${targetModelId} not resolvable for agent ${agentSlug}` }; } const languageModel = toLanguageModel(resolved);