ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 3.1 - Добавлен строгий контракт семантического извлечения (валидность, качество, reason-codes, рекомендация применять canonical). Подключен semantic guard в predecompose/runtime: мягкое отклонение плохого canonical: отдельный safe-кейс для сырого полезного raw-фрагмента; fallback теперь выигрывает только когда это оправдано. Подключty semantic arbitration в tool-gate
This commit is contained in:
@@ -26,6 +26,12 @@ export interface AssistantAddressToolGateRuntimeInput<ResponseType = unknown> {
|
||||
scope?: unknown;
|
||||
} | null;
|
||||
} | null;
|
||||
semanticExtractionContract?: {
|
||||
valid?: unknown;
|
||||
quality?: unknown;
|
||||
apply_canonical_recommended?: unknown;
|
||||
reason_codes?: unknown;
|
||||
} | null;
|
||||
[key: string]: unknown;
|
||||
} | null;
|
||||
logEvent: (payload: Record<string, unknown>) => void;
|
||||
@@ -67,6 +73,18 @@ export async function runAssistantAddressToolGateRuntime<ResponseType = unknown>
|
||||
predecomposeContract?.period && typeof predecomposeContract.period === "object"
|
||||
? predecomposeContract.period
|
||||
: null;
|
||||
const semanticExtractionContract =
|
||||
runtimeMeta.semanticExtractionContract && typeof runtimeMeta.semanticExtractionContract === "object"
|
||||
? (runtimeMeta.semanticExtractionContract as {
|
||||
valid?: unknown;
|
||||
quality?: unknown;
|
||||
apply_canonical_recommended?: unknown;
|
||||
reason_codes?: unknown;
|
||||
})
|
||||
: null;
|
||||
const semanticReasonCodes = Array.isArray(semanticExtractionContract?.reason_codes)
|
||||
? semanticExtractionContract?.reason_codes
|
||||
: [];
|
||||
|
||||
input.logEvent({
|
||||
timestamp: input.nowIso(),
|
||||
@@ -88,7 +106,12 @@ export async function runAssistantAddressToolGateRuntime<ResponseType = unknown>
|
||||
address_tool_gate_reason: runtimeMeta.toolGateReason ?? null,
|
||||
address_llm_predecompose_contract_intent: predecomposeContract?.intent ?? null,
|
||||
address_llm_predecompose_contract_aggregation_profile: predecomposeContract?.aggregation_profile ?? null,
|
||||
address_llm_predecompose_contract_period_scope: predecomposePeriod?.scope ?? null
|
||||
address_llm_predecompose_contract_period_scope: predecomposePeriod?.scope ?? null,
|
||||
address_semantic_contract_valid: semanticExtractionContract?.valid ?? null,
|
||||
address_semantic_contract_quality: semanticExtractionContract?.quality ?? null,
|
||||
address_semantic_apply_canonical_recommended:
|
||||
semanticExtractionContract?.apply_canonical_recommended ?? null,
|
||||
address_semantic_reason_codes: semanticReasonCodes
|
||||
}
|
||||
});
|
||||
|
||||
@@ -107,4 +130,3 @@ export async function runAssistantAddressToolGateRuntime<ResponseType = unknown>
|
||||
response: null
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user