Browse Source

feat: 更新模型解析逻辑,支持全局默认模型配置

feat/agent-independence
npmrun 2 months ago
parent
commit
0c8cfe31d2
  1. 15
      server/service/agent/collaboration.ts

15
server/service/agent/collaboration.ts

@ -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);

Loading…
Cancel
Save