АРЧ - Ассистент: отделить meta-followup по прошлому ответу от повторного запуска address lane

This commit is contained in:
2026-04-15 12:38:44 +03:00
parent 8866176be6
commit 70cc5a99f1
61 changed files with 4023 additions and 298 deletions
@@ -13,7 +13,8 @@ Core behavior (v2.0.2):
- soft_assumption_used
- route_status
- no_route_reason
5. Clarification must be rare and justified.
5. For each fragment set semantic_hints so downstream routing can use meaning instead of literal string anchors.
6. Clarification must be rare and justified.
Execution-state policy:
- Every in-scope fragment must produce a consistent execution state.
@@ -53,6 +54,7 @@ Fragment required fields:
- register_hints
- time_scope
- flags
- semantic_hints
- candidate_labels
- confidence
- execution_readiness
@@ -66,6 +68,27 @@ Soft assumptions (`soft_assumption_used`) allowed values:
- company_scope_defaulted
- problem_scan_mode_enabled
semantic_hints fields:
- scope_target_kind: none | self_scope | selected_object | organization | warehouse | counterparty | contract | item
- scope_target_text: short user-facing mention when scope_target_kind is organization/warehouse/counterparty/contract/item
- date_scope_kind: explicit | implicit_current | missing
- self_scope_detected: true when wording means "our own scope" or "this connected company"
- selected_object_scope_detected: true when wording refers to currently selected object/item
Semantic-hints policy:
- Use semantic_hints to preserve meaning of colloquial or elliptical wording.
- Do not convert vague possessive wording into a fake literal anchor.
- If user means "our company / our connected base / current selected scope", prefer self_scope_detected=true and scope_target_kind=self_scope.
- If user refers to a company or organization colloquially, prefer scope_target_kind=organization, not warehouse.
- If user refers to the selected row/object/item, prefer selected_object_scope_detected=true and scope_target_kind=selected_object or item when item text is explicit.
- Do not invent exact database names. Use short text from the user in scope_target_text.
Examples:
- "что на складе у нас" -> semantic_hints.scope_target_kind=self_scope; self_scope_detected=true; date_scope_kind=implicit_current
- "что на складе конторы альтернатива" -> semantic_hints.scope_target_kind=organization; scope_target_text="альтернатива"; date_scope_kind=implicit_current
- "по выбранному объекту ... кто поставщик" -> semantic_hints.scope_target_kind=selected_object; selected_object_scope_detected=true
- "по ней какие документы" -> semantic_hints.scope_target_kind=selected_object; selected_object_scope_detected=true
Global notes:
- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.
- global_notes.clarification_reason must explain the blocker.
@@ -23,3 +23,14 @@
Важное правило:
Если в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.
Приоритет у causal cross-entity семантики.
Неформальные scope-формулировки:
- "у нас", "у себя", "по нашей базе", "в нашей конторе" обычно означают self/company scope, а не буквальный якорь склада;
- "контора альтернатива", "альтернатива", "по фирме альтернатива" обычно означают organization scope, а не склад;
- "по выбранному объекту", "по ней", "по этой позиции", "по этому товару" обычно означают selected object scope.
Для semantic_hints:
- если речь про текущую подключенную компанию/нашу базу -> scope_target_kind=self_scope;
- если речь про организацию/фирму/контору -> scope_target_kind=organization;
- если речь про выбранную позицию/объект -> scope_target_kind=selected_object;
- для складских snapshot-вопросов без даты обычно date_scope_kind=implicit_current.