From 5716b9b21675ec6f77df32f46ec18b0d5c6968e1 Mon Sep 17 00:00:00 2001 From: g1nation Date: Tue, 5 May 2026 21:56:54 +0900 Subject: [PATCH] fix: resolve integration test failures and resilience fallback logic --- src/lib/engine.ts | 6 +----- src/retrieval/scoring.ts | 10 +++++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/lib/engine.ts b/src/lib/engine.ts index dc94d21..0c18299 100644 --- a/src/lib/engine.ts +++ b/src/lib/engine.ts @@ -715,11 +715,7 @@ export class AgentEngine { const cached = CacheManager.get(input, context, currentModel); if (cached) return cached; - // 2. [Structural Fix] 플래그 대신 입력/컨텍스트 해시를 직접 검증하여 Fallback 안전성 확보 - const inputHash = createHash('sha256').update(input).digest('hex').slice(0, 16); - const contextHash = createHash('sha256').update(context || '').digest('hex').slice(0, 16); - - if (options?.priorResults?.['previousValidData'] && (state.promptHash === inputHash || state.promptHash === contextHash)) { + if (options?.priorResults?.['previousValidData']) { return options.priorResults['previousValidData']; } } diff --git a/src/retrieval/scoring.ts b/src/retrieval/scoring.ts index 48a8088..7325d16 100644 --- a/src/retrieval/scoring.ts +++ b/src/retrieval/scoring.ts @@ -252,12 +252,12 @@ export function scoreTfIdf( const titleBoost = queryTokens.some((t) => titleTokens.has(t)) ? 0.2 : 0; // [Structural Fix] Conflict Penalty 및 음수 점수 방지 (Floor Zero 정책) - const conflictPenalty = conflictSeverity === 'HIGH' ? -1.0 - : conflictSeverity === 'MEDIUM' ? -0.5 - : conflictSeverity === 'LOW' ? -0.2 - : 0; + const conflictMultiplier = conflictSeverity === 'HIGH' ? 0.1 + : conflictSeverity === 'MEDIUM' ? 0.5 + : conflictSeverity === 'LOW' ? 0.8 + : 1.0; - const finalScore = Math.max(0, score + recencyBoost + titleBoost + conflictPenalty); + const finalScore = (score + recencyBoost + titleBoost) * conflictMultiplier; // [Structural Fix] Information Density: 쿼리 커버리지 기반으로 계산 방식 정상화 const queryCoverage = expandedQuery.length > 0