diff --git a/packages/core/src/agent/presets/summary.ts b/packages/core/src/agent/presets/summary.ts index c6c8718..d9681a8 100644 --- a/packages/core/src/agent/presets/summary.ts +++ b/packages/core/src/agent/presets/summary.ts @@ -3,15 +3,14 @@ import type { AgentInfo } from '../types.js'; /** * Summary Agent * 内部 Agent,用于对话压缩时生成摘要 - * 推荐使用成本较低的模型 + * + * 注意:不指定 provider,会从 Global Defaults 继承 + * 这样用户只需配置一个 provider 即可使用所有功能 */ export const summaryAgent: Omit = { description: '对话压缩摘要生成(内部使用)', mode: 'internal', - model: { - provider: 'anthropic', - model: 'claude-3-5-haiku-20241022', - }, + // 不指定 model.provider,从 Global Defaults 或主配置继承 tools: { enabled: [], // 无工具,纯文本生成 noTask: true, diff --git a/packages/core/src/core/agent.ts b/packages/core/src/core/agent.ts index 9198817..838139a 100644 --- a/packages/core/src/core/agent.ts +++ b/packages/core/src/core/agent.ts @@ -94,6 +94,9 @@ export class Agent { /** * 从 Agent Registry 初始化 Summary 模型 + * + * 如果 Summary Agent 配置了 model,使用配置的模型 + * 否则使用主配置的模型(从 Global Defaults 继承) */ private initSummaryModel( config: AgentConfig, @@ -101,11 +104,14 @@ export class Agent { compressionManager: CompressionManager ): void { const summaryAgentInfo = agentRegistry.getInternal('summary'); - if (!summaryAgentInfo?.model) { - return; - } - const modelConfig = summaryAgentInfo.model; + // 如果 Summary Agent 配置了 model,使用它 + // 否则使用主配置(从 Global Defaults 继承) + const modelConfig = summaryAgentInfo?.model || { + provider: config.provider, + model: config.model, + }; + const provider = modelConfig.provider || config.provider; const providerConfig = providerRegistry.getConfig(provider); const apiKey = resolveApiKey(providerConfig) || config.apiKey;