Архитектура: ввести answer-inspection follow-up contract и закрыть phase15 replay

This commit is contained in:
2026-04-18 23:04:37 +03:00
parent c605fae3a3
commit 1d48f01841
16 changed files with 575 additions and 13 deletions
@@ -11,6 +11,7 @@ export interface ResolveAssistantMetaFollowupOverGroundedAnswerInput {
followupContext?: unknown;
hasPriorAddressAnswerContext?: boolean;
metaAnswerFollowupSignal?: boolean;
answerInspectionFollowupSignal?: boolean;
vatEvaluativeFollowupSignal?: boolean;
dataScopeMetaQuery?: boolean;
capabilityMetaQuery?: boolean;
@@ -33,12 +34,14 @@ export interface AssistantMetaSignalSet {
dataScopeMetaQuery: boolean;
capabilityMetaQuery: boolean;
metaAnswerFollowupSignal: boolean;
answerInspectionFollowupSignal: boolean;
}
export interface AssistantMetaFollowupPolicyDeps {
hasAssistantDataScopeMetaQuestionSignal: (text: unknown) => boolean;
shouldHandleAsAssistantCapabilityMetaQuery: (text: unknown) => boolean;
hasMetaAnswerFollowupSignal: (text: unknown) => boolean;
hasAnswerInspectionFollowupSignal: (text: unknown) => boolean;
}
function collectMessageSamples(input: ResolveAssistantMetaSignalSetInput): string[] {
@@ -83,7 +86,8 @@ export function createAssistantMetaFollowupPolicy(
return {
dataScopeMetaQuery: false,
capabilityMetaQuery: false,
metaAnswerFollowupSignal: false
metaAnswerFollowupSignal: false,
answerInspectionFollowupSignal: false
};
}
return {
@@ -97,6 +101,10 @@ export function createAssistantMetaFollowupPolicy(
metaAnswerFollowupSignal: hasSignalAcrossSamples(
samples,
deps.hasMetaAnswerFollowupSignal
),
answerInspectionFollowupSignal: hasSignalAcrossSamples(
samples,
deps.hasAnswerInspectionFollowupSignal
)
};
}
@@ -132,9 +140,23 @@ export function createAssistantMetaFollowupPolicy(
);
}
function isAnswerInspectionFollowupOverGroundedAnswer(
input: ResolveAssistantMetaFollowupOverGroundedAnswerInput
): boolean {
return Boolean(
input.followupContext &&
input.hasPriorAddressAnswerContext &&
input.answerInspectionFollowupSignal &&
!input.dataScopeMetaQuery &&
!input.capabilityMetaQuery &&
!input.aggregateBusinessAnalyticsSignal
);
}
return {
resolveMetaSignalSet,
resolveHardMetaMode,
isMetaFollowupOverGroundedAnswer
isMetaFollowupOverGroundedAnswer,
isAnswerInspectionFollowupOverGroundedAnswer
};
}