refactor(agents): enhance summarization configuration resolution in createRun function

Streamlined the summarization configuration logic by introducing a base configuration and allowing for overrides from agent-specific settings. This change improves clarity and maintainability, ensuring that the summarization configuration is consistently applied while retaining flexibility for customization. Updated the handling of summarization parameters to ensure proper integration with the agent's model and provider settings.
This commit is contained in:
Danny Avila 2026-03-11 22:35:11 -04:00
parent 784279d485
commit bee333f2cc
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956

View file

@ -253,15 +253,19 @@ export async function createRun({
] as unknown as string) ?? agent.provider;
const selfModel = agent.model_parameters?.model ?? (agent.model as string | undefined);
const resolvedSummarizationConfig: SummarizationConfig | undefined = agent.summarization ??
summarizationConfig ?? {
enabled: true,
provider: selfProvider,
model: selfModel,
};
const baseSummarizationConfig: SummarizationConfig = {
enabled: true,
provider: selfProvider,
model: selfModel,
};
const overrideConfig = agent.summarization ?? summarizationConfig;
const resolvedSummarizationConfig: SummarizationConfig =
overrideConfig != null
? { ...baseSummarizationConfig, ...overrideConfig }
: baseSummarizationConfig;
const resolvedSummarizationProvider = resolvedSummarizationConfig?.provider;
const resolvedSummarizationModel = resolvedSummarizationConfig?.model;
const resolvedSummarizationProvider = resolvedSummarizationConfig.provider;
const resolvedSummarizationModel = resolvedSummarizationConfig.model;
const hasSummarizationProvider =
typeof resolvedSummarizationProvider === 'string' &&
resolvedSummarizationProvider.trim().length > 0;
@ -370,29 +374,25 @@ export async function createRun({
useLegacyContent: agent.useLegacyContent ?? false,
discoveredTools: discoveredTools.size > 0 ? Array.from(discoveredTools) : undefined,
summarizationEnabled:
resolvedSummarizationConfig != null &&
resolvedSummarizationConfig.enabled !== false &&
hasSummarizationProvider &&
hasSummarizationModel,
summarizationConfig: resolvedSummarizationConfig
? ({
trigger:
resolvedSummarizationConfig.trigger?.type &&
resolvedSummarizationConfig.trigger?.value
? {
type: resolvedSummarizationConfig.trigger.type,
value: resolvedSummarizationConfig.trigger.value,
}
: undefined,
provider: resolvedSummarizationConfig.provider,
model: resolvedSummarizationConfig.model,
parameters: resolvedSummarizationConfig.parameters,
prompt: resolvedSummarizationConfig.prompt,
updatePrompt: resolvedSummarizationConfig.updatePrompt,
reserveRatio: resolvedSummarizationConfig.reserveRatio,
maxSummaryTokens: resolvedSummarizationConfig.maxSummaryTokens,
} satisfies AgentSummarizationConfig)
: undefined,
summarizationConfig: {
trigger:
resolvedSummarizationConfig.trigger?.type && resolvedSummarizationConfig.trigger?.value
? {
type: resolvedSummarizationConfig.trigger.type,
value: resolvedSummarizationConfig.trigger.value,
}
: undefined,
provider: resolvedSummarizationConfig.provider,
model: resolvedSummarizationConfig.model,
parameters: resolvedSummarizationConfig.parameters,
prompt: resolvedSummarizationConfig.prompt,
updatePrompt: resolvedSummarizationConfig.updatePrompt,
reserveRatio: resolvedSummarizationConfig.reserveRatio,
maxSummaryTokens: resolvedSummarizationConfig.maxSummaryTokens,
} satisfies AgentSummarizationConfig,
initialSummary,
contextPruningConfig: resolvedSummarizationConfig?.contextPruning as
| ContextPruningConfig