fix(core): Summary Agent 从 Global Defaults 继承模型配置
- 移除 Summary Agent 中硬编码的 Anthropic 配置 - 修改 initSummaryModel 逻辑,当 Summary Agent 未指定模型时使用主配置 - 允许用户只配置一个 provider 即可使用所有功能
This commit is contained in:
@@ -3,15 +3,14 @@ import type { AgentInfo } from '../types.js';
|
||||
/**
|
||||
* Summary Agent
|
||||
* 内部 Agent,用于对话压缩时生成摘要
|
||||
* 推荐使用成本较低的模型
|
||||
*
|
||||
* 注意:不指定 provider,会从 Global Defaults 继承
|
||||
* 这样用户只需配置一个 provider 即可使用所有功能
|
||||
*/
|
||||
export const summaryAgent: Omit<AgentInfo, 'name'> = {
|
||||
description: '对话压缩摘要生成(内部使用)',
|
||||
mode: 'internal',
|
||||
model: {
|
||||
provider: 'anthropic',
|
||||
model: 'claude-3-5-haiku-20241022',
|
||||
},
|
||||
// 不指定 model.provider,从 Global Defaults 或主配置继承
|
||||
tools: {
|
||||
enabled: [], // 无工具,纯文本生成
|
||||
noTask: true,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user