|
|
@ -2,7 +2,8 @@ import { generateText, stepCountIs } from "ai"; |
|
|
import type { AgentInvocation, AgentInvocationResult } from "./types"; |
|
|
import type { AgentInvocation, AgentInvocationResult } from "./types"; |
|
|
import { getAgentBySlug } from "./agent"; |
|
|
import { getAgentBySlug } from "./agent"; |
|
|
import { getAgentToolsForChatByAgentId } from "#server/service/agent-tool"; |
|
|
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"; |
|
|
import log4js from "logger"; |
|
|
|
|
|
|
|
|
const logger = log4js.getLogger("APP"); |
|
|
const logger = log4js.getLogger("APP"); |
|
|
@ -50,13 +51,17 @@ export async function invokeAgent( |
|
|
}; |
|
|
}; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (!agent.defaultModelId) { |
|
|
const globalDefaultModelId = (await getConfigGlobal("agentDefaultModelId")) ?? null; |
|
|
return { agentSlug, output: "", ok: false, error: `agent ${agentSlug} has no defaultModelId` }; |
|
|
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) { |
|
|
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); |
|
|
const languageModel = toLanguageModel(resolved); |
|
|
|