From b2bb26a92b8f04eda65d426b99a083e2e33c7dc3 Mon Sep 17 00:00:00 2001 From: kurihada Date: Thu, 18 Dec 2025 11:24:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(core):=20Summary=20Agent=20=E4=BB=8E=20Glob?= =?UTF-8?q?al=20Defaults=20=E7=BB=A7=E6=89=BF=E6=A8=A1=E5=9E=8B=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 Summary Agent 中硬编码的 Anthropic 配置 - 修改 initSummaryModel 逻辑,当 Summary Agent 未指定模型时使用主配置 - 允许用户只配置一个 provider 即可使用所有功能 --- packages/core/src/agent/presets/summary.ts | 9 ++++----- packages/core/src/core/agent.ts | 14 ++++++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) 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;