5.8 KiB
5.8 KiB
Runtime Integration Plan (question_mode=address_query)
Дата: 2026-03-29
1) Цель интеграции
Добавить отдельный runtime-контур для быстрых адресных запросов к 1С через MCP, не ломая существующий Stage 4 deep-analysis path.
2) As-Is (подтверждено кодом)
Текущий assistant pipeline:
- normalizer -> route summary
- execution plan по deep-routes
assistantDataLayer.executeRouteRuntime(...)- admissibility / eligibility guards
- answer composer
Ключевые точки в текущем коде:
llm_normalizer/backend/src/services/assistantService.tsllm_normalizer/backend/src/services/routeHintAdapter.tsllm_normalizer/backend/src/services/assistantDataLayer.tsllm_normalizer/backend/src/services/assistantRuntimeGuards.tsllm_normalizer/backend/src/services/answerComposer.ts
3) To-Be: Separate Address Lane
Новый high-level flow:
- Входящий вопрос.
- Mode-classifier:
address_query|deep_analysis|unsupported. - Если
address_query:
- resolve
address_intent; - extract+validate filters;
- select recipe;
- execute MCP (live-first);
- normalize result schema;
- return factual answer.
- Если не
address_query: текущий deep path без изменений.
4) Встраивание по слоям
4.1 Normalizer / Routing Layer
Изменения:
- добавить
question_modeиaddress_intentв normalizer contract; - в
routeHintAdapterдобавить address-query rule set до deep route discipline.
Рекомендуемые файлы:
llm_normalizer/backend/src/types/normalizer.tsllm_normalizer/backend/src/services/routeHintAdapter.ts
4.2 Assistant Service Orchestration
Изменения:
- в
AssistantService.processMessage(...)добавить раннюю развилку поquestion_mode; - для
address_queryзапускать отдельный pipeline (без claim-bound deep-chain).
Рекомендуемый новый сервис:
llm_normalizer/backend/src/services/addressQueryService.ts
4.3 Intent + Filter Extraction
Новые компоненты:
addressIntentResolver.tsaddressFilterExtractor.tsaddressFilterValidator.ts
Выход контракта:
detected_modedetected_intentrequired_filtersresolved_filtersmissing_filters
4.4 Recipe Selection + MCP Execution
Новые компоненты:
addressRecipeCatalog.ts(статический whitelist recipes)addressRecipeSelector.tsaddressMcpExecutor.ts
Правила:
- только whitelist
recipe_id; - live-first; snapshot только explicit fallback;
- hard limit на строки и fixed sorting profile.
4.5 Result Materialization + Answer Composer
Новые компоненты:
addressResultMaterializer.tsaddressAnswerComposer.ts
Режимы ответа:
FACTUAL_LISTFACTUAL_SUMMARYLIMITED_WITH_REASON
4.6 Debug/Trace Contract
Минимальный debug блок для address lane:
detected_modedetected_intentextracted_filtersselected_recipemcp_call_statusrows_fetchedrows_matchedresponse_type
5) Fallback Rules
- Если mode=
address_query, ноmissing_required_filters->LIMITED_WITH_REASON(без silent fallback в deep). - Если mode=
address_query, ноintentне поддержан ->LIMITED_WITH_REASONили controlled handoff в deep-path с явной пометкой. - Если live недоступен ->
LIMITED_WITH_REASON: live_unavailable.
5.1) Compound factual scope (M2.1 real status)
COMPOUND_FACTUAL_QUERYis currently detection-only.- Runtime does not execute multi-intent decomposition yet.
- Current behavior for compound prompts:
- one selected intent;
- one selected recipe;
- one factual/limited output block.
- Multi-step decomposition (
subquery planning -> per-subquery execution -> stitched composer) is planned for V1.1.
6) Safety Guardrails
- Никакого free-form query generation от LLM.
- Query только через recipe whitelist.
- Все параметры проходят типовую и value-валидацию.
- Account anchors — только validated account tokens (исключая date/amount pollution).
- Read-only MCP profile для address lane.
7) Minimal Implementation Queue
M0: контракты (question_mode,address_intent, filter schema, recipe schema).M1: classifier + resolver + validator (без MCP execution).M2: MCP executor + 5 P0 recipe.M3: factual composer + debug payload + basic tests.M4: live rerun pack вdocs/ADDRESS/runs/....
7.1) Sprint B priority order (adapted to current reality)
documents_by_counterpartybank_operations_by_counterpartydocuments_forming_balancedocuments_by_contractbank_operations_by_contract
Rationale:
- start from anchors with higher resolver stability (counterparty first);
- unlock early positive evidence before contract-heavy variants;
- keep contract scenarios behind anchor-resolution hardening.
8) Out of Scope for V1
- Новый proof engine.
- Расширение доменов beyond P0 address intents.
- Полный redesign deep-stage routing.
- Автоматический свободный доступ к произвольным сущностям 1С.
9) Expected Acceptance (V1)
- Deep-analysis path не деградировал.
- Address intents из P0 стабильно маршрутизируются в MCP/live-first lane.
- Factual-ответы по P0 сценариям возвращаются в предсказуемом формате.
false_factual_rate = 0.