Initial import NDC_1C

This commit is contained in:
2026-03-26 10:38:25 +03:00
commit a162d77ef7
2943 changed files with 3615871 additions and 0 deletions
@@ -0,0 +1,140 @@
{
"trace_id": "--M5u_26tqCYMI",
"timestamp": "2026-03-25T20:41:08.700Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"normalized_fragment_text": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,395 @@
{
"trace_id": "-0Dxa4G1t9dD6t",
"timestamp": "2026-03-23T15:57:26.323Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2",
"schema_version": "v1",
"case_id": "NQ-009",
"user_question_raw": "Где у нас пахнет ручной ошибкой по июню?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "batch_refresh_then_store",
"case_id": "NQ-009",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1_2",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You only perform normalization into JSON schema `normalized_query_v1`.\nDo not provide a final accounting answer. Return classification and routing signals only.\n\nTaxonomy intent_class:\n- cross_entity: use when the question asks to connect documents/payments/postings/contracts/registers/evidence chains across entities.\n- drilldown_explain: use for one concrete object (document number, ref, exact posting line, exact operation card).\n- rule_based_account_control: use for account-rule checks without multi-entity chain analysis.\n- anomaly_probe: use for suspicious pattern/risk-zone detection without mandatory company-wide batch analytics.\n- heavy_analytical: use for overview, ranking, concentration analysis, summary, prioritized analytical review.\n- period_close_risk: use when the core meaning is close-process failure risk (pre-close destabilization, last-day close failure).\n- ambiguous_human_query: fallback only when question truly cannot be mapped to a concrete class.\n- simple_factual: basic factual request without analytical depth.\n\nRoute_hint policy:\n- live_mcp_drilldown: exact object trace with needs_runtime_truth=true.\n- hybrid_store_plus_live: cross-entity causal chain with evidence.\n- batch_refresh_then_store: heavy analytical ranking/overview at company or broad period scale.\n- store_feature_risk: anomaly/risk/control without mandatory heavy batch aggregation.\n- store_canonical: simple factual request.\n\nRequires policy:\n- needs_cross_entity_join=true only for multi-entity joins.\n- needs_causal_chain=true only for explicit \"why/prove/chain breakdown\" semantics.\n- needs_exact_object_trace=true for concrete object id/number/ref/line.\n- needs_period_cut=true when period slice is required.\n- needs_evidence=true when documentary evidence is requested.\n\nBoundary rule: period_close_risk vs heavy_analytical (v1.1.2)\nIf a question is explicitly about period close risk, pre-close danger, last-day closing failure, reporting deadline risk, or threats that can break the close process itself, use `period_close_risk` as the primary intent_class.\n\nHowever, if the main purpose of the question is:\n- ranking,\n- top issues,\n- overview,\n- concentration of errors,\n- summary,\n- prioritized review list,\n- company-wide analytical review,\n\nthen the primary intent_class should remain `heavy_analytical`, even if the question is phrased in the context of month-end close or reporting preparation.\n\n`heavy_analytical` has priority over `period_close_risk` when the question asks for:\n- ranking,\n- top-N,\n- overview,\n- summary,\n- company-wide picture,\n- prioritized analytical review,\neven if the wording mentions closing period, reporting, or pre-close context.\n\nUse `period_close_risk` only when the core of the question is the risk of failing or destabilizing the close process itself.\n\nExact drilldown guard:\nIf the question is about one specific document/operation/ref and asks to show a related posting/source, keep:\n- needs_exact_object_trace=true\n- needs_runtime_truth=true\n- needs_cross_entity_join=false\nunless the user explicitly asks to analyze multiple entities/cases.\n\nAnomaly route guard:\nIf the question asks for suspicious zones/risk cases without ranking and without company-wide aggregation, keep route_hint=`store_feature_risk`.\n\nConfidence guard:\nIf a question is plausibly on the boundary between `heavy_analytical` and `period_close_risk`, do not assign `confidence.overall = high`.\nUse `medium` unless wording strongly and unambiguously centers on close-process failure risk rather than analytical overview.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\n# keep period_close_risk anchor\n\nQ: Перед закрытием периода что у нас может взорваться в последний день?\nExpected:\n{\n \"intent_class\": \"period_close_risk\",\n \"requires\": {\n \"needs_period_cut\": true,\n \"needs_ranking\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где по июню выглядит подозрительно, просто дай зоны риска без детального разбора.\nExpected:\n{\n \"intent_class\": \"anomaly_probe\",\n \"requires\": {\n \"needs_anomaly_summary\": true,\n \"needs_period_cut\": true,\n \"needs_ranking\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\"\n}\n\n# v1.1.2 boundary balancing additions (exactly 2 new heavy counterexamples)\n\nQ: Сделай рейтинг самых рисковых хвостов перед закрытием периода за июнь.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Дай обзорный риск-срез перед сдачей отчетности: где максимальная концентрация ошибок.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "Где у нас пахнет ручной ошибкой по июню?",
"context": {
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-vHNdfS-Ccc",
"case_id": "NQ-009",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0d5820fd52bacbc30069c162e0ce40819f8236a6d2e54c7812",
"object": "response",
"created_at": 1774281440,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774281446,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0d5820fd52bacbc30069c162e1328c819f8e5429f86ca43ae2",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"Где у нас пахнет ручной ошибкой по июню?\",\n \"normalized_question\": \"Где у нас пахнет ручной ошибкой по июню?\",\n \"intent_class\": \"ambiguous_human_query\",\n \"business_problem_type\": \"анализ ошибок\",\n \"domain_entities\": [],\n \"accounts_mentioned\": [],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"explicit\",\n \"value\": \"июнь\",\n \"confidence\": \"medium\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": false,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"medium\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2832,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 269,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 3101
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Где у нас пахнет ручной ошибкой по июню?",
"normalized_question": "Где у нас пахнет ручной ошибкой по июню?",
"intent_class": "ambiguous_human_query",
"business_problem_type": "анализ ошибок",
"domain_entities": [],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "explicit",
"value": "июнь",
"confidence": "medium"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": true,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": false
},
"expected_output_shape": "anomaly_summary",
"route_hint": "batch_refresh_then_store",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "batch_refresh_then_store",
"confidence": "medium",
"usage": {
"input_tokens": 2832,
"output_tokens": 269,
"total_tokens": 3101
},
"latency_ms": 5783,
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-vHNdfS-Ccc",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,128 @@
{
"trace_id": "-2S2VlrwF2TyBD",
"timestamp": "2026-03-24T11:03:55.042Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"user_question_raw": "Покажи, что висит по 97 и что выглядит подозрительно.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v2_0_1",
"userQuestion": "Покажи, что висит по 97 и что выглядит подозрительно."
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_1"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Покажи, что висит по 97 и что выглядит подозрительно.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи, что висит по 97 и что выглядит подозрительно.",
"normalized_fragment_text": "Покажи, что висит по 97 и что выглядит подозрительно.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": []
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 16,
"request_count_for_case": 0
}
@@ -0,0 +1,136 @@
{
"trace_id": "-N66W0j4wlANV6",
"timestamp": "2026-03-25T18:03:32.247Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку документов по контрагентам.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку документов по контрагентам.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку документов по контрагентам.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку документов по контрагентам.",
"normalized_fragment_text": "Разложи цепочку документов по контрагентам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"контрагент"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 32,
"request_count_for_case": 0
}
@@ -0,0 +1,128 @@
{
"trace_id": "-NEZ0uOQOW9WyO",
"timestamp": "2026-03-25T20:40:29.832Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"normalized_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "inferred",
"value": "период",
"confidence": "medium"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,117 @@
{
"trace_id": "-WNO4QQAYfNZKA",
"timestamp": "2026-03-24T11:02:28.275Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"user_question_raw": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v1_1_2_1",
"userQuestion": "По каким поставщикам не бьются взаиморасчеты по 60 счету?"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v1"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"normalized_question": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"intent_class": "cross_entity",
"business_problem_type": "normalization_playground",
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [
"60"
],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"expected_output_shape": "reconciliation_report",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [
{
"field": "period_scope",
"reason": "period is not explicitly provided",
"severity": "medium"
}
],
"confidence": {
"overall": "low",
"intent_class": "medium",
"route_hint": "low"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "legacy_v1",
"intent_class": "cross_entity",
"route_hint": "hybrid_store_plus_live",
"confidence": "low",
"decision_flags": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"entities": {
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [
"60"
],
"documents_mentioned": [],
"registers_mentioned": []
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 28,
"request_count_for_case": 0
}
@@ -0,0 +1,400 @@
{
"trace_id": "-flpLc9UUvJT27",
"timestamp": "2026-03-23T14:53:36.121Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1",
"schema_version": "v1",
"case_id": "V11-CE-004",
"user_question_raw": "Разложи по контрагентам цепочку: отгрузка -> оплата -> закрывающий, чтобы понять где рвется подтверждение.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "hybrid_store_plus_live",
"case_id": "V11-CE-004",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "Ты выполняешь только задачу нормализации в JSON schema `normalized_query_v1`.\nНельзя давать финальный бухгалтерский ответ, только классификация и признаки маршрутизации.\n\nTaxonomy intent_class (v1.1, усиленная):\n- cross_entity: обязательно, если вопрос просит связать документы/оплаты/проводки/закрывающие/договоры/регистры/цепочку доказательств.\n- drilldown_explain: только для точечного объекта или малого списка объектов (номер документа, ref, строка, конкретная проводка).\n- rule_based_account_control: контроль правил по счетам и учетным параметрам без межсущностной цепочки.\n- anomaly_probe: поиск аномалий и подозрительных паттернов без явной необходимости causal-chain между сущностями.\n- heavy_analytical: общий обзор, рейтинг, приоритизация на уровне периода/компании.\n- ambiguous_human_query: использовать только как последний fallback, когда вопрос реально не раскладывается в конкретный класс.\n- simple_factual: простая справка без сложной аналитики и без причинно-следственной цепочки.\n- period_close_risk: отдельный риск предзакрытия периода, если это основной смысл запроса.\n\nПриоритеты route и intent:\n1) Если в вопросе одновременно есть документы/оплаты/проводки/закрывающие/договоры/цепочка подтверждений, это causal multi-entity сценарий.\n Обычно это `intent_class=cross_entity` и route не ниже `hybrid_store_plus_live`.\n2) Если вопрос про множество кейсов (\"по каким\", \"где\", \"разложи по\"), это НЕ `needs_exact_object_trace`, пока нет одного точного объекта.\n3) Если присутствуют риск-слова, но также есть document/payment/posting chain, приоритет у causal cross-entity semantics, а не у чистого risk bucket.\n4) Не используй `ambiguous_human_query` как ленивый fallback, если можно уверенно выбрать конкретный intent.\n\nRoute_hint:\n- live_mcp_drilldown: только для точечного object trace (номер/строка/ref) и needs_runtime_truth=true.\n- hybrid_store_plus_live: для cross_entity + causal explain и подтверждаемой цепочки.\n- batch_refresh_then_store: для широких периодных рейтингов/обзоров и тяжелой агрегатной аналитики.\n- store_feature_risk: для risk/control/anomaly без обязательного runtime drilldown.\n- store_canonical: для простых фактов.\n\nRequires:\n- needs_cross_entity_join=true: если надо связывать разные сущности (документы, оплаты, проводки, договоры, регистры).\n- needs_causal_chain=true: если есть \"почему\", \"чем подтверждается\", \"где ошибка в цепочке\", \"разложи цепочку\".\n- needs_exact_object_trace=true: только при точном объекте.\n- needs_period_cut=true: если нужен срез периода.\n- needs_evidence=true: если пользователь просит подтверждение документами/проводками/движениями.\n\nConfidence policy (жестко):\nНе ставь `confidence.overall=high` и `confidence.route_hint=high`, если выполнено хотя бы одно условие:\n- есть ambiguity;\n- есть тонкое различие соседних классов (например cross_entity vs anomaly_probe/rule_based_account_control);\n- вопрос длинный и многослойный;\n- период задан неявно или неуверенно;\n- causal semantics восстановлена частично.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Сделай топ рисков перед закрытием периода по компании в целом.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_ranking\": true,\n \"needs_period_cut\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "Разложи по контрагентам цепочку: отгрузка -> оплата -> закрывающий, чтобы понять где рвется подтверждение.",
"context": {
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-xQU7mHgdgo",
"case_id": "V11-CE-004",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0f5ac52c07a9087e0069c153e3bd3c819d9dbd19ebb44259ad",
"object": "response",
"created_at": 1774277603,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774277615,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0f5ac52c07a9087e0069c153e542e4819dbef7da5a1cbb070a",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"Разложи по контрагентам цепочку: отгрузка -> оплата -> закрывающий, чтобы понять где рвется подтверждение.\",\n \"normalized_question\": \"Разложи цепочку отгрузка, оплата и закрывающий документ по контрагентам для анализа подтверждений.\",\n \"intent_class\": \"cross_entity\",\n \"business_problem_type\": \"анализ подтверждений\",\n \"domain_entities\": [\"контрагент\", \"документ реализации\", \"оплата\", \"закрывающий документ\"],\n \"accounts_mentioned\": [],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n ,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": false,\n \"needs_evidence\": true\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"hybrid_store_plus_live\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"medium\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2470,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 320,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2790
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Разложи по контрагентам цепочку: отгрузка -> оплата -> закрывающий, чтобы понять где рвется подтверждение.",
"normalized_question": "Разложи цепочку отгрузка, оплата и закрывающий документ по контрагентам для анализа подтверждений.",
"intent_class": "cross_entity",
"business_problem_type": "анализ подтверждений",
"domain_entities": [
"контрагент",
"документ реализации",
"оплата",
"закрывающий документ"
],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"expected_output_shape": "evidence_chain",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "hybrid_store_plus_live",
"confidence": "medium",
"usage": {
"input_tokens": 2470,
"output_tokens": 320,
"total_tokens": 2790
},
"latency_ms": 13106,
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-xQU7mHgdgo",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,142 @@
{
"trace_id": "-i1S1PX2mh8vhw",
"timestamp": "2026-03-25T20:09:39.776Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"normalized_fragment_text": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 12,
"request_count_for_case": 0
}
@@ -0,0 +1,92 @@
{
"trace_id": "-kXMi9OZ_e0-jx",
"timestamp": "2026-03-23T15:23:22.515Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_1",
"schema_version": "v1",
"case_id": "V11-DD-005",
"user_question_raw": "Покажи карточку конкретной операции DOC-7781 и связанную проводку.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "live_mcp_drilldown",
"case_id": "V11-DD-005",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1_1",
"userQuestion": "Покажи карточку конкретной операции DOC-7781 и связанную проводку.",
"context": {
"expected_route": "live_mcp_drilldown",
"eval_label": "eval-Rgb_3vYT7U",
"case_id": "V11-DD-005",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": true
},
"raw_model_response": {
"mode": "mock"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Покажи карточку конкретной операции DOC-7781 и связанную проводку.",
"normalized_question": "Покажи карточку конкретной операции DOC-7781 и связанную проводку.",
"intent_class": "drilldown_explain",
"business_problem_type": "normalization_playground",
"domain_entities": [
"счет"
],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": true,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": true,
"needs_period_cut": false,
"needs_evidence": true
},
"expected_output_shape": "evidence_chain",
"route_hint": "live_mcp_drilldown",
"ambiguities": [
{
"field": "period_scope",
"reason": "period is not explicitly provided",
"severity": "medium"
}
],
"confidence": {
"overall": "low",
"intent_class": "medium",
"route_hint": "low"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "live_mcp_drilldown",
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"expected_route": "live_mcp_drilldown",
"eval_label": "eval-Rgb_3vYT7U",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,130 @@
{
"trace_id": "-m3webKby-s5j1",
"timestamp": "2026-03-25T19:32:10.958Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 97 i podsveti riskovye zony.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 97 i podsveti riskovye zony.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 97 i podsveti riskovye zony.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 97 i podsveti riskovye zony.",
"normalized_fragment_text": "Prover schet 97 i podsveti riskovye zony.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 39,
"request_count_for_case": 0
}
@@ -0,0 +1,141 @@
{
"trace_id": "-qANXDxrAsd5PX",
"timestamp": "2026-03-25T19:37:32.239Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"normalized_fragment_text": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"97",
"06"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 38,
"request_count_for_case": 0
}
@@ -0,0 +1,201 @@
{
"trace_id": "-srakeJpowVs1p",
"timestamp": "2026-03-25T18:05:43.743Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "И по периоду 2020-06.\nФокус текущего разбора: Разложи цепочку документов по контрагентам.",
"context": {
"period_hint": null,
"business_context": "followup_state_binding_v1; focus_subject:Разложи цепочку документов по контрагентам.",
"expected_route": "hybrid_store_plus_live",
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "И по периоду 2020-06.\nФокус текущего разбора: Разложи цепочку документов по контрагентам.",
"context": {
"expected_route": "hybrid_store_plus_live",
"business_context": "followup_state_binding_v1; focus_subject:Разложи цепочку документов по контрагентам."
},
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "И по периоду 2020-06.\nФокус текущего разбора: Разложи цепочку документов по контрагентам.",
"message_in_scope": true,
"scope_confidence": "medium",
"contains_multiple_tasks": true,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "И по периоду 2020-06.",
"normalized_fragment_text": "И по периоду 2020-06.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
},
{
"fragment_id": "F2",
"raw_fragment_text": "Фокус текущего разбора: Разложи цепочку документов по контрагентам.",
"normalized_fragment_text": "Фокус текущего разбора: Разложи цепочку документов по контрагентам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"контрагент"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "medium",
"planner": {
"total_fragments": 2,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": true
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
},
{
"fragment_id": "F2",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "medium",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"expected_route": "hybrid_store_plus_live",
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "-tIccWixZi_UP_",
"timestamp": "2026-03-25T19:32:11.030Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь основные средства и рискованные записи.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь основные средства и рискованные записи.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь основные средства и рискованные записи.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь основные средства и рискованные записи.",
"normalized_fragment_text": "Проверь основные средства и рискованные записи.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,199 @@
{
"trace_id": "034WGaC4Voz94s",
"timestamp": "2026-03-25T20:41:15.200Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "И по периоду 2020-06.\nФокус текущего разбора: Разложи цепочку документов по контрагентам.",
"context": {
"period_hint": null,
"business_context": "followup_state_binding_v1; focus_subject:Разложи цепочку документов по контрагентам.",
"expected_route": "hybrid_store_plus_live",
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "И по периоду 2020-06.\nФокус текущего разбора: Разложи цепочку документов по контрагентам.",
"context": {
"expected_route": "hybrid_store_plus_live",
"business_context": "followup_state_binding_v1; focus_subject:Разложи цепочку документов по контрагентам."
},
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "И по периоду 2020-06.\nФокус текущего разбора: Разложи цепочку документов по контрагентам.",
"message_in_scope": true,
"scope_confidence": "medium",
"contains_multiple_tasks": true,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "И по периоду 2020-06.",
"normalized_fragment_text": "И по периоду 2020-06.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
},
{
"fragment_id": "F2",
"raw_fragment_text": "Фокус текущего разбора: Разложи цепочку документов по контрагентам.",
"normalized_fragment_text": "Фокус текущего разбора: Разложи цепочку документов по контрагентам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"контрагент"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "medium",
"planner": {
"total_fragments": 2,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": true
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
},
{
"fragment_id": "F2",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "medium",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 2,
"expected_route": "hybrid_store_plus_live",
"request_count_for_case": 0
}
@@ -0,0 +1,402 @@
{
"trace_id": "0BPtggSbkFlbBZ",
"timestamp": "2026-03-23T15:54:40.498Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2",
"schema_version": "v1",
"case_id": "NQ-006",
"user_question_raw": "По каким реализациям 90/62 хвосты не закрылись оплатой, разложи по цепочке документов.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "hybrid_store_plus_live",
"case_id": "NQ-006",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1_2",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You only perform normalization into JSON schema `normalized_query_v1`.\nDo not provide a final accounting answer. Return classification and routing signals only.\n\nTaxonomy intent_class:\n- cross_entity: use when the question asks to connect documents/payments/postings/contracts/registers/evidence chains across entities.\n- drilldown_explain: use for one concrete object (document number, ref, exact posting line, exact operation card).\n- rule_based_account_control: use for account-rule checks without multi-entity chain analysis.\n- anomaly_probe: use for suspicious pattern/risk-zone detection without mandatory company-wide batch analytics.\n- heavy_analytical: use for overview, ranking, concentration analysis, summary, prioritized analytical review.\n- period_close_risk: use when the core meaning is close-process failure risk (pre-close destabilization, last-day close failure).\n- ambiguous_human_query: fallback only when question truly cannot be mapped to a concrete class.\n- simple_factual: basic factual request without analytical depth.\n\nRoute_hint policy:\n- live_mcp_drilldown: exact object trace with needs_runtime_truth=true.\n- hybrid_store_plus_live: cross-entity causal chain with evidence.\n- batch_refresh_then_store: heavy analytical ranking/overview at company or broad period scale.\n- store_feature_risk: anomaly/risk/control without mandatory heavy batch aggregation.\n- store_canonical: simple factual request.\n\nRequires policy:\n- needs_cross_entity_join=true only for multi-entity joins.\n- needs_causal_chain=true only for explicit \"why/prove/chain breakdown\" semantics.\n- needs_exact_object_trace=true for concrete object id/number/ref/line.\n- needs_period_cut=true when period slice is required.\n- needs_evidence=true when documentary evidence is requested.\n\nBoundary rule: period_close_risk vs heavy_analytical (v1.1.2)\nIf a question is explicitly about period close risk, pre-close danger, last-day closing failure, reporting deadline risk, or threats that can break the close process itself, use `period_close_risk` as the primary intent_class.\n\nHowever, if the main purpose of the question is:\n- ranking,\n- top issues,\n- overview,\n- concentration of errors,\n- summary,\n- prioritized review list,\n- company-wide analytical review,\n\nthen the primary intent_class should remain `heavy_analytical`, even if the question is phrased in the context of month-end close or reporting preparation.\n\n`heavy_analytical` has priority over `period_close_risk` when the question asks for:\n- ranking,\n- top-N,\n- overview,\n- summary,\n- company-wide picture,\n- prioritized analytical review,\neven if the wording mentions closing period, reporting, or pre-close context.\n\nUse `period_close_risk` only when the core of the question is the risk of failing or destabilizing the close process itself.\n\nExact drilldown guard:\nIf the question is about one specific document/operation/ref and asks to show a related posting/source, keep:\n- needs_exact_object_trace=true\n- needs_runtime_truth=true\n- needs_cross_entity_join=false\nunless the user explicitly asks to analyze multiple entities/cases.\n\nAnomaly route guard:\nIf the question asks for suspicious zones/risk cases without ranking and without company-wide aggregation, keep route_hint=`store_feature_risk`.\n\nConfidence guard:\nIf a question is plausibly on the boundary between `heavy_analytical` and `period_close_risk`, do not assign `confidence.overall = high`.\nUse `medium` unless wording strongly and unambiguously centers on close-process failure risk rather than analytical overview.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\n# keep period_close_risk anchor\n\nQ: Перед закрытием периода что у нас может взорваться в последний день?\nExpected:\n{\n \"intent_class\": \"period_close_risk\",\n \"requires\": {\n \"needs_period_cut\": true,\n \"needs_ranking\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где по июню выглядит подозрительно, просто дай зоны риска без детального разбора.\nExpected:\n{\n \"intent_class\": \"anomaly_probe\",\n \"requires\": {\n \"needs_anomaly_summary\": true,\n \"needs_period_cut\": true,\n \"needs_ranking\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\"\n}\n\n# v1.1.2 boundary balancing additions (exactly 2 new heavy counterexamples)\n\nQ: Сделай рейтинг самых рисковых хвостов перед закрытием периода за июнь.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Дай обзорный риск-срез перед сдачей отчетности: где максимальная концентрация ошибок.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "По каким реализациям 90/62 хвосты не закрылись оплатой, разложи по цепочке документов.",
"context": {
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-vHNdfS-Ccc",
"case_id": "NQ-006",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0ed4256962bfb2bb0069c1623967d08190909becd57e371e7b",
"object": "response",
"created_at": 1774281273,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774281280,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0ed4256962bfb2bb0069c1623a334c8190b1a9f598371ed7c8",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"По каким реализациям 90/62 хвосты не закрылись оплатой, разложи по цепочке документов.\",\n \"normalized_question\": \"По каким реализациям 90/62 хвосты не закрылись оплатой, разложи по цепочке документов.\",\n \"intent_class\": \"cross_entity\",\n \"business_problem_type\": \"не закрытые реализации\",\n \"domain_entities\": [\"реализация\", \"оплата\", \"документ реализации\"],\n \"accounts_mentioned\": [\"90\", \"62\"],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n ,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": false,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"high\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2844,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 311,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 3155
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "По каким реализациям 90/62 хвосты не закрылись оплатой, разложи по цепочке документов.",
"normalized_question": "По каким реализациям 90/62 хвосты не закрылись оплатой, разложи по цепочке документов.",
"intent_class": "cross_entity",
"business_problem_type": "не закрытые реализации",
"domain_entities": [
"реализация",
"оплата",
"документ реализации"
],
"accounts_mentioned": [
"90",
"62"
],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": false
},
"expected_output_shape": "reconciliation_report",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "high",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "hybrid_store_plus_live",
"confidence": "medium",
"usage": {
"input_tokens": 2844,
"output_tokens": 311,
"total_tokens": 3155
},
"latency_ms": 7343,
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-vHNdfS-Ccc",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,143 @@
{
"trace_id": "0EQ9sYGhumwL57",
"timestamp": "2026-03-25T19:04:30.552Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС по счету 19 за 2020-06 и рискованные записи по документам.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС по счету 19 за 2020-06 и рискованные записи по документам.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС по счету 19 за 2020-06 и рискованные записи по документам.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС по счету 19 за 2020-06 и рискованные записи по документам.",
"normalized_fragment_text": "Проверь НДС по счету 19 за 2020-06 и рискованные записи по документам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"19",
"06"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 40,
"request_count_for_case": 0
}
@@ -0,0 +1,95 @@
{
"trace_id": "0EkSoaXJHIO89N",
"timestamp": "2026-03-23T16:22:37.725Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"case_id": "V1121-B1-04",
"user_question_raw": "Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "hybrid_store_plus_live",
"case_id": "V1121-B1-04",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"temperature": 0,
"promptVersion": "normalizer_v1_1_2_1",
"userQuestion": "Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?",
"context": {
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-qfxRc9_xyJ",
"case_id": "V1121-B1-04",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": true
},
"raw_model_response": {
"mode": "mock"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?",
"normalized_question": "Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?",
"intent_class": "cross_entity",
"business_problem_type": "normalization_playground",
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [],
"documents_mentioned": [
"документ"
],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"expected_output_shape": "reconciliation_report",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [
{
"field": "period_scope",
"reason": "period is not explicitly provided",
"severity": "medium"
}
],
"confidence": {
"overall": "low",
"intent_class": "medium",
"route_hint": "low"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "hybrid_store_plus_live",
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-qfxRc9_xyJ",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "0GdhfK2w_5pBDV",
"timestamp": "2026-03-25T18:04:12.607Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь основные средства и рискованные записи.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь основные средства и рискованные записи.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь основные средства и рискованные записи.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь основные средства и рискованные записи.",
"normalized_fragment_text": "Проверь основные средства и рискованные записи.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,132 @@
{
"trace_id": "0H5h1zg_i_N2NL",
"timestamp": "2026-03-25T18:26:22.581Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2",
"schema_version": "v2",
"user_question_raw": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v2",
"userQuestion": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании."
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2",
"user_message_raw": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"normalized_fragment_text": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "Недостаточно периода/контекста по части фрагментов."
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": null,
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 18,
"request_count_for_case": 0
}
@@ -0,0 +1,143 @@
{
"trace_id": "0JAQkBd6jW2ZEc",
"timestamp": "2026-03-25T20:09:33.086Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"normalized_fragment_text": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,138 @@
{
"trace_id": "0KyTAlmYFDB_lM",
"timestamp": "2026-03-25T18:04:12.680Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС.",
"normalized_fragment_text": "Проверь НДС.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,137 @@
{
"trace_id": "0MPqfa0EDjwWI4",
"timestamp": "2026-03-25T20:07:35.884Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-002",
"user_question_raw": "Как вообще по ФСБУ",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-002",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"useMock": true,
"userQuestion": "Как вообще по ФСБУ",
"context": {
"eval_label": "eval-dlId-aZfVF",
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Как вообще по ФСБУ",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Как вообще по ФСБУ",
"normalized_fragment_text": "Как вообще по ФСБУ",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "no_route",
"clarification_reason": "fragment_out_of_scope",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "out_of_scope"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 1,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "no_route",
"clarification_reason": "fragment_out_of_scope",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "out_of_scope",
"route": "no_route",
"reason": "Fragment is out-of-scope for company-specific accounting contour."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"eval_label": "eval-dlId-aZfVF",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,131 @@
{
"trace_id": "0O3slzg5WWMKMV",
"timestamp": "2026-03-25T19:37:38.652Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 97 i riskovye zony za 2020-06.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 97 i riskovye zony za 2020-06.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 97 i riskovye zony za 2020-06.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 97 i riskovye zony za 2020-06.",
"normalized_fragment_text": "Prover schet 97 i riskovye zony za 2020-06.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"97",
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 38,
"request_count_for_case": 0
}
@@ -0,0 +1,137 @@
{
"trace_id": "0P3x0B-A2DTNXs",
"timestamp": "2026-03-25T19:03:56.314Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"normalized_fragment_text": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"банк"
],
"account_hints": [],
"document_hints": [
"выписк",
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,128 @@
{
"trace_id": "0SNuPa2zJJAzLu",
"timestamp": "2026-03-25T20:40:30.103Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"normalized_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "inferred",
"value": "период",
"confidence": "medium"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,137 @@
{
"trace_id": "0TFOICc0l9afwf",
"timestamp": "2026-03-24T08:28:53.001Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-003",
"user_question_raw": "Покажи топ рисков за июнь 2020",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-003",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"useMock": true,
"userQuestion": "Покажи топ рисков за июнь 2020",
"context": {
"eval_label": "eval-w5euBjw0Va",
"case_id": "BQ-003",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Покажи топ рисков за июнь 2020",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи топ рисков за июнь 2020",
"normalized_fragment_text": "Покажи топ рисков за июнь 2020",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"eval_label": "eval-w5euBjw0Va",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,136 @@
{
"trace_id": "0TxkviVp_quIcF",
"timestamp": "2026-03-24T10:31:40.330Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку документов и оплат по контрагентам.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку документов и оплат по контрагентам.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку документов и оплат по контрагентам.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку документов и оплат по контрагентам.",
"normalized_fragment_text": "Разложи цепочку документов и оплат по контрагентам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"контрагент"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,511 @@
{
"trace_id": "0a5H84MIV-WDv4",
"timestamp": "2026-03-23T18:58:15.943Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"case_id": "BQ-014",
"user_question_raw": "Покажи объекты ОС, где карточка, срок и логика начисления амортизации выглядят так, будто объект поставили на учёт скорее “как-нибудь”, чем по нормальной модели.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-014",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_1.\n\nCore behavior (v2.0.1):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution readiness:\n - executable\n - executable_with_soft_assumptions\n - needs_clarification\n5. Clarification must be rare and justified.\n\nReadiness policy:\n- If fragment is in-scope, maps to recognizable accounting area, and route can be chosen -> do NOT set needs_clarification.\n- Use executable_with_soft_assumptions when request is operationally understandable but details are implicit.\n- Use needs_clarification only when missing information blocks reliable routing/execution.\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_1\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, cross_entity/anomaly flags, execution_readiness=executable_with_soft_assumptions, soft_assumption_used includes problem_scan_mode_enabled.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, rule/anomaly scan, execution_readiness=executable_with_soft_assumptions; no clarification required.\n\nQ: Чекни, что у нас не так.\nA: unclear fragment, execution_readiness=needs_clarification, clarification_reason explains missing accounting area/object.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, business_scope=generic_accounting, execution_readiness=needs_clarification or out-of-scope handling.",
"userQuestion": "Покажи объекты ОС, где карточка, срок и логика начисления амортизации выглядят так, будто объект поставили на учёт скорее “как-нибудь”, чем по нормальной модели.",
"context": {
"eval_label": "eval-baY1nPi1rI",
"case_id": "BQ-014",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0ee79500392b9e360069c18d3e7474819189bd9a8bf7cbe1dc",
"object": "response",
"created_at": 1774292286,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774292295,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0ee79500392b9e360069c18d3f285081918c4ad519013808e5",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_1\",\n \"user_message_raw\": \"Покажи объекты ОС, где карточка, срок и логика начисления амортизации выглядят так, будто объект поставили на учёт скорее “как-нибудь”, чем по нормальной модели.\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"объекты ОС, где карточка, срок и логика начисления амортизации выглядят так, будто объект поставили на учёт скорее “как-нибудь”, чем по нормальной модели.\",\n \"normalized_fragment_text\": \"объекты основных средств с некорректными данными по карточке, сроку и логике начисления амортизации.\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"entity_hints\": [\"основное средство\"],\n \"account_hints\": [\"01\", \"02\"],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": false,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": false,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": true,\n \"asks_for_anomaly_scan\": false,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": false\n },\n \"candidate_labels\": [\"rule_based_account_control\", \"cross_entity\"],\n \"confidence\": \"high\",\n \"execution_readiness\": \"executable_with_soft_assumptions\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": []\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_1",
"schema": {
"$id": "normalized_query_v2_0_1",
"title": "Normalized Query V2.0.1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_1"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1823,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 463,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2286
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Покажи объекты ОС, где карточка, срок и логика начисления амортизации выглядят так, будто объект поставили на учёт скорее “как-нибудь”, чем по нормальной модели.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "объекты ОС, где карточка, срок и логика начисления амортизации выглядят так, будто объект поставили на учёт скорее “как-нибудь”, чем по нормальной модели.",
"normalized_fragment_text": "объекты основных средств с некорректными данными по карточке, сроку и логике начисления амортизации.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"основное средство"
],
"account_hints": [
"01",
"02"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"cross_entity"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
]
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route": "store_canonical",
"reason": "In-scope fragment with no deep analytical or causal signals."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_canonical",
"confidence": "high",
"usage": {
"input_tokens": 1823,
"output_tokens": 463,
"total_tokens": 2286
},
"latency_ms": 9991,
"eval_label": "eval-baY1nPi1rI",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,144 @@
{
"trace_id": "0aN4_CfAlmEJZS",
"timestamp": "2026-03-25T20:07:35.915Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов, а не на обычную задержку.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов, а не на обычную задержку.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов, а не на обычную задержку.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов, а не на обычную задержку.",
"normalized_fragment_text": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов, а не на обычную задержку.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [
"60",
"06"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,137 @@
{
"trace_id": "0b0BtBbHAMSw9G",
"timestamp": "2026-03-25T18:04:12.655Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"normalized_fragment_text": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"банк"
],
"account_hints": [],
"document_hints": [
"выписк",
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,137 @@
{
"trace_id": "0d60S_Wt4316XD",
"timestamp": "2026-03-24T10:06:13.697Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-003",
"user_question_raw": "Покажи топ рисков за июнь 2020",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-003",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"useMock": true,
"userQuestion": "Покажи топ рисков за июнь 2020",
"context": {
"eval_label": "eval--JtoGUT4Aw",
"case_id": "BQ-003",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Покажи топ рисков за июнь 2020",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи топ рисков за июнь 2020",
"normalized_fragment_text": "Покажи топ рисков за июнь 2020",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"eval_label": "eval--JtoGUT4Aw",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,141 @@
{
"trace_id": "0dOeJk8AU2ohHb",
"timestamp": "2026-03-25T20:09:39.676Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"normalized_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"06",
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,138 @@
{
"trace_id": "0eVM5MxJQ3cHnX",
"timestamp": "2026-03-25T20:41:15.150Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 97 i riskovye zony za 2020-06.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 97 i riskovye zony za 2020-06.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 97 i riskovye zony za 2020-06.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 97 i riskovye zony za 2020-06.",
"normalized_fragment_text": "Prover schet 97 i riskovye zony za 2020-06.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 38,
"request_count_for_case": 0
}
@@ -0,0 +1,136 @@
{
"trace_id": "0eaENCQN3iXYt0",
"timestamp": "2026-03-24T11:52:42.645Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку документов и оплат по контрагентам.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку документов и оплат по контрагентам.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку документов и оплат по контрагентам.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку документов и оплат по контрагентам.",
"normalized_fragment_text": "Разложи цепочку документов и оплат по контрагентам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"контрагент"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,142 @@
{
"trace_id": "0ghBeXprhfQA2z",
"timestamp": "2026-03-25T20:09:39.675Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"normalized_fragment_text": "Покажи в целом общую картину и топ рисков по документам за июнь 2020.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 25,
"request_count_for_case": 0
}
@@ -0,0 +1,128 @@
{
"trace_id": "0kQQOQa9AH25Wg",
"timestamp": "2026-03-24T09:27:08.536Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"user_question_raw": "Покажи, что висит по 97 и что выглядит подозрительно.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v2_0_1",
"userQuestion": "Покажи, что висит по 97 и что выглядит подозрительно."
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_1"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Покажи, что висит по 97 и что выглядит подозрительно.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи, что висит по 97 и что выглядит подозрительно.",
"normalized_fragment_text": "Покажи, что висит по 97 и что выглядит подозрительно.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": []
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 14,
"request_count_for_case": 0
}
@@ -0,0 +1,130 @@
{
"trace_id": "0l4R58H3bpeNan",
"timestamp": "2026-03-24T11:03:55.006Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Dobav proverku po periodu 2020-06.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Dobav proverku po periodu 2020-06.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Dobav proverku po periodu 2020-06.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Dobav proverku po periodu 2020-06.",
"normalized_fragment_text": "Dobav proverku po periodu 2020-06.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,397 @@
{
"trace_id": "0lNcvDtvYn5C63",
"timestamp": "2026-03-23T16:30:36.410Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"case_id": "V1121-B7-02",
"user_question_raw": "Покажи объекты ОС, где риск не в сумме, а в том, что карточка и логика начисления выглядят подозрительно и могут аукнуться позже.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "store_feature_risk",
"case_id": "V1121-B7-02",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1_2_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You only perform normalization into JSON schema `normalized_query_v1`.\nDo not provide a final accounting answer. Return classification and routing signals only.\n\nTaxonomy intent_class:\n- cross_entity: use when the question asks to connect documents/payments/postings/contracts/registers/evidence chains across entities.\n- drilldown_explain: use for one concrete object (document number, ref, exact posting line, exact operation card).\n- rule_based_account_control: use for account-rule checks without multi-entity chain analysis.\n- anomaly_probe: use for suspicious pattern/risk-zone detection without mandatory company-wide batch analytics.\n- heavy_analytical: use for overview, ranking, concentration analysis, summary, prioritized analytical review.\n- period_close_risk: use when the core meaning is close-process failure risk (pre-close destabilization, last-day close failure).\n- ambiguous_human_query: fallback only when question truly cannot be mapped to a concrete class.\n- simple_factual: basic factual request without analytical depth.\n\nRoute_hint policy:\n- live_mcp_drilldown: exact object trace with needs_runtime_truth=true.\n- hybrid_store_plus_live: cross-entity causal chain with evidence.\n- batch_refresh_then_store: heavy analytical ranking/overview at company or broad period scale.\n- store_feature_risk: anomaly/risk/control without mandatory heavy batch aggregation.\n- store_canonical: simple factual request.\n\nRequires policy:\n- needs_cross_entity_join=true only for multi-entity joins.\n- needs_causal_chain=true only for explicit \"why/prove/chain breakdown\" semantics.\n- needs_exact_object_trace=true for concrete object id/number/ref/line.\n- needs_period_cut=true when period slice is required.\n- needs_evidence=true when documentary evidence is requested.\n\nBoundary rule: period_close_risk vs heavy_analytical (v1.1.2)\nIf a question is explicitly about period close risk, pre-close danger, last-day closing failure, reporting deadline risk, or threats that can break the close process itself, use `period_close_risk` as the primary intent_class.\n\nHowever, if the main purpose of the question is:\n- ranking,\n- top issues,\n- overview,\n- concentration of errors,\n- summary,\n- prioritized review list,\n- company-wide analytical review,\n\nthen the primary intent_class should remain `heavy_analytical`, even if the question is phrased in the context of month-end close or reporting preparation.\n\n`heavy_analytical` has priority over `period_close_risk` when the question asks for:\n- ranking,\n- top-N,\n- overview,\n- summary,\n- company-wide picture,\n- prioritized analytical review,\neven if the wording mentions closing period, reporting, or pre-close context.\n\nUse `period_close_risk` only when the core of the question is the risk of failing or destabilizing the close process itself.\n\nExact drilldown guard:\nIf the question is about one specific document/operation/ref and asks to show a related posting/source, keep:\n- needs_exact_object_trace=true\n- needs_runtime_truth=true\n- needs_cross_entity_join=false\nunless the user explicitly asks to analyze multiple entities/cases.\n\nAnomaly route guard:\nIf the question asks for suspicious zones/risk cases without ranking and without company-wide aggregation, keep route_hint=`store_feature_risk`.\n\nConfidence guard:\nIf a question is plausibly on the boundary between `heavy_analytical` and `period_close_risk`, do not assign `confidence.overall = high`.\nUse `medium` unless wording strongly and unambiguously centers on close-process failure risk rather than analytical overview.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\n# keep period_close_risk anchor\n\nQ: Перед закрытием периода что у нас может взорваться в последний день?\nExpected:\n{\n \"intent_class\": \"period_close_risk\",\n \"requires\": {\n \"needs_period_cut\": true,\n \"needs_ranking\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где по июню выглядит подозрительно, просто дай зоны риска без детального разбора.\nExpected:\n{\n \"intent_class\": \"anomaly_probe\",\n \"requires\": {\n \"needs_anomaly_summary\": true,\n \"needs_period_cut\": true,\n \"needs_ranking\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\"\n}\n\n# v1.1.2 boundary balancing additions (exactly 2 new heavy counterexamples)\n\nQ: Сделай рейтинг самых рисковых хвостов перед закрытием периода за июнь.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Дай обзорный риск-срез перед сдачей отчетности: где максимальная концентрация ошибок.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "Покажи объекты ОС, где риск не в сумме, а в том, что карточка и логика начисления выглядят подозрительно и могут аукнуться позже.",
"context": {
"expected_route": "store_feature_risk",
"eval_label": "eval-h3k8TyTFuu",
"case_id": "V1121-B7-02",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_012580e29641cd0b0069c16aa1e588819d805ddde9efe21c6e",
"object": "response",
"created_at": 1774283425,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774283436,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_012580e29641cd0b0069c16aa48e58819dadc23c3c6865f24e",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"Покажи объекты ОС, где риск не в сумме, а в том, что карточка и логика начисления выглядят подозрительно и могут аукнуться позже.\",\n \"normalized_question\": \"Показать объекты ОС с подозрительной логикой начисления.\",\n \"intent_class\": \"anomaly_probe\",\n \"business_problem_type\": \"риск учета объектов основных средств\",\n \"domain_entities\": [\"объект ОС\"],\n \"accounts_mentioned\": [],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": false,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"medium\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2885,
"input_tokens_details": {
"cached_tokens": 2048
},
"output_tokens": 298,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 3183
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Покажи объекты ОС, где риск не в сумме, а в том, что карточка и логика начисления выглядят подозрительно и могут аукнуться позже.",
"normalized_question": "Показать объекты ОС с подозрительной логикой начисления.",
"intent_class": "anomaly_probe",
"business_problem_type": "риск учета объектов основных средств",
"domain_entities": [
"объект ОС"
],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": true,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": false
},
"expected_output_shape": "anomaly_summary",
"route_hint": "store_feature_risk",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "store_feature_risk",
"confidence": "medium",
"usage": {
"input_tokens": 2885,
"output_tokens": 298,
"total_tokens": 3183
},
"latency_ms": 10765,
"expected_route": "store_feature_risk",
"eval_label": "eval-h3k8TyTFuu",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,395 @@
{
"trace_id": "0lcF5KNdyHtHss",
"timestamp": "2026-03-23T16:29:55.237Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"case_id": "V1121-B5-02",
"user_question_raw": "Есть ли материалы, по которым остаток выглядит нелогично: движения были, хозяйственная логика слабая, а в учете все еще что-то торчит?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "store_feature_risk",
"case_id": "V1121-B5-02",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1_2_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You only perform normalization into JSON schema `normalized_query_v1`.\nDo not provide a final accounting answer. Return classification and routing signals only.\n\nTaxonomy intent_class:\n- cross_entity: use when the question asks to connect documents/payments/postings/contracts/registers/evidence chains across entities.\n- drilldown_explain: use for one concrete object (document number, ref, exact posting line, exact operation card).\n- rule_based_account_control: use for account-rule checks without multi-entity chain analysis.\n- anomaly_probe: use for suspicious pattern/risk-zone detection without mandatory company-wide batch analytics.\n- heavy_analytical: use for overview, ranking, concentration analysis, summary, prioritized analytical review.\n- period_close_risk: use when the core meaning is close-process failure risk (pre-close destabilization, last-day close failure).\n- ambiguous_human_query: fallback only when question truly cannot be mapped to a concrete class.\n- simple_factual: basic factual request without analytical depth.\n\nRoute_hint policy:\n- live_mcp_drilldown: exact object trace with needs_runtime_truth=true.\n- hybrid_store_plus_live: cross-entity causal chain with evidence.\n- batch_refresh_then_store: heavy analytical ranking/overview at company or broad period scale.\n- store_feature_risk: anomaly/risk/control without mandatory heavy batch aggregation.\n- store_canonical: simple factual request.\n\nRequires policy:\n- needs_cross_entity_join=true only for multi-entity joins.\n- needs_causal_chain=true only for explicit \"why/prove/chain breakdown\" semantics.\n- needs_exact_object_trace=true for concrete object id/number/ref/line.\n- needs_period_cut=true when period slice is required.\n- needs_evidence=true when documentary evidence is requested.\n\nBoundary rule: period_close_risk vs heavy_analytical (v1.1.2)\nIf a question is explicitly about period close risk, pre-close danger, last-day closing failure, reporting deadline risk, or threats that can break the close process itself, use `period_close_risk` as the primary intent_class.\n\nHowever, if the main purpose of the question is:\n- ranking,\n- top issues,\n- overview,\n- concentration of errors,\n- summary,\n- prioritized review list,\n- company-wide analytical review,\n\nthen the primary intent_class should remain `heavy_analytical`, even if the question is phrased in the context of month-end close or reporting preparation.\n\n`heavy_analytical` has priority over `period_close_risk` when the question asks for:\n- ranking,\n- top-N,\n- overview,\n- summary,\n- company-wide picture,\n- prioritized analytical review,\neven if the wording mentions closing period, reporting, or pre-close context.\n\nUse `period_close_risk` only when the core of the question is the risk of failing or destabilizing the close process itself.\n\nExact drilldown guard:\nIf the question is about one specific document/operation/ref and asks to show a related posting/source, keep:\n- needs_exact_object_trace=true\n- needs_runtime_truth=true\n- needs_cross_entity_join=false\nunless the user explicitly asks to analyze multiple entities/cases.\n\nAnomaly route guard:\nIf the question asks for suspicious zones/risk cases without ranking and without company-wide aggregation, keep route_hint=`store_feature_risk`.\n\nConfidence guard:\nIf a question is plausibly on the boundary between `heavy_analytical` and `period_close_risk`, do not assign `confidence.overall = high`.\nUse `medium` unless wording strongly and unambiguously centers on close-process failure risk rather than analytical overview.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\n# keep period_close_risk anchor\n\nQ: Перед закрытием периода что у нас может взорваться в последний день?\nExpected:\n{\n \"intent_class\": \"period_close_risk\",\n \"requires\": {\n \"needs_period_cut\": true,\n \"needs_ranking\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где по июню выглядит подозрительно, просто дай зоны риска без детального разбора.\nExpected:\n{\n \"intent_class\": \"anomaly_probe\",\n \"requires\": {\n \"needs_anomaly_summary\": true,\n \"needs_period_cut\": true,\n \"needs_ranking\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\"\n}\n\n# v1.1.2 boundary balancing additions (exactly 2 new heavy counterexamples)\n\nQ: Сделай рейтинг самых рисковых хвостов перед закрытием периода за июнь.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Дай обзорный риск-срез перед сдачей отчетности: где максимальная концентрация ошибок.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "Есть ли материалы, по которым остаток выглядит нелогично: движения были, хозяйственная логика слабая, а в учете все еще что-то торчит?",
"context": {
"expected_route": "store_feature_risk",
"eval_label": "eval-h3k8TyTFuu",
"case_id": "V1121-B5-02",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_015a45297e5525d60069c16a7d423481a085565fe5838abd74",
"object": "response",
"created_at": 1774283389,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774283395,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_015a45297e5525d60069c16a7de0d481a09397f8e7d1b440b5",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"Есть ли материалы, по которым остаток выглядит нелогично: движения были, хозяйственная логика слабая, а в учете все еще что-то торчит?\",\n \"normalized_question\": \"Проверь материалы с нелогичными остатками и слабой хозяйственной логикой.\",\n \"intent_class\": \"anomaly_probe\",\n \"business_problem_type\": \"анализ остатка\",\n \"domain_entities\": [],\n \"accounts_mentioned\": [],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": false,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"medium\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2881,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 291,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 3172
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Есть ли материалы, по которым остаток выглядит нелогично: движения были, хозяйственная логика слабая, а в учете все еще что-то торчит?",
"normalized_question": "Проверь материалы с нелогичными остатками и слабой хозяйственной логикой.",
"intent_class": "anomaly_probe",
"business_problem_type": "анализ остатка",
"domain_entities": [],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": true,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": false
},
"expected_output_shape": "anomaly_summary",
"route_hint": "store_feature_risk",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "store_feature_risk",
"confidence": "medium",
"usage": {
"input_tokens": 2881,
"output_tokens": 291,
"total_tokens": 3172
},
"latency_ms": 6210,
"expected_route": "store_feature_risk",
"eval_label": "eval-h3k8TyTFuu",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,138 @@
{
"trace_id": "10GCNMt0AQPbWX",
"timestamp": "2026-03-25T20:41:08.733Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"normalized_fragment_text": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,128 @@
{
"trace_id": "134TkQgvdVMUF0",
"timestamp": "2026-03-25T20:41:15.304Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "И по периоду 2020-06.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "И по периоду 2020-06.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "И по периоду 2020-06.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "И по периоду 2020-06.",
"normalized_fragment_text": "И по периоду 2020-06.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,128 @@
{
"trace_id": "13SLIRkjDoGXwd",
"timestamp": "2026-03-25T20:44:23.236Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"normalized_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "inferred",
"value": "период",
"confidence": "medium"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,130 @@
{
"trace_id": "13uVyzpSXSHIkL",
"timestamp": "2026-03-24T10:31:40.293Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 97 i podsveti riskovye zony.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 97 i podsveti riskovye zony.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 97 i podsveti riskovye zony.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 97 i podsveti riskovye zony.",
"normalized_fragment_text": "Prover schet 97 i podsveti riskovye zony.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 32,
"request_count_for_case": 0
}
@@ -0,0 +1,132 @@
{
"trace_id": "16QDT4oV5iLCnS",
"timestamp": "2026-03-25T20:49:22.824Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2",
"schema_version": "v2",
"user_question_raw": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v2",
"userQuestion": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании."
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2",
"user_message_raw": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"normalized_fragment_text": "Проверь хвосты по поставщикам и отдельно все, что не относится к данным компании.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "Недостаточно периода/контекста по части фрагментов."
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": null,
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 21,
"request_count_for_case": 0
}
@@ -0,0 +1,137 @@
{
"trace_id": "17Re1E7wKH1oeZ",
"timestamp": "2026-03-25T20:40:29.913Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку по 51 и 60 счетам: где закрытие не тем документом.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку по 51 и 60 счетам: где закрытие не тем документом.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку по 51 и 60 счетам: где закрытие не тем документом.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку по 51 и 60 счетам: где закрытие не тем документом.",
"normalized_fragment_text": "Разложи цепочку по 51 и 60 счетам: где закрытие не тем документом.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"51",
"60"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,386 @@
{
"trace_id": "1C9MATbKvo5FnF",
"timestamp": "2026-03-23T13:55:09.004Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1",
"schema_version": "v1",
"user_question_raw": "Где у нас пахнет ручной ошибкой по июню?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "batch_refresh_then_store"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "Классификация intent_class:\n- heavy_analytical: общий агрегированный риск-срез, рейтинг, приоритизация.\n- cross_entity: связки между документами/проводками/оплатами/договорами/контрагентами.\n- drilldown_explain: точечное объяснение причин по объекту или малому набору объектов.\n- rule_based_account_control: контрольные правила по счетам (ОС, 97, 10 и т.п.).\n- anomaly_probe: поиск нетипичных паттернов.\n- period_close_risk: фокус на предзакрытии периода.\n- ambiguous_human_query: широкая человеческая формулировка без точного scope.\n- simple_factual: простой факт без сложной аналитики.\n\nПравила route_hint:\n- live_mcp_drilldown: если точечный object trace.\n- hybrid_store_plus_live: если cross_entity + causal explain.\n- batch_refresh_then_store: если full-period heavy aggregate/ranking без готовой агрегации.\n- store_feature_risk: если тренд/аномалии/контроли, когда точечный runtime не обязателен.\n- store_canonical: простые факты и легкие запросы при достаточном контексте.\n\nПравила requires:\n- needs_cross_entity_join=true для связок между разными сущностями.\n- needs_causal_chain=true для формулировок \"почему\", \"чем подтверждается\", \"разложи цепочку\".\n- needs_exact_object_trace=true для конкретного документа/проводки/строки/номера/ref.\n- needs_period_cut=true если вопрос про конец периода или периодную сверку.\n- needs_evidence=true если требуется подтверждение документами/движениями/проводками.",
"domainPrompt": "Домен бухгалтерии:\n- ключевые счета: 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97;\n- сущности: контрагент, договор, реализация, поступление, оплата, проводка, регистр;\n- типовые паттерны: \"не бьется\", \"хвост\", \"акт сверки\", \"закрывающие\", \"реализация без оплаты\";\n- товарные аномалии: \"продажа раньше прихода\", \"подозрительный остаток\";\n- ОС: \"амортизационная группа\", \"срок амортизации\", \"карточка ОС\";\n- банк: \"выписка\", \"движение по 51\", \"разрыв цепочки документ-проводка\";\n- периодная аналитика: предзакрытие, риск-срез, приоритизация ручных проверок.\n\nЕсли присутствуют одновременно риск-слова и document/payment/posting chain,\nне понижать сценарий до чистого risk-route автоматически.",
"fewShotExamples": "Q: По каким покупателям у нас отгрузки без оплаты на конец июня, свяжи с реализациями, договорами и проводками.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Сделай рейтинг самых рисковых счетов перед закрытием июня.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_ranking\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Покажи документ №123 и проводку по нему, нужна точная строка.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}",
"userQuestion": "Где у нас пахнет ручной ошибкой по июню?",
"context": {
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-YxrhL2dCcH"
},
"useMock": false
},
"raw_model_response": {
"id": "resp_0fc0980c6a234da50069c14636dd54819495f5eb74329a350f",
"object": "response",
"created_at": 1774274102,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774274108,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0fc0980c6a234da50069c146377108819484b00819fd596c41",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"Где у нас пахнет ручной ошибкой по июню?\",\n \"normalized_question\": \"Поиск ручных ошибок за июнь.\",\n \"intent_class\": \"anomaly_probe\",\n \"business_problem_type\": \"поиск аномалий\",\n \"domain_entities\": [],\n \"accounts_mentioned\": [],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"explicit\",\n \"value\": \"июнь\",\n \"confidence\": \"high\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"high\",\n \"intent_class\": \"high\",\n \"route_hint\": \"high\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1561,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 265,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 1826
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Где у нас пахнет ручной ошибкой по июню?",
"normalized_question": "Поиск ручных ошибок за июнь.",
"intent_class": "anomaly_probe",
"business_problem_type": "поиск аномалий",
"domain_entities": [],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "explicit",
"value": "июнь",
"confidence": "high"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": true,
"needs_runtime_truth": false,
"needs_period_cut": true,
"needs_evidence": false
},
"expected_output_shape": "anomaly_summary",
"route_hint": "store_feature_risk",
"ambiguities": [],
"confidence": {
"overall": "high",
"intent_class": "high",
"route_hint": "high"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 1561,
"output_tokens": 265,
"total_tokens": 1826
},
"latency_ms": 6260,
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-YxrhL2dCcH"
}
@@ -0,0 +1,140 @@
{
"trace_id": "1G264bpiVaVnZB",
"timestamp": "2026-03-25T20:40:30.260Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"normalized_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,142 @@
{
"trace_id": "1HdH7tdgBmmaWY",
"timestamp": "2026-03-25T20:09:40.240Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"normalized_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [
"регистр"
],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"confidence": "medium",
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "critical_period_missing"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "clarification",
"message": "Могу проверить это в контуре компании, но нужно уточнить период, документ, счет или участок учета."
}
},
"route_hint": null,
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,534 @@
{
"trace_id": "1IgK6vkpj81btm",
"timestamp": "2026-03-24T08:38:06.173Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-013",
"user_question_raw": "Есть ли по РБП такие кейсы, где ошибка не в одной дате, а в том, что сама логика начала, окончания и длительности выглядит бухгалтерски сомнительно.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-013",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_2",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что у нас не так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.",
"userQuestion": "Есть ли по РБП такие кейсы, где ошибка не в одной дате, а в том, что сама логика начала, окончания и длительности выглядит бухгалтерски сомнительно.",
"context": {
"eval_label": "eval-uQiZ1L_ga6",
"case_id": "BQ-013",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0f30e314f7e767f10069c24d62b3888194abcd5d11ebf22967",
"object": "response",
"created_at": 1774341474,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774341485,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0f30e314f7e767f10069c24d6315808194a8fc97b7a62e1b60",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_2\",\n \"user_message_raw\": \"Есть ли по РБП такие кейсы, где ошибка не в одной дате, а в том, что сама логика начала, окончания и длительности выглядит бухгалтерски сомнительно.\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"Есть ли по РБП такие кейсы, где ошибка не в одной дате, а в том, что сама логика начала, окончания и длительности выглядит бухгалтерски сомнительно.\",\n \"normalized_fragment_text\": \"Проверь кейсы по РБП на наличие ошибок в логике учета дат начала, окончания и длительности.\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"generic_accounting\",\n \"entity_hints\": [],\n \"account_hints\": [],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": false,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": false,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": true,\n \"asks_for_anomaly_scan\": false,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": false\n },\n \"candidate_labels\": [\n \"rule_based_account_control\",\n \"anomaly_probe\"\n ],\n \"confidence\": \"medium\",\n \"execution_readiness\": \"executable_with_soft_assumptions\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": [],\n \"route_status\": \"routed\",\n \"no_route_reason\": null\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_2",
"schema": {
"$id": "normalized_query_v2_0_2",
"title": "Normalized Query V2.0.2",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_2"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used",
"route_status",
"no_route_reason"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification",
"no_route"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
},
"route_status": {
"type": "string",
"enum": [
"routed",
"no_route"
]
},
"no_route_reason": {
"type": [
"string",
"null"
],
"enum": [
"out_of_scope",
"insufficient_specificity",
"missing_mapping",
"unsupported_fragment_type",
null
]
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1943,
"input_tokens_details": {
"cached_tokens": 1792
},
"output_tokens": 464,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2407
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Есть ли по РБП такие кейсы, где ошибка не в одной дате, а в том, что сама логика начала, окончания и длительности выглядит бухгалтерски сомнительно.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "Есть ли по РБП такие кейсы, где ошибка не в одной дате, а в том, что сама логика начала, окончания и длительности выглядит бухгалтерски сомнительно.",
"normalized_fragment_text": "Проверь кейсы по РБП на наличие ошибок в логике учета дат начала, окончания и длительности.",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_canonical",
"reason": "Routed fragment without deep analytical or causal signals."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_canonical",
"confidence": "high",
"usage": {
"input_tokens": 1943,
"output_tokens": 464,
"total_tokens": 2407
},
"latency_ms": 11492,
"eval_label": "eval-uQiZ1L_ga6",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,470 @@
{
"trace_id": "1KBRovASAt6sTv",
"timestamp": "2026-03-23T18:08:46.494Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2",
"schema_version": "v2",
"case_id": "BQ-008",
"user_question_raw": "Есть ли такие расходы будущих периодов, которые заведены, но по ним не видно нормальной ежемесячной жизни, как будто запись повисла сама по себе?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-008",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are a decomposition-first semantic parser for accounting assistant NDC.\nReturn JSON only, strictly matching `normalized_query_v2`.\nDo not answer the accounting question itself.\n\nCore workflow:\n1) Detect if the user message is in company-specific accounting scope.\n2) Split message into meaningful task fragments.\n3) Discard obvious noise fragments.\n4) For each kept fragment, output semantic hints + flags + candidate_labels.\n5) Keep routing as indirect signals only (flags + labels). Final route is chosen by deterministic code.\n\nDomain gating policy:\n- `in_scope` only for requests about current company data and accounting ontology (documents, postings, balances, settlements, period close risks, anomalies, controls).\n- `out_of_scope` for generic accounting theory, legal questions, standards/laws, unrelated business or casual/offtopic chat.\n- `unclear` when intent may be accounting-related but insufficiently grounded in company context.\n\nbusiness_scope mapping:\n- `company_specific_accounting` for in-scope enterprise-data tasks.\n- `generic_accounting` for abstract accounting questions not tied to this company data.\n- `offtopic` for non-accounting content.\n- `unclear` when not enough signal.\n\nFragment policy:\n- Keep user wording in `raw_fragment_text`.\n- Make `normalized_fragment_text` concise and business-readable.\n- Populate `entity_hints/account_hints/document_hints/register_hints` only from message evidence.\n- `candidate_labels` can contain multiple labels. Do not force a single mandatory intent.\n- `fragment_id` must be stable and sequential: F1, F2, F3...\n\nFlag policy:\n- has_multi_entity_scope: requires linking multiple accounting entities/documents/payments/postings.\n- asks_for_chain_explanation: asks to explain “why”, “where chain breaks”, or causal reconstruction.\n- asks_for_ranking_or_top: asks top/ranking/prioritized ordering.\n- asks_for_period_summary: asks broad period/company summary or slice.\n- asks_for_rule_check: asks control/rule compliance checks.\n- asks_for_anomaly_scan: asks suspicious zones/anomaly search.\n- asks_for_exact_object_trace: asks exact object trace (document number/ref/line).\n- asks_for_evidence: asks documentary/proof evidence.\n- mentions_period_close_context: explicit pre-close/close/reporting deadline context.\n\nDiscard policy:\n- Put chatter/noise/meta filler into `discarded_fragments` with reason.\n- Do not discard valid accounting tasks, even if wording is slang-like.\n\nConfidence policy:\n- high only for clear, explicit fragment semantics.\n- medium for normal ambiguity.\n- low for unclear or weakly grounded fragments.\n- scope_confidence reflects whole-message domain certainty.\n\nglobal_notes policy:\n- needs_clarification=true when period/object/scope is missing for reliable execution.\n- clarification_reason should be concrete and short.\n\nStrictness:\n- Output only valid JSON object matching `normalized_query_v2`.\n- No markdown, no prose, no extra fields.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q:\nПо поставщикам на конец месяца где хвосты по взаиморасчетам, разложи где рвется цепочка документов и оплат.\n\nExpected (fragment-level shape):\n{\n \"message_in_scope\": true,\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"F1\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"account_hints\": [\"60\"],\n \"flags\": {\n \"has_multi_entity_scope\": true,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": false,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": true,\n \"mentions_period_close_context\": true\n },\n \"candidate_labels\": [\"cross_entity\", \"anomaly_probe\"]\n }\n ]\n}\n\nQ:\nСкажи как вообще по ФСБУ правильно закрывать 97 счет, и еще проверь у нас по июню подозрительные РБП.\n\nExpected (fragment-level shape):\n{\n \"message_in_scope\": true,\n \"contains_multiple_tasks\": true,\n \"fragments\": [\n {\n \"fragment_id\": \"F1\",\n \"domain_relevance\": \"out_of_scope\",\n \"business_scope\": \"generic_accounting\",\n \"flags\": {\n \"asks_for_rule_check\": true,\n \"asks_for_anomaly_scan\": false\n },\n \"candidate_labels\": []\n },\n {\n \"fragment_id\": \"F2\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"account_hints\": [\"97\"],\n \"flags\": {\n \"asks_for_rule_check\": true,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_period_summary\": false\n },\n \"candidate_labels\": [\"rule_based_account_control\", \"anomaly_probe\"]\n }\n ],\n \"global_notes\": {\n \"needs_clarification\": false\n }\n}\n\nQ:\nДокумент TRX-88 покажи и связанную строку проводки, а еще где по банку повторяется паттерн подозрительных хвостов.\n\nExpected (fragment-level shape):\n{\n \"message_in_scope\": true,\n \"contains_multiple_tasks\": true,\n \"fragments\": [\n {\n \"fragment_id\": \"F1\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"flags\": {\n \"asks_for_exact_object_trace\": true,\n \"asks_for_evidence\": true,\n \"has_multi_entity_scope\": false\n },\n \"candidate_labels\": [\"drilldown_explain\"]\n },\n {\n \"fragment_id\": \"F2\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"flags\": {\n \"asks_for_anomaly_scan\": true,\n \"asks_for_ranking_or_top\": true,\n \"asks_for_period_summary\": true\n },\n \"candidate_labels\": [\"heavy_analytical\", \"anomaly_probe\"]\n }\n ]\n}",
"userQuestion": "Есть ли такие расходы будущих периодов, которые заведены, но по ним не видно нормальной ежемесячной жизни, как будто запись повисла сама по себе?",
"context": {
"eval_label": "eval-aOEoelkQb2",
"case_id": "BQ-008",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_06d15f3ec1c699d30069c181a561f8819285c6c3557b748fcd",
"object": "response",
"created_at": 1774289317,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774289326,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_06d15f3ec1c699d30069c181a61b088192b63fca083b58bece",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2\",\n \"user_message_raw\": \"Есть ли такие расходы будущих периодов, которые заведены, но по ним не видно нормальной ежемесячной жизни, как будто запись повисла сама по себе?\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"F1\",\n \"raw_fragment_text\": \"Есть ли такие расходы будущих периодов, которые заведены, но по ним не видно нормальной ежемесячной жизни, как будто запись повисла сама по себе?\",\n \"normalized_fragment_text\": \"Проверить расходы будущих периодов на наличие зависших записей.\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"entity_hints\": [],\n \"account_hints\": [\"68.02\"],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": false,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": false,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": false\n },\n \"candidate_labels\": [\"anomaly_probe\", \"cross_entity\"]\n \n \t\n \t,\n \"confidence\": \"medium\"\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": true,\n \"clarification_reason\": \"Отсутствует конкретный период для анализа.\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2",
"schema": {
"$id": "normalized_query_v2",
"title": "Normalized Query V2",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2427,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 414,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2841
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2",
"user_message_raw": "Есть ли такие расходы будущих периодов, которые заведены, но по ним не видно нормальной ежемесячной жизни, как будто запись повисла сама по себе?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Есть ли такие расходы будущих периодов, которые заведены, но по ним не видно нормальной ежемесячной жизни, как будто запись повисла сама по себе?",
"normalized_fragment_text": "Проверить расходы будущих периодов на наличие зависших записей.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"68.02"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe",
"cross_entity"
],
"confidence": "medium"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "Отсутствует конкретный период для анализа."
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "clarification",
"message": "Могу проверить это в контуре компании, но нужно уточнить период, документ, счет или участок учета."
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 2427,
"output_tokens": 414,
"total_tokens": 2841
},
"latency_ms": 9927,
"eval_label": "eval-aOEoelkQb2",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,143 @@
{
"trace_id": "1L93S7XxQ01REU",
"timestamp": "2026-03-25T20:09:40.050Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"normalized_fragment_text": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "1M2FlG6O4aATwV",
"timestamp": "2026-03-25T20:49:22.799Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"normalized_fragment_text": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 35,
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "1MXCOgekwPphxQ",
"timestamp": "2026-03-25T20:49:23.079Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"normalized_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,142 @@
{
"trace_id": "1OYxBdR6-5_Oj3",
"timestamp": "2026-03-25T20:07:36.311Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"normalized_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [
"регистр"
],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"confidence": "medium",
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "critical_period_missing"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "clarification",
"message": "Могу проверить это в контуре компании, но нужно уточнить период, документ, счет или участок учета."
}
},
"route_hint": null,
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,397 @@
{
"trace_id": "1WWdojMzkPnh8b",
"timestamp": "2026-03-23T14:55:34.233Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1",
"schema_version": "v1",
"case_id": "NQ-004",
"user_question_raw": "По 97 счету проверь, где возможна ошибка дат начала и окончания списания.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "store_feature_risk",
"case_id": "NQ-004",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "Ты выполняешь только задачу нормализации в JSON schema `normalized_query_v1`.\nНельзя давать финальный бухгалтерский ответ, только классификация и признаки маршрутизации.\n\nTaxonomy intent_class (v1.1, усиленная):\n- cross_entity: обязательно, если вопрос просит связать документы/оплаты/проводки/закрывающие/договоры/регистры/цепочку доказательств.\n- drilldown_explain: только для точечного объекта или малого списка объектов (номер документа, ref, строка, конкретная проводка).\n- rule_based_account_control: контроль правил по счетам и учетным параметрам без межсущностной цепочки.\n- anomaly_probe: поиск аномалий и подозрительных паттернов без явной необходимости causal-chain между сущностями.\n- heavy_analytical: общий обзор, рейтинг, приоритизация на уровне периода/компании.\n- ambiguous_human_query: использовать только как последний fallback, когда вопрос реально не раскладывается в конкретный класс.\n- simple_factual: простая справка без сложной аналитики и без причинно-следственной цепочки.\n- period_close_risk: отдельный риск предзакрытия периода, если это основной смысл запроса.\n\nПриоритеты route и intent:\n1) Если в вопросе одновременно есть документы/оплаты/проводки/закрывающие/договоры/цепочка подтверждений, это causal multi-entity сценарий.\n Обычно это `intent_class=cross_entity` и route не ниже `hybrid_store_plus_live`.\n2) Если вопрос про множество кейсов (\"по каким\", \"где\", \"разложи по\"), это НЕ `needs_exact_object_trace`, пока нет одного точного объекта.\n3) Если присутствуют риск-слова, но также есть document/payment/posting chain, приоритет у causal cross-entity semantics, а не у чистого risk bucket.\n4) Не используй `ambiguous_human_query` как ленивый fallback, если можно уверенно выбрать конкретный intent.\n\nRoute_hint:\n- live_mcp_drilldown: только для точечного object trace (номер/строка/ref) и needs_runtime_truth=true.\n- hybrid_store_plus_live: для cross_entity + causal explain и подтверждаемой цепочки.\n- batch_refresh_then_store: для широких периодных рейтингов/обзоров и тяжелой агрегатной аналитики.\n- store_feature_risk: для risk/control/anomaly без обязательного runtime drilldown.\n- store_canonical: для простых фактов.\n\nRequires:\n- needs_cross_entity_join=true: если надо связывать разные сущности (документы, оплаты, проводки, договоры, регистры).\n- needs_causal_chain=true: если есть \"почему\", \"чем подтверждается\", \"где ошибка в цепочке\", \"разложи цепочку\".\n- needs_exact_object_trace=true: только при точном объекте.\n- needs_period_cut=true: если нужен срез периода.\n- needs_evidence=true: если пользователь просит подтверждение документами/проводками/движениями.\n\nConfidence policy (жестко):\nНе ставь `confidence.overall=high` и `confidence.route_hint=high`, если выполнено хотя бы одно условие:\n- есть ambiguity;\n- есть тонкое различие соседних классов (например cross_entity vs anomaly_probe/rule_based_account_control);\n- вопрос длинный и многослойный;\n- период задан неявно или неуверенно;\n- causal semantics восстановлена частично.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Сделай топ рисков перед закрытием периода по компании в целом.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_ranking\": true,\n \"needs_period_cut\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "По 97 счету проверь, где возможна ошибка дат начала и окончания списания.",
"context": {
"expected_route": "store_feature_risk",
"eval_label": "eval-xQU7mHgdgo",
"case_id": "NQ-004",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0c764faa294993ab0069c154602964819586a5ede158114486",
"object": "response",
"created_at": 1774277728,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774277733,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0c764faa294993ab0069c15460af4081959ff3d548e156fde2",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"По 97 счету проверь, где возможна ошибка дат начала и окончания списания.\",\n \"normalized_question\": \"Проверь ошибки дат начала и окончания списания по 97 счету.\",\n \"intent_class\": \"rule_based_account_control\",\n \"business_problem_type\": \"контроль ошибок учета\",\n \"domain_entities\": [],\n \"accounts_mentioned\": [\"97\"],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": false,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"medium\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2457,
"input_tokens_details": {
"cached_tokens": 2048
},
"output_tokens": 277,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2734
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "По 97 счету проверь, где возможна ошибка дат начала и окончания списания.",
"normalized_question": "Проверь ошибки дат начала и окончания списания по 97 счету.",
"intent_class": "rule_based_account_control",
"business_problem_type": "контроль ошибок учета",
"domain_entities": [],
"accounts_mentioned": [
"97"
],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": false
},
"expected_output_shape": "prioritized_review_list",
"route_hint": "store_feature_risk",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "store_feature_risk",
"confidence": "medium",
"usage": {
"input_tokens": 2457,
"output_tokens": 277,
"total_tokens": 2734
},
"latency_ms": 6275,
"expected_route": "store_feature_risk",
"eval_label": "eval-xQU7mHgdgo",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,129 @@
{
"trace_id": "1YBeG1qLyd-owb",
"timestamp": "2026-03-23T18:38:22.094Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2",
"schema_version": "v2",
"case_id": "BQ-002",
"user_question_raw": "Как вообще по ФСБУ",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2",
"useMock": true,
"userQuestion": "Как вообще по ФСБУ",
"context": {
"eval_label": "eval-HQ5HtxrQpc",
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2",
"user_message_raw": "Как вообще по ФСБУ",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Как вообще по ФСБУ",
"normalized_fragment_text": "Как вообще по ФСБУ",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 1,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": null,
"clarification_reason": null,
"soft_assumption_used": [],
"route": "no_route",
"reason": "Fragment is out-of-scope for company-specific accounting contour."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"eval_label": "eval-HQ5HtxrQpc",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,141 @@
{
"trace_id": "1iQHNtjJhAtmPj",
"timestamp": "2026-03-25T20:09:39.589Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"normalized_fragment_text": "Проверь счет 97 за 2020-06 по документам и выдели отклонения.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"97",
"06"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 32,
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "1nKtKSnIoq8mZD",
"timestamp": "2026-03-25T20:07:35.924Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "По ОС за 2020-06 сравни карточку объекта и начисления: где есть расхождения, которые влияют на корректность учета?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "По ОС за 2020-06 сравни карточку объекта и начисления: где есть расхождения, которые влияют на корректность учета?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "По ОС за 2020-06 сравни карточку объекта и начисления: где есть расхождения, которые влияют на корректность учета?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "По ОС за 2020-06 сравни карточку объекта и начисления: где есть расхождения, которые влияют на корректность учета?",
"normalized_fragment_text": "По ОС за 2020-06 сравни карточку объекта и начисления: где есть расхождения, которые влияют на корректность учета?",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,147 @@
{
"trace_id": "1nRoFDbAGJmouM",
"timestamp": "2026-03-25T20:41:15.678Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-001",
"user_question_raw": "Проверь счет 60 за июнь 2020",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-001",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь счет 60 за июнь 2020",
"context": {
"eval_label": "eval-ShSTDlSKMR",
"case_id": "BQ-001",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь счет 60 за июнь 2020",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь счет 60 за июнь 2020",
"normalized_fragment_text": "Проверь счет 60 за июнь 2020",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 19,
"eval_label": "eval-ShSTDlSKMR",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "1qtjsbR9ruP35w",
"timestamp": "2026-03-25T20:41:15.626Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"normalized_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,508 @@
{
"trace_id": "1quAW9woZFTC_a",
"timestamp": "2026-03-23T18:45:40.632Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"case_id": "BQ-002",
"user_question_raw": "Покажи реализации, где хвост выглядит особенно неприятно: сумма не маленькая, возраст хвоста уже заметный, и при этом не видно нормального завершения цепочки.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_1.\n\nCore behavior (v2.0.1):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution readiness:\n - executable\n - executable_with_soft_assumptions\n - needs_clarification\n5. Clarification must be rare and justified.\n\nReadiness policy:\n- If fragment is in-scope, maps to recognizable accounting area, and route can be chosen -> do NOT set needs_clarification.\n- Use executable_with_soft_assumptions when request is operationally understandable but details are implicit.\n- Use needs_clarification only when missing information blocks reliable routing/execution.\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_1\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, cross_entity/anomaly flags, execution_readiness=executable_with_soft_assumptions, soft_assumption_used includes problem_scan_mode_enabled.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, rule/anomaly scan, execution_readiness=executable_with_soft_assumptions; no clarification required.\n\nQ: Чекни, что у нас не так.\nA: unclear fragment, execution_readiness=needs_clarification, clarification_reason explains missing accounting area/object.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, business_scope=generic_accounting, execution_readiness=needs_clarification or out-of-scope handling.",
"userQuestion": "Покажи реализации, где хвост выглядит особенно неприятно: сумма не маленькая, возраст хвоста уже заметный, и при этом не видно нормального завершения цепочки.",
"context": {
"eval_label": "eval-wO885tbCgd",
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_01ff263c04717fa80069c18a4bb55081a284e7cd849a1b4ee1",
"object": "response",
"created_at": 1774291531,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774291540,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_01ff263c04717fa80069c18a4c911481a29deeb619eac66868",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_1\",\n \"user_message_raw\": \"Покажи реализации, где хвост выглядит особенно неприятно: сумма не маленькая, возраст хвоста уже заметный, и при этом не видно нормального завершения цепочки.\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"Покажи реализации, где хвост выглядит особенно неприятно\",\n \"normalized_fragment_text\": \"Показать реализации с проблемными хвостами\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"entity_hints\": [\"документ реализации\"],\n \"account_hints\": [],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": false,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": false,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": false\n },\n \"candidate_labels\": [\"anomaly_probe\", \"cross_entity\"],\n \"confidence\": \"high\",\n \"execution_readiness\": \"executable_with_soft_assumptions\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": [\"problem_scan_mode_enabled\"]\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_1",
"schema": {
"$id": "normalized_query_v2_0_1",
"title": "Normalized Query V2.0.1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_1"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1817,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 410,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2227
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Покажи реализации, где хвост выглядит особенно неприятно: сумма не маленькая, возраст хвоста уже заметный, и при этом не видно нормального завершения цепочки.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "Покажи реализации, где хвост выглядит особенно неприятно",
"normalized_fragment_text": "Показать реализации с проблемными хвостами",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"документ реализации"
],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe",
"cross_entity"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
]
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 1817,
"output_tokens": 410,
"total_tokens": 2227
},
"latency_ms": 9271,
"eval_label": "eval-wO885tbCgd",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,514 @@
{
"trace_id": "1rPOulMwiTUNhk",
"timestamp": "2026-03-23T18:56:38.468Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"case_id": "BQ-004",
"user_question_raw": "Собери список самых неприятных кейсов по 90/62 на конец месяца: чтобы было видно сумму, возраст хвоста, признаки кривой связки и вероятность, что это не просто неоплата, а проблема учёта.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-004",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_1.\n\nCore behavior (v2.0.1):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution readiness:\n - executable\n - executable_with_soft_assumptions\n - needs_clarification\n5. Clarification must be rare and justified.\n\nReadiness policy:\n- If fragment is in-scope, maps to recognizable accounting area, and route can be chosen -> do NOT set needs_clarification.\n- Use executable_with_soft_assumptions when request is operationally understandable but details are implicit.\n- Use needs_clarification only when missing information blocks reliable routing/execution.\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_1\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, cross_entity/anomaly flags, execution_readiness=executable_with_soft_assumptions, soft_assumption_used includes problem_scan_mode_enabled.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, rule/anomaly scan, execution_readiness=executable_with_soft_assumptions; no clarification required.\n\nQ: Чекни, что у нас не так.\nA: unclear fragment, execution_readiness=needs_clarification, clarification_reason explains missing accounting area/object.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, business_scope=generic_accounting, execution_readiness=needs_clarification or out-of-scope handling.",
"userQuestion": "Собери список самых неприятных кейсов по 90/62 на конец месяца: чтобы было видно сумму, возраст хвоста, признаки кривой связки и вероятность, что это не просто неоплата, а проблема учёта.",
"context": {
"eval_label": "eval-baY1nPi1rI",
"case_id": "BQ-004",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_096ee1500d8e5c3c0069c18cdfdbfc819e805ceb01ea81f90c",
"object": "response",
"created_at": 1774292191,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774292198,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_096ee1500d8e5c3c0069c18ce03b50819e8f134f8cc6f43c0e",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_1\",\n \"user_message_raw\": \"Собери список самых неприятных кейсов по 90/62 на конец месяца: чтобы было видно сумму, возраст хвоста, признаки кривой связки и вероятность, что это не просто неоплата, а проблема учёта.\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"Собери список самых неприятных кейсов по 90/62 на конец месяца\",\n \"normalized_fragment_text\": \"Собрать список неприятных кейсов по счетам 90 и 62 на конец месяца\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"entity_hints\": [\"счет 90\", \"счет 62\"],\n \"account_hints\": [\"90\", \"62\"],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"explicit\",\n \"value\": \"конец месяца\",\n \"confidence\": \"high\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": true,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": true\n ,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": true\n },\n \"candidate_labels\": [\"cross_entity\", \"anomaly_probe\", \"heavy_analytical\"],\n \"confidence\": \"high\",\n \"execution_readiness\": \"executable\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": []\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_1",
"schema": {
"$id": "normalized_query_v2_0_1",
"title": "Normalized Query V2.0.1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_1"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1829,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 448,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2277
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Собери список самых неприятных кейсов по 90/62 на конец месяца: чтобы было видно сумму, возраст хвоста, признаки кривой связки и вероятность, что это не просто неоплата, а проблема учёта.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "Собери список самых неприятных кейсов по 90/62 на конец месяца",
"normalized_fragment_text": "Собрать список неприятных кейсов по счетам 90 и 62 на конец месяца",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"счет 90",
"счет 62"
],
"account_hints": [
"90",
"62"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "конец месяца",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"cross_entity",
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
]
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity",
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 1829,
"output_tokens": 448,
"total_tokens": 2277
},
"latency_ms": 7013,
"eval_label": "eval-baY1nPi1rI",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,89 @@
{
"trace_id": "1tHZ3NxeoZsV-i",
"timestamp": "2026-03-23T16:22:37.723Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"case_id": "V1121-B1-01",
"user_question_raw": "По каким поставщикам у нас на конец месяца остались хвосты, которые уже не похожи на обычную задержку документов, а выглядят как реальная проблема в цепочке?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "hybrid_store_plus_live",
"case_id": "V1121-B1-01",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"temperature": 0,
"promptVersion": "normalizer_v1_1_2_1",
"userQuestion": "По каким поставщикам у нас на конец месяца остались хвосты, которые уже не похожи на обычную задержку документов, а выглядят как реальная проблема в цепочке?",
"context": {
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-qfxRc9_xyJ",
"case_id": "V1121-B1-01",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": true
},
"raw_model_response": {
"mode": "mock"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "По каким поставщикам у нас на конец месяца остались хвосты, которые уже не похожи на обычную задержку документов, а выглядят как реальная проблема в цепочке?",
"normalized_question": "По каким поставщикам у нас на конец месяца остались хвосты, которые уже не похожи на обычную задержку документов, а выглядят как реальная проблема в цепочке?",
"intent_class": "cross_entity",
"business_problem_type": "normalization_playground",
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [],
"documents_mentioned": [
"документ"
],
"registers_mentioned": [],
"period_scope": {
"type": "inferred",
"value": "2020-06",
"confidence": "medium"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": true,
"needs_evidence": true
},
"expected_output_shape": "reconciliation_report",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "hybrid_store_plus_live",
"confidence": "medium",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 45,
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-qfxRc9_xyJ",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,142 @@
{
"trace_id": "1xoGomlQ91PAiR",
"timestamp": "2026-03-25T20:07:35.899Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС и рискованные записи по документам.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС и рискованные записи по документам.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС и рискованные записи по документам.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС и рискованные записи по документам.",
"normalized_fragment_text": "Проверь НДС и рискованные записи по документам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,138 @@
{
"trace_id": "1ybIJaoDchEPbO",
"timestamp": "2026-03-25T19:32:11.100Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС.",
"normalized_fragment_text": "Проверь НДС.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "1yeLeAYlD_ItRm",
"timestamp": "2026-03-25T20:40:30.496Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"normalized_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,131 @@
{
"trace_id": "2-FKPp0DNcmoVO",
"timestamp": "2026-03-25T20:07:36.314Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"normalized_fragment_text": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"60",
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,137 @@
{
"trace_id": "2059nWtG4SPVV6",
"timestamp": "2026-03-25T20:07:35.999Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"normalized_fragment_text": "Разложи цепочку по банку: где выписка, документ и проводка живут отдельно и повторяется паттерн.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"банк"
],
"account_hints": [],
"document_hints": [
"выписк",
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,209 @@
{
"trace_id": "23kKQubRRKvtYc",
"timestamp": "2026-03-25T20:49:23.014Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи цепочку документов по контрагентам.\nФокус текущего разбора: Проверь НДС.",
"context": {
"period_hint": null,
"business_context": "followup_state_binding_v1; focus_subject:Проверь НДС.",
"expected_route": "store_feature_risk",
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи цепочку документов по контрагентам.\nФокус текущего разбора: Проверь НДС.",
"context": {
"expected_route": "store_feature_risk",
"business_context": "followup_state_binding_v1; focus_subject:Проверь НДС."
},
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи цепочку документов по контрагентам.\nФокус текущего разбора: Проверь НДС.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": true,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи цепочку документов по контрагентам.",
"normalized_fragment_text": "Разложи цепочку документов по контрагентам.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"контрагент"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity"
],
"confidence": "medium",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
},
{
"fragment_id": "F2",
"raw_fragment_text": "Фокус текущего разбора: Проверь НДС.",
"normalized_fragment_text": "Фокус текущего разбора: Проверь НДС.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 2,
"in_scope_fragments": 2,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": true
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
},
{
"fragment_id": "F2",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled",
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Rule-control check without causal decomposition."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"expected_route": "store_feature_risk",
"request_count_for_case": 0
}
@@ -0,0 +1,116 @@
{
"trace_id": "25WNgpcpV0hYCw",
"timestamp": "2026-03-23T17:37:46.501Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"user_question_raw": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v1_1_2_1",
"userQuestion": "По каким поставщикам не бьются взаиморасчеты по 60 счету?"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v1"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"normalized_question": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"intent_class": "cross_entity",
"business_problem_type": "normalization_playground",
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [
"60"
],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"expected_output_shape": "reconciliation_report",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [
{
"field": "period_scope",
"reason": "period is not explicitly provided",
"severity": "medium"
}
],
"confidence": {
"overall": "low",
"intent_class": "medium",
"route_hint": "low"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "legacy_v1",
"intent_class": "cross_entity",
"route_hint": "hybrid_store_plus_live",
"confidence": "low",
"decision_flags": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"entities": {
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [
"60"
],
"documents_mentioned": [],
"registers_mentioned": []
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 29,
"request_count_for_case": 0
}
@@ -0,0 +1,117 @@
{
"trace_id": "26n1DXNueFLwji",
"timestamp": "2026-03-25T18:26:22.554Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"user_question_raw": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v1_1_2_1",
"userQuestion": "По каким поставщикам не бьются взаиморасчеты по 60 счету?"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v1"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"normalized_question": "По каким поставщикам не бьются взаиморасчеты по 60 счету?",
"intent_class": "cross_entity",
"business_problem_type": "normalization_playground",
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [
"60"
],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"expected_output_shape": "reconciliation_report",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [
{
"field": "period_scope",
"reason": "period is not explicitly provided",
"severity": "medium"
}
],
"confidence": {
"overall": "low",
"intent_class": "medium",
"route_hint": "low"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "legacy_v1",
"intent_class": "cross_entity",
"route_hint": "hybrid_store_plus_live",
"confidence": "low",
"decision_flags": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": true
},
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"entities": {
"domain_entities": [
"контрагент",
"документ",
"проводка"
],
"accounts_mentioned": [
"60"
],
"documents_mentioned": [],
"registers_mentioned": []
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 31,
"request_count_for_case": 0
}
@@ -0,0 +1,131 @@
{
"trace_id": "28klxYKqRFTfTs",
"timestamp": "2026-03-25T20:07:24.777Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"normalized_fragment_text": "Prover schet 60 za 2020-06, gde taili postavshikov i kakie dokumenty ne zakryvayut oplaty.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"60",
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,142 @@
{
"trace_id": "28uDqAYYF6ZNGd",
"timestamp": "2026-03-25T20:41:15.455Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь счет 51 за 2020-06: где закрытие выполнено неверным типом документа и почему это критично для сверки?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь счет 51 за 2020-06: где закрытие выполнено неверным типом документа и почему это критично для сверки?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь счет 51 за 2020-06: где закрытие выполнено неверным типом документа и почему это критично для сверки?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь счет 51 за 2020-06: где закрытие выполнено неверным типом документа и почему это критично для сверки?",
"normalized_fragment_text": "Проверь счет 51 за 2020-06: где закрытие выполнено неверным типом документа и почему это критично для сверки?",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"51"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity",
"rule_based_account_control"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity",
"rule_based_account_control"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 8,
"request_count_for_case": 0
}
@@ -0,0 +1,141 @@
{
"trace_id": "29wu_4ZadhYoCZ",
"timestamp": "2026-03-25T20:07:36.231Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"normalized_fragment_text": "Сузь до периода 2020-06 и счета 60, покажи только случаи с максимальным риском закрытия периода.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [
"06",
"60"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,191 @@
{
"trace_id": "2AlgRlnvVcIWVD",
"timestamp": "2026-03-25T18:05:43.712Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Dobav proverku po periodu 2020-06.\nФокус текущего разбора: Sdelai proverku po postavshchikam.",
"context": {
"period_hint": null,
"business_context": "followup_state_binding_v1; focus_subject:Sdelai proverku po postavshchikam.",
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Dobav proverku po periodu 2020-06.\nФокус текущего разбора: Sdelai proverku po postavshchikam.",
"context": {
"business_context": "followup_state_binding_v1; focus_subject:Sdelai proverku po postavshchikam."
},
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Dobav proverku po periodu 2020-06.\nФокус текущего разбора: Sdelai proverku po postavshchikam.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": true,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Dobav proverku po periodu 2020-06.",
"normalized_fragment_text": "Dobav proverku po periodu 2020-06.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
},
{
"fragment_id": "F2",
"raw_fragment_text": "Фокус текущего разбора: Sdelai proverku po postavshchikam.",
"normalized_fragment_text": "Фокус текущего разбора: Sdelai proverku po postavshchikam.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 2,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": true
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
},
{
"fragment_id": "F2",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,132 @@
{
"trace_id": "2E-aeau6g5EmA9",
"timestamp": "2026-03-23T18:38:44.796Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"case_id": "BQ-002",
"user_question_raw": "Как вообще по ФСБУ",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_1",
"useMock": true,
"userQuestion": "Как вообще по ФСБУ",
"context": {
"eval_label": "eval-7MQmPgo3_O",
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_1"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Как вообще по ФСБУ",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Как вообще по ФСБУ",
"normalized_fragment_text": "Как вообще по ФСБУ",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "fragment_out_of_scope",
"soft_assumption_used": []
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 1,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "fragment_out_of_scope",
"soft_assumption_used": [],
"route": "no_route",
"reason": "Fragment requires clarification before reliable execution."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"eval_label": "eval-7MQmPgo3_O",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,398 @@
{
"trace_id": "2EPBctOTQBi61R",
"timestamp": "2026-03-23T16:27:00.889Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2_1",
"schema_version": "v1",
"case_id": "V1121-B1-04",
"user_question_raw": "Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "hybrid_store_plus_live",
"case_id": "V1121-B1-04",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1_2_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You only perform normalization into JSON schema `normalized_query_v1`.\nDo not provide a final accounting answer. Return classification and routing signals only.\n\nTaxonomy intent_class:\n- cross_entity: use when the question asks to connect documents/payments/postings/contracts/registers/evidence chains across entities.\n- drilldown_explain: use for one concrete object (document number, ref, exact posting line, exact operation card).\n- rule_based_account_control: use for account-rule checks without multi-entity chain analysis.\n- anomaly_probe: use for suspicious pattern/risk-zone detection without mandatory company-wide batch analytics.\n- heavy_analytical: use for overview, ranking, concentration analysis, summary, prioritized analytical review.\n- period_close_risk: use when the core meaning is close-process failure risk (pre-close destabilization, last-day close failure).\n- ambiguous_human_query: fallback only when question truly cannot be mapped to a concrete class.\n- simple_factual: basic factual request without analytical depth.\n\nRoute_hint policy:\n- live_mcp_drilldown: exact object trace with needs_runtime_truth=true.\n- hybrid_store_plus_live: cross-entity causal chain with evidence.\n- batch_refresh_then_store: heavy analytical ranking/overview at company or broad period scale.\n- store_feature_risk: anomaly/risk/control without mandatory heavy batch aggregation.\n- store_canonical: simple factual request.\n\nRequires policy:\n- needs_cross_entity_join=true only for multi-entity joins.\n- needs_causal_chain=true only for explicit \"why/prove/chain breakdown\" semantics.\n- needs_exact_object_trace=true for concrete object id/number/ref/line.\n- needs_period_cut=true when period slice is required.\n- needs_evidence=true when documentary evidence is requested.\n\nBoundary rule: period_close_risk vs heavy_analytical (v1.1.2)\nIf a question is explicitly about period close risk, pre-close danger, last-day closing failure, reporting deadline risk, or threats that can break the close process itself, use `period_close_risk` as the primary intent_class.\n\nHowever, if the main purpose of the question is:\n- ranking,\n- top issues,\n- overview,\n- concentration of errors,\n- summary,\n- prioritized review list,\n- company-wide analytical review,\n\nthen the primary intent_class should remain `heavy_analytical`, even if the question is phrased in the context of month-end close or reporting preparation.\n\n`heavy_analytical` has priority over `period_close_risk` when the question asks for:\n- ranking,\n- top-N,\n- overview,\n- summary,\n- company-wide picture,\n- prioritized analytical review,\neven if the wording mentions closing period, reporting, or pre-close context.\n\nUse `period_close_risk` only when the core of the question is the risk of failing or destabilizing the close process itself.\n\nExact drilldown guard:\nIf the question is about one specific document/operation/ref and asks to show a related posting/source, keep:\n- needs_exact_object_trace=true\n- needs_runtime_truth=true\n- needs_cross_entity_join=false\nunless the user explicitly asks to analyze multiple entities/cases.\n\nAnomaly route guard:\nIf the question asks for suspicious zones/risk cases without ranking and without company-wide aggregation, keep route_hint=`store_feature_risk`.\n\nConfidence guard:\nIf a question is plausibly on the boundary between `heavy_analytical` and `period_close_risk`, do not assign `confidence.overall = high`.\nUse `medium` unless wording strongly and unambiguously centers on close-process failure risk rather than analytical overview.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\n# keep period_close_risk anchor\n\nQ: Перед закрытием периода что у нас может взорваться в последний день?\nExpected:\n{\n \"intent_class\": \"period_close_risk\",\n \"requires\": {\n \"needs_period_cut\": true,\n \"needs_ranking\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где по июню выглядит подозрительно, просто дай зоны риска без детального разбора.\nExpected:\n{\n \"intent_class\": \"anomaly_probe\",\n \"requires\": {\n \"needs_anomaly_summary\": true,\n \"needs_period_cut\": true,\n \"needs_ranking\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"store_feature_risk\"\n}\n\n# v1.1.2 boundary balancing additions (exactly 2 new heavy counterexamples)\n\nQ: Сделай рейтинг самых рисковых хвостов перед закрытием периода за июнь.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Дай обзорный риск-срез перед сдачей отчетности: где максимальная концентрация ошибок.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": true,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?",
"context": {
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-h3k8TyTFuu",
"case_id": "V1121-B1-04",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0b159ac1de370bf20069c169cfaac881a095db9d7e6368bbc7",
"object": "response",
"created_at": 1774283215,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774283220,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0b159ac1de370bf20069c169d048ac81a085ba4830d06ccb6a",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?\",\n \"normalized_question\": \"Где есть оплаты, но отсутствуют документы для закрытия взаиморасчетов?\",\n \"intent_class\": \"cross_entity\",\n \"business_problem_type\": \"недостаток документов для закрытия взаиморасчетов\",\n \"domain_entities\": [\"оплата\", \"документ\"],\n \"accounts_mentioned\": [],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"medium\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n ,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": false,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": false,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"medium\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2870,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 298,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 3168
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты?",
"normalized_question": "Где есть оплаты, но отсутствуют документы для закрытия взаиморасчетов?",
"intent_class": "cross_entity",
"business_problem_type": "недостаток документов для закрытия взаиморасчетов",
"domain_entities": [
"оплата",
"документ"
],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "medium"
},
"requires": {
"needs_cross_entity_join": true,
"needs_causal_chain": true,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": false
},
"expected_output_shape": "reconciliation_report",
"route_hint": "hybrid_store_plus_live",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "hybrid_store_plus_live",
"confidence": "medium",
"usage": {
"input_tokens": 2870,
"output_tokens": 298,
"total_tokens": 3168
},
"latency_ms": 5447,
"expected_route": "hybrid_store_plus_live",
"eval_label": "eval-h3k8TyTFuu",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,150 @@
{
"trace_id": "2Iv06y6I4tdoa_",
"timestamp": "2026-03-24T10:18:46.931Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-001",
"user_question_raw": "Проверь хвосты по поставщикам и разложи цепочку",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-001",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"useMock": true,
"userQuestion": "Проверь хвосты по поставщикам и разложи цепочку",
"context": {
"eval_label": "eval-Vgie6SCY1Z",
"case_id": "BQ-001",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь хвосты по поставщикам и разложи цепочку",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь хвосты по поставщикам и разложи цепочку",
"normalized_fragment_text": "Проверь хвосты по поставщикам и разложи цепочку",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 33,
"eval_label": "eval-Vgie6SCY1Z",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,395 @@
{
"trace_id": "2ST0tr4E-gsBFR",
"timestamp": "2026-03-23T14:56:20.839Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1",
"schema_version": "v1",
"case_id": "V11-OT-004",
"user_question_raw": "Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "store_feature_risk",
"case_id": "V11-OT-004",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "Ты выполняешь только задачу нормализации в JSON schema `normalized_query_v1`.\nНельзя давать финальный бухгалтерский ответ, только классификация и признаки маршрутизации.\n\nTaxonomy intent_class (v1.1, усиленная):\n- cross_entity: обязательно, если вопрос просит связать документы/оплаты/проводки/закрывающие/договоры/регистры/цепочку доказательств.\n- drilldown_explain: только для точечного объекта или малого списка объектов (номер документа, ref, строка, конкретная проводка).\n- rule_based_account_control: контроль правил по счетам и учетным параметрам без межсущностной цепочки.\n- anomaly_probe: поиск аномалий и подозрительных паттернов без явной необходимости causal-chain между сущностями.\n- heavy_analytical: общий обзор, рейтинг, приоритизация на уровне периода/компании.\n- ambiguous_human_query: использовать только как последний fallback, когда вопрос реально не раскладывается в конкретный класс.\n- simple_factual: простая справка без сложной аналитики и без причинно-следственной цепочки.\n- period_close_risk: отдельный риск предзакрытия периода, если это основной смысл запроса.\n\nПриоритеты route и intent:\n1) Если в вопросе одновременно есть документы/оплаты/проводки/закрывающие/договоры/цепочка подтверждений, это causal multi-entity сценарий.\n Обычно это `intent_class=cross_entity` и route не ниже `hybrid_store_plus_live`.\n2) Если вопрос про множество кейсов (\"по каким\", \"где\", \"разложи по\"), это НЕ `needs_exact_object_trace`, пока нет одного точного объекта.\n3) Если присутствуют риск-слова, но также есть document/payment/posting chain, приоритет у causal cross-entity semantics, а не у чистого risk bucket.\n4) Не используй `ambiguous_human_query` как ленивый fallback, если можно уверенно выбрать конкретный intent.\n\nRoute_hint:\n- live_mcp_drilldown: только для точечного object trace (номер/строка/ref) и needs_runtime_truth=true.\n- hybrid_store_plus_live: для cross_entity + causal explain и подтверждаемой цепочки.\n- batch_refresh_then_store: для широких периодных рейтингов/обзоров и тяжелой агрегатной аналитики.\n- store_feature_risk: для risk/control/anomaly без обязательного runtime drilldown.\n- store_canonical: для простых фактов.\n\nRequires:\n- needs_cross_entity_join=true: если надо связывать разные сущности (документы, оплаты, проводки, договоры, регистры).\n- needs_causal_chain=true: если есть \"почему\", \"чем подтверждается\", \"где ошибка в цепочке\", \"разложи цепочку\".\n- needs_exact_object_trace=true: только при точном объекте.\n- needs_period_cut=true: если нужен срез периода.\n- needs_evidence=true: если пользователь просит подтверждение документами/проводками/движениями.\n\nConfidence policy (жестко):\nНе ставь `confidence.overall=high` и `confidence.route_hint=high`, если выполнено хотя бы одно условие:\n- есть ambiguity;\n- есть тонкое различие соседних классов (например cross_entity vs anomaly_probe/rule_based_account_control);\n- вопрос длинный и многослойный;\n- период задан неявно или неуверенно;\n- causal semantics восстановлена частично.",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам на конец июня не сходится 60 счет: разложи по документам, оплатам и закрывающим.\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 10 счету где подозрительные остатки и почему они повисли по цепочке документов?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_anomaly_summary\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: По 97 счету проверь ошибки дат начала/окончания списания, без разложения по документам.\nExpected:\n{\n \"intent_class\": \"rule_based_account_control\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false\n },\n \"expected_output_shape\": \"prioritized_review_list\",\n \"route_hint\": \"store_feature_risk\"\n}\n\nQ: Покажи документ TRX-88 и связанную проводку по 51, нужен точный объект.\nExpected:\n{\n \"intent_class\": \"drilldown_explain\",\n \"requires\": {\n \"needs_exact_object_trace\": true,\n \"needs_runtime_truth\": true,\n \"needs_cross_entity_join\": false\n },\n \"expected_output_shape\": \"evidence_chain\",\n \"route_hint\": \"live_mcp_drilldown\"\n}\n\nQ: Где у нас по июню не собралось и что пошло криво в взаиморасчетах с покупателями?\nExpected:\n{\n \"intent_class\": \"cross_entity\",\n \"requires\": {\n \"needs_cross_entity_join\": true,\n \"needs_causal_chain\": true,\n \"needs_period_cut\": true\n },\n \"expected_output_shape\": \"reconciliation_report\",\n \"route_hint\": \"hybrid_store_plus_live\"\n}\n\nQ: Сделай топ рисков перед закрытием периода по компании в целом.\nExpected:\n{\n \"intent_class\": \"heavy_analytical\",\n \"requires\": {\n \"needs_ranking\": true,\n \"needs_period_cut\": true,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"ranked_list\",\n \"route_hint\": \"batch_refresh_then_store\"\n}\n\nQ: Где у нас пахнет ручной ошибкой по июню, без конкретного документа.\nExpected:\n{\n \"intent_class\": \"ambiguous_human_query\",\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\"\n}",
"userQuestion": "Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.",
"context": {
"expected_route": "store_feature_risk",
"eval_label": "eval-xQU7mHgdgo",
"case_id": "V11-OT-004",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0827e914a55f349e0069c1548f6b148197a3657966567d652e",
"object": "response",
"created_at": 1774277775,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774277780,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0827e914a55f349e0069c1548ff4208197bd3a2104b09e51cf",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v1\",\n \"user_question_raw\": \"Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.\",\n \"normalized_question\": \"Где по июню есть подозрительные зоны риска?\",\n \"intent_class\": \"anomaly_probe\",\n \"business_problem_type\": \"анализ аномалий\",\n \"domain_entities\": [],\n \"accounts_mentioned\": [],\n \"documents_mentioned\": [],\n \"registers_mentioned\": [],\n \"period_scope\": {\n \"type\": \"explicit\",\n \"value\": \"июнь\",\n \"confidence\": \"medium\"\n },\n \"requires\": {\n \"needs_cross_entity_join\": false,\n \"needs_causal_chain\": false,\n \"needs_exact_object_trace\": false,\n \"needs_ranking\": false,\n \"needs_anomaly_summary\": true,\n \"needs_runtime_truth\": false,\n \"needs_period_cut\": true,\n \"needs_evidence\": false\n },\n \"expected_output_shape\": \"anomaly_summary\",\n \"route_hint\": \"batch_refresh_then_store\",\n \"ambiguities\": [],\n \"confidence\": {\n \"overall\": \"medium\",\n \"intent_class\": \"medium\",\n \"route_hint\": \"medium\"\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v1",
"schema": {
"$id": "normalized_query_v1",
"title": "Normalized Query V1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_question_raw",
"normalized_question",
"intent_class",
"business_problem_type",
"domain_entities",
"accounts_mentioned",
"documents_mentioned",
"registers_mentioned",
"period_scope",
"requires",
"expected_output_shape",
"route_hint",
"ambiguities",
"confidence"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v1"
},
"user_question_raw": {
"type": "string",
"minLength": 1
},
"normalized_question": {
"type": "string",
"minLength": 1
},
"intent_class": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
},
"business_problem_type": {
"type": "string",
"minLength": 1
},
"domain_entities": {
"type": "array",
"items": {
"type": "string"
}
},
"accounts_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"documents_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"registers_mentioned": {
"type": "array",
"items": {
"type": "string"
}
},
"period_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"requires": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_cross_entity_join",
"needs_causal_chain",
"needs_exact_object_trace",
"needs_ranking",
"needs_anomaly_summary",
"needs_runtime_truth",
"needs_period_cut",
"needs_evidence"
],
"properties": {
"needs_cross_entity_join": {
"type": "boolean"
},
"needs_causal_chain": {
"type": "boolean"
},
"needs_exact_object_trace": {
"type": "boolean"
},
"needs_ranking": {
"type": "boolean"
},
"needs_anomaly_summary": {
"type": "boolean"
},
"needs_runtime_truth": {
"type": "boolean"
},
"needs_period_cut": {
"type": "boolean"
},
"needs_evidence": {
"type": "boolean"
}
}
},
"expected_output_shape": {
"type": "string",
"enum": [
"ranked_list",
"evidence_chain",
"anomaly_summary",
"point_answer",
"reconciliation_report",
"prioritized_review_list"
]
},
"route_hint": {
"type": "string",
"enum": [
"store_canonical",
"store_feature_risk",
"hybrid_store_plus_live",
"live_mcp_drilldown",
"batch_refresh_then_store"
]
},
"ambiguities": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"reason",
"severity"
],
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
}
}
},
"confidence": {
"type": "object",
"additionalProperties": false,
"required": [
"overall",
"intent_class",
"route_hint"
],
"properties": {
"overall": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"intent_class": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"route_hint": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 2459,
"input_tokens_details": {
"cached_tokens": 2048
},
"output_tokens": 275,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2734
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.",
"normalized_question": "Где по июню есть подозрительные зоны риска?",
"intent_class": "anomaly_probe",
"business_problem_type": "анализ аномалий",
"domain_entities": [],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "explicit",
"value": "июнь",
"confidence": "medium"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": true,
"needs_runtime_truth": false,
"needs_period_cut": true,
"needs_evidence": false
},
"expected_output_shape": "anomaly_summary",
"route_hint": "batch_refresh_then_store",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "batch_refresh_then_store",
"confidence": "medium",
"usage": {
"input_tokens": 2459,
"output_tokens": 275,
"total_tokens": 2734
},
"latency_ms": 6097,
"expected_route": "store_feature_risk",
"eval_label": "eval-xQU7mHgdgo",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,502 @@
{
"trace_id": "2VO4fwiW6_quNT",
"timestamp": "2026-03-23T18:59:06.476Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"case_id": "BQ-020",
"user_question_raw": "Покажи мне не просто аномалии, а аномалии второго порядка: такие места, где отдельная ошибка не страшна, но в сочетании с другим участком уже начинает ломать картину периода.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-020",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_1.\n\nCore behavior (v2.0.1):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution readiness:\n - executable\n - executable_with_soft_assumptions\n - needs_clarification\n5. Clarification must be rare and justified.\n\nReadiness policy:\n- If fragment is in-scope, maps to recognizable accounting area, and route can be chosen -> do NOT set needs_clarification.\n- Use executable_with_soft_assumptions when request is operationally understandable but details are implicit.\n- Use needs_clarification only when missing information blocks reliable routing/execution.\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_1\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, cross_entity/anomaly flags, execution_readiness=executable_with_soft_assumptions, soft_assumption_used includes problem_scan_mode_enabled.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, rule/anomaly scan, execution_readiness=executable_with_soft_assumptions; no clarification required.\n\nQ: Чекни, что у нас не так.\nA: unclear fragment, execution_readiness=needs_clarification, clarification_reason explains missing accounting area/object.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, business_scope=generic_accounting, execution_readiness=needs_clarification or out-of-scope handling.",
"userQuestion": "Покажи мне не просто аномалии, а аномалии второго порядка: такие места, где отдельная ошибка не страшна, но в сочетании с другим участком уже начинает ломать картину периода.",
"context": {
"eval_label": "eval-baY1nPi1rI",
"case_id": "BQ-020",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0ec8971c5797b2ab0069c18d74512c81a099734253761ea364",
"object": "response",
"created_at": 1774292340,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774292346,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0ec8971c5797b2ab0069c18d74a44081a08e8ed4319cdeb2f1",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_1\",\n \"user_message_raw\": \"Покажи мне не просто аномалии, а аномалии второго порядка: такие места, где отдельная ошибка не страшна, но в сочетании с другим участком уже начинает ломать картину периода.\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"аномалии второго порядка\",\n \"normalized_fragment_text\": \"аномалии второго порядка\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"generic_accounting\",\n \"entity_hints\": [],\n \"account_hints\": [],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"missing\",\n \"value\": null,\n \"confidence\": \"low\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": true,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": true,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": true\n },\n \"candidate_labels\": [\n \"anomaly_probe\",\n \"cross_entity\"\n ],\n \"confidence\": \"high\",\n \"execution_readiness\": \"executable\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": []\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_1",
"schema": {
"$id": "normalized_query_v2_0_1",
"title": "Normalized Query V2.0.1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_1"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1824,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 392,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2216
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Покажи мне не просто аномалии, а аномалии второго порядка: такие места, где отдельная ошибка не страшна, но в сочетании с другим участком уже начинает ломать картину периода.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "аномалии второго порядка",
"normalized_fragment_text": "аномалии второго порядка",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"anomaly_probe",
"cross_entity"
],
"confidence": "high",
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": []
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "critical_period_missing"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"candidate_labels": [
"anomaly_probe",
"cross_entity"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route": "no_route",
"reason": "Fragment requires clarification before reliable execution."
}
],
"fallback": {
"type": "clarification",
"message": "Могу проверить это в контуре компании, но нужно уточнить период, документ, счет или участок учета."
}
},
"route_hint": null,
"confidence": "high",
"usage": {
"input_tokens": 1824,
"output_tokens": 392,
"total_tokens": 2216
},
"latency_ms": 6578,
"eval_label": "eval-baY1nPi1rI",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,128 @@
{
"trace_id": "2W9B1sn-_93OgR",
"timestamp": "2026-03-25T20:41:15.206Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"normalized_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "inferred",
"value": "период",
"confidence": "medium"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,88 @@
{
"trace_id": "2Z_F539WXmzOKY",
"timestamp": "2026-03-23T14:35:48.167Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1",
"schema_version": "v1",
"case_id": "V11-HA-003",
"user_question_raw": "Собери топ-10 риск-зон учета по июню и приоритизируй, куда лезть сначала.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "batch_refresh_then_store",
"case_id": "V11-HA-003",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1",
"userQuestion": "Собери топ-10 риск-зон учета по июню и приоритизируй, куда лезть сначала.",
"context": {
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-xk1NE5ndVV",
"case_id": "V11-HA-003",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": true
},
"raw_model_response": {
"mode": "mock"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Собери топ-10 риск-зон учета по июню и приоритизируй, куда лезть сначала.",
"normalized_question": "Собери топ-10 риск-зон учета по июню и приоритизируй, куда лезть сначала.",
"intent_class": "heavy_analytical",
"business_problem_type": "normalization_playground",
"domain_entities": [
"счет"
],
"accounts_mentioned": [
"10"
],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "inferred",
"value": "2020-06",
"confidence": "medium"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": false,
"needs_ranking": true,
"needs_anomaly_summary": true,
"needs_runtime_truth": false,
"needs_period_cut": true,
"needs_evidence": false
},
"expected_output_shape": "ranked_list",
"route_hint": "batch_refresh_then_store",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "batch_refresh_then_store",
"confidence": "medium",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-xk1NE5ndVV",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,143 @@
{
"trace_id": "2ZiogxJK-sjfsa",
"timestamp": "2026-03-25T20:07:36.051Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"normalized_fragment_text": "Разложи хвосты по поставщикам: где разрыв между оплатой и документами выглядит системным.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,130 @@
{
"trace_id": "2bFTeRWWb1zIjL",
"timestamp": "2026-03-25T18:04:12.704Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "И по периоду 2020-06.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "И по периоду 2020-06.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "И по периоду 2020-06.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "И по периоду 2020-06.",
"normalized_fragment_text": "И по периоду 2020-06.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 10,
"request_count_for_case": 0
}
@@ -0,0 +1,92 @@
{
"trace_id": "2d9EQnCBaYkcsB",
"timestamp": "2026-03-23T15:49:49.562Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1_2",
"schema_version": "v1",
"case_id": "V11-OT-005",
"user_question_raw": "Че-то все криво на предзакрытии, где самые опасные места?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "batch_refresh_then_store",
"case_id": "V11-OT-005",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1_2",
"userQuestion": "Че-то все криво на предзакрытии, где самые опасные места?",
"context": {
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-Z9wlxFh4Wa",
"case_id": "V11-OT-005",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": true
},
"raw_model_response": {
"mode": "mock"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Че-то все криво на предзакрытии, где самые опасные места?",
"normalized_question": "Че-то все криво на предзакрытии, где самые опасные места?",
"intent_class": "period_close_risk",
"business_problem_type": "normalization_playground",
"domain_entities": [
"счет"
],
"accounts_mentioned": [],
"documents_mentioned": [],
"registers_mentioned": [],
"period_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": false,
"needs_runtime_truth": false,
"needs_period_cut": false,
"needs_evidence": false
},
"expected_output_shape": "prioritized_review_list",
"route_hint": "batch_refresh_then_store",
"ambiguities": [
{
"field": "period_scope",
"reason": "period is not explicitly provided",
"severity": "medium"
}
],
"confidence": {
"overall": "low",
"intent_class": "medium",
"route_hint": "low"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "batch_refresh_then_store",
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"expected_route": "batch_refresh_then_store",
"eval_label": "eval-Z9wlxFh4Wa",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,142 @@
{
"trace_id": "2hNrKp0r64DT2p",
"timestamp": "2026-03-25T20:09:33.646Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"normalized_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [
"регистр"
],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"confidence": "medium",
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "critical_period_missing"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "clarification",
"message": "Могу проверить это в контуре компании, но нужно уточнить период, документ, счет или участок учета."
}
},
"route_hint": null,
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,128 @@
{
"trace_id": "2hfLq6DLhjx8IO",
"timestamp": "2026-03-25T20:40:30.225Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"normalized_fragment_text": "Что в текущих аномалиях сильнее всего повлияет на закрытие периода, если ничего не исправлять?",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "inferred",
"value": "период",
"confidence": "medium"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,141 @@
{
"trace_id": "2kmVGM4EI-dhtZ",
"timestamp": "2026-03-25T20:09:39.933Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"normalized_fragment_text": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [
"97",
"06"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}
@@ -0,0 +1,128 @@
{
"trace_id": "2llIeoVOnXaDqS",
"timestamp": "2026-03-24T08:34:12.264Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"user_question_raw": "Покажи, что висит по 97 и что выглядит подозрительно.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"useMock": true,
"promptVersion": "normalizer_v2_0_1",
"userQuestion": "Покажи, что висит по 97 и что выглядит подозрительно."
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_1"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Покажи, что висит по 97 и что выглядит подозрительно.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи, что висит по 97 и что выглядит подозрительно.",
"normalized_fragment_text": "Покажи, что висит по 97 и что выглядит подозрительно.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": []
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 16,
"request_count_for_case": 0
}
@@ -0,0 +1,138 @@
{
"trace_id": "2no-OlW-iY_hxo",
"timestamp": "2026-03-25T20:49:22.933Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Что не так по документ #123?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Что не так по документ #123?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Что не так по документ #123?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Что не так по документ #123?",
"normalized_fragment_text": "Что не так по документ #123?",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": true,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"drilldown_explain"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"drilldown_explain"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": true,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"company_scope_defaulted"
],
"route_status": "routed",
"no_route_reason": null,
"route": "live_mcp_drilldown",
"reason": "Exact object trace requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "live_mcp_drilldown",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 20,
"request_count_for_case": 0
}
@@ -0,0 +1,140 @@
{
"trace_id": "2r4NruKL2gHvFU",
"timestamp": "2026-03-25T20:41:08.973Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"normalized_fragment_text": "Найди аномалии по счету 97 за 2020-06: где расходы будущих периодов зависли или списание идет не по ожидаемой последовательности.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,88 @@
{
"trace_id": "2riratZ9G8TMN_",
"timestamp": "2026-03-23T14:35:48.174Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v1_1",
"schema_version": "v1",
"case_id": "V11-OT-004",
"user_question_raw": "Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": "store_feature_risk",
"case_id": "V11-OT-004",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v1_1",
"userQuestion": "Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.",
"context": {
"expected_route": "store_feature_risk",
"eval_label": "eval-xk1NE5ndVV",
"case_id": "V11-OT-004",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": true
},
"raw_model_response": {
"mode": "mock"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v1",
"user_question_raw": "Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.",
"normalized_question": "Где по июню выглядит подозрительно, но без точечного документа, просто дай зоны риска.",
"intent_class": "rule_based_account_control",
"business_problem_type": "normalization_playground",
"domain_entities": [
"счет"
],
"accounts_mentioned": [],
"documents_mentioned": [
"документ"
],
"registers_mentioned": [],
"period_scope": {
"type": "inferred",
"value": "2020-06",
"confidence": "medium"
},
"requires": {
"needs_cross_entity_join": false,
"needs_causal_chain": false,
"needs_exact_object_trace": false,
"needs_ranking": false,
"needs_anomaly_summary": true,
"needs_runtime_truth": false,
"needs_period_cut": true,
"needs_evidence": false
},
"expected_output_shape": "point_answer",
"route_hint": "store_feature_risk",
"ambiguities": [],
"confidence": {
"overall": "medium",
"intent_class": "medium",
"route_hint": "medium"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint": "store_feature_risk",
"confidence": "medium",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"expected_route": "store_feature_risk",
"eval_label": "eval-xk1NE5ndVV",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,143 @@
{
"trace_id": "2rtfhS-tAfmP9d",
"timestamp": "2026-03-25T20:49:22.905Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов.",
"normalized_fragment_text": "Покажи хвосты поставщиков по счету 60 за 2020-06 и выдели, где проблема уже похожа на разрыв цепочки документов.",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос",
"поставщик"
],
"account_hints": [
"60"
],
"document_hints": [
"документ"
],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "2020-06",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"anomaly_probe"
],
"confidence": "medium",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route_status": "routed",
"no_route_reason": null,
"route": "store_feature_risk",
"reason": "Anomaly scan without heavy ranking or causal chain."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_feature_risk",
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"request_count_for_case": 0
}
@@ -0,0 +1,130 @@
{
"trace_id": "304m5nFIfpExUc",
"timestamp": "2026-03-24T11:52:42.607Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Prover schet 97 i podsveti riskovye zony.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Prover schet 97 i podsveti riskovye zony.",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Prover schet 97 i podsveti riskovye zony.",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Prover schet 97 i podsveti riskovye zony.",
"normalized_fragment_text": "Prover schet 97 i podsveti riskovye zony.",
"domain_relevance": "unclear",
"business_scope": "unclear",
"entity_hints": [],
"account_hints": [
"97"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "unclear",
"business_scope": "unclear",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "domain_or_scope_unclear",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 35,
"request_count_for_case": 0
}
@@ -0,0 +1,532 @@
{
"trace_id": "33mEeTPjTIryFa",
"timestamp": "2026-03-24T08:39:32.757Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-021",
"user_question_raw": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-021",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_2",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что у нас не так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.",
"userQuestion": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"context": {
"eval_label": "eval-uQiZ1L_ga6",
"case_id": "BQ-021",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_00782ae3a2d116240069c24dbc078c8196905df84ffbaa4ad0",
"object": "response",
"created_at": 1774341564,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774341572,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_00782ae3a2d116240069c24dbca06c8196b0e790dacfe06d40",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_2\",\n \"user_message_raw\": \"Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.\",\n \"normalized_fragment_text\": \"Анализ текущих рисков на закрытии периода в июне.\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"generic_accounting\",\n \"entity_hints\": [],\n \"account_hints\": [],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"explicit\",\n \"value\": \"июнь\",\n \"confidence\": \"high\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": false,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": false,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": false,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": true\n },\n \"candidate_labels\": [\n \"heavy_analytical\",\n \"cross_entity\",\n \"period_close_risk\"\n ],\n \"confidence\": \"high\",\n \"execution_readiness\": \"executable\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": [],\n \"route_status\": \"routed\",\n \"no_route_reason\": null\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_2",
"schema": {
"$id": "normalized_query_v2_0_2",
"title": "Normalized Query V2.0.2",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_2"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used",
"route_status",
"no_route_reason"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification",
"no_route"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
},
"route_status": {
"type": "string",
"enum": [
"routed",
"no_route"
]
},
"no_route_reason": {
"type": [
"string",
"null"
],
"enum": [
"out_of_scope",
"insufficient_specificity",
"missing_mapping",
"unsupported_fragment_type",
null
]
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1938,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 448,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2386
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"normalized_fragment_text": "Анализ текущих рисков на закрытии периода в июне.",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "июнь",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"heavy_analytical",
"cross_entity",
"period_close_risk"
],
"confidence": "high",
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"candidate_labels": [
"heavy_analytical",
"cross_entity",
"period_close_risk"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable",
"clarification_reason": null,
"soft_assumption_used": [],
"route_status": "routed",
"no_route_reason": null,
"route": "store_canonical",
"reason": "Routed fragment without deep analytical or causal signals."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "store_canonical",
"confidence": "high",
"usage": {
"input_tokens": 1938,
"output_tokens": 448,
"total_tokens": 2386
},
"latency_ms": 9487,
"eval_label": "eval-uQiZ1L_ga6",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,137 @@
{
"trace_id": "36NoS_DQb2dEU8",
"timestamp": "2026-03-25T18:03:32.256Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"case_id": "BQ-002",
"user_question_raw": "Как вообще по ФСБУ",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-002",
"eval_mode": "single-pass-strict",
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"useMock": true,
"userQuestion": "Как вообще по ФСБУ",
"context": {
"eval_label": "eval-qWEMr5wpHb",
"case_id": "BQ-002",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict"
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Как вообще по ФСБУ",
"message_in_scope": false,
"scope_confidence": "low",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Как вообще по ФСБУ",
"normalized_fragment_text": "Как вообще по ФСБУ",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"candidate_labels": [],
"confidence": "low",
"execution_readiness": "no_route",
"clarification_reason": "fragment_out_of_scope",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "out_of_scope"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": false,
"scope_confidence": "low",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 0,
"out_of_scope_fragments": 1,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "out_of_scope",
"business_scope": "generic_accounting",
"candidate_labels": [],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": false,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": false
},
"execution_readiness": "no_route",
"clarification_reason": "fragment_out_of_scope",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "out_of_scope",
"route": "no_route",
"reason": "Fragment is out-of-scope for company-specific accounting contour."
}
],
"fallback": {
"type": "out_of_scope",
"message": "Я работаю только с данными и бухгалтерским контуром текущей компании. Запрос вне доступной предметной области."
}
},
"route_hint": null,
"confidence": "low",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 1,
"eval_label": "eval-qWEMr5wpHb",
"eval_mode": "single-pass-strict",
"request_count_for_case": 0
}
@@ -0,0 +1,508 @@
{
"trace_id": "37Yw34xBrAk8B4",
"timestamp": "2026-03-23T18:59:13.525Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"case_id": "BQ-021",
"user_question_raw": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-021",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_1.\n\nCore behavior (v2.0.1):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution readiness:\n - executable\n - executable_with_soft_assumptions\n - needs_clarification\n5. Clarification must be rare and justified.\n\nReadiness policy:\n- If fragment is in-scope, maps to recognizable accounting area, and route can be chosen -> do NOT set needs_clarification.\n- Use executable_with_soft_assumptions when request is operationally understandable but details are implicit.\n- Use needs_clarification only when missing information blocks reliable routing/execution.\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_1\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, cross_entity/anomaly flags, execution_readiness=executable_with_soft_assumptions, soft_assumption_used includes problem_scan_mode_enabled.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, rule/anomaly scan, execution_readiness=executable_with_soft_assumptions; no clarification required.\n\nQ: Чекни, что у нас не так.\nA: unclear fragment, execution_readiness=needs_clarification, clarification_reason explains missing accounting area/object.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, business_scope=generic_accounting, execution_readiness=needs_clarification or out-of-scope handling.",
"userQuestion": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"context": {
"eval_label": "eval-baY1nPi1rI",
"case_id": "BQ-021",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0da2bf7958a2e5c10069c18d7ae4ac819f9c3304761a097361",
"object": "response",
"created_at": 1774292346,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774292353,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0da2bf7958a2e5c10069c18d7b3b10819f9290660fdd6039e9",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_1\",\n \"user_message_raw\": \"Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.\",\n \"normalized_fragment_text\": \"Анализ текущих рисков на закрытии периода в июне.\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"generic_accounting\",\n \"entity_hints\": [],\n \"account_hints\": [],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"explicit\",\n \"value\": \"июнь\",\n \"confidence\": \"high\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": false,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": true,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": true\n },\n \"candidate_labels\": [\n \"cross_entity\",\n \"anomaly_probe\",\n \"period_close_risk\"\n ],\n \"confidence\": \"high\",\n \"execution_readiness\": \"executable\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": []\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_1",
"schema": {
"$id": "normalized_query_v2_0_1",
"title": "Normalized Query V2.0.1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_1"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1814,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 430,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2244
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "Что сейчас в июне выглядит как история, которую бухгалтер отложил бы “на потом”, но именно из-за этого она может стать самой неприятной на закрытии.",
"normalized_fragment_text": "Анализ текущих рисков на закрытии периода в июне.",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"entity_hints": [],
"account_hints": [],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "июнь",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"cross_entity",
"anomaly_probe",
"period_close_risk"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
]
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "generic_accounting",
"candidate_labels": [
"cross_entity",
"anomaly_probe",
"period_close_risk"
],
"decision_flags": {
"has_multi_entity_scope": false,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": true,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route": "batch_refresh_then_store",
"reason": "Ranking/summary semantics require batch analytical route."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "batch_refresh_then_store",
"confidence": "high",
"usage": {
"input_tokens": 1814,
"output_tokens": 430,
"total_tokens": 2244
},
"latency_ms": 7046,
"eval_label": "eval-baY1nPi1rI",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,510 @@
{
"trace_id": "39JMzDVF5alXJM",
"timestamp": "2026-03-23T18:45:31.361Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_1",
"schema_version": "v2_0_1",
"case_id": "BQ-001",
"user_question_raw": "Какие реализации на конец периода выглядят так, будто они зависли и будут портить картину по выручке, если их не проверить заранее?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": "BQ-001",
"eval_mode": "single-pass-strict"
},
"request_payload_redacted": {
"model": "gpt-4o-mini",
"baseUrl": "https://api.openai.com/v1",
"temperature": 0,
"maxOutputTokens": 900,
"promptVersion": "normalizer_v2_0_1",
"systemPrompt": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.",
"developerPrompt": "You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_1.\n\nCore behavior (v2.0.1):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution readiness:\n - executable\n - executable_with_soft_assumptions\n - needs_clarification\n5. Clarification must be rare and justified.\n\nReadiness policy:\n- If fragment is in-scope, maps to recognizable accounting area, and route can be chosen -> do NOT set needs_clarification.\n- Use executable_with_soft_assumptions when request is operationally understandable but details are implicit.\n- Use needs_clarification only when missing information blocks reliable routing/execution.\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_1\"",
"domainPrompt": "Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.",
"fewShotExamples": "Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, cross_entity/anomaly flags, execution_readiness=executable_with_soft_assumptions, soft_assumption_used includes problem_scan_mode_enabled.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, rule/anomaly scan, execution_readiness=executable_with_soft_assumptions; no clarification required.\n\nQ: Чекни, что у нас не так.\nA: unclear fragment, execution_readiness=needs_clarification, clarification_reason explains missing accounting area/object.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, business_scope=generic_accounting, execution_readiness=needs_clarification or out-of-scope handling.",
"userQuestion": "Какие реализации на конец периода выглядят так, будто они зависли и будут портить картину по выручке, если их не проверить заранее?",
"context": {
"eval_label": "eval-wO885tbCgd",
"case_id": "BQ-001",
"eval_mode": "single-pass-strict"
},
"retryPolicy": "single-pass-strict",
"useMock": false
},
"raw_model_response": {
"id": "resp_0e37b66c53fa90290069c18a42235c819786e5634a7c84bfda",
"object": "response",
"created_at": 1774291522,
"status": "completed",
"background": false,
"billing": {
"payer": "developer"
},
"completed_at": 1774291531,
"error": null,
"frequency_penalty": 0,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": 900,
"max_tool_calls": null,
"model": "gpt-4o-mini-2024-07-18",
"output": [
{
"id": "msg_0e37b66c53fa90290069c18a42f5948197bd51fa057a5b8a80",
"type": "message",
"status": "completed",
"content": [
{
"type": "output_text",
"annotations": [],
"logprobs": [],
"text": "{\n \"schema_version\": \"normalized_query_v2_0_1\",\n \"user_message_raw\": \"Какие реализации на конец периода выглядят так, будто они зависли и будут портить картину по выручке, если их не проверить заранее?\",\n \"message_in_scope\": true,\n \"scope_confidence\": \"high\",\n \"contains_multiple_tasks\": false,\n \"fragments\": [\n {\n \"fragment_id\": \"1\",\n \"raw_fragment_text\": \"Какие реализации на конец периода выглядят так, будто они зависли\",\n \"normalized_fragment_text\": \"Реализации на конец периода, которые выглядят зависшими\",\n \"domain_relevance\": \"in_scope\",\n \"business_scope\": \"company_specific_accounting\",\n \"entity_hints\": [\"документ реализации\"],\n \"account_hints\": [\"90\"],\n \"document_hints\": [],\n \"register_hints\": [],\n \"time_scope\": {\n \"type\": \"explicit\",\n \"value\": \"конец периода\",\n \"confidence\": \"high\"\n },\n \"flags\": {\n \"has_multi_entity_scope\": true,\n \"asks_for_chain_explanation\": true,\n \"asks_for_ranking_or_top\": false,\n \"asks_for_period_summary\": false,\n \"asks_for_rule_check\": false,\n \"asks_for_anomaly_scan\": true,\n \"asks_for_exact_object_trace\": false,\n \"asks_for_evidence\": false,\n \"mentions_period_close_context\": true\n },\n \"candidate_labels\": [\"cross_entity\", \"anomaly_probe\"],\n \"confidence\": \"high\",\n \"execution_readiness\": \"executable\",\n \"clarification_reason\": null,\n \"soft_assumption_used\": []\n }\n ],\n \"discarded_fragments\": [],\n \"global_notes\": {\n \"needs_clarification\": false,\n \"clarification_reason\": null\n }\n}"
}
],
"role": "assistant"
}
],
"parallel_tool_calls": true,
"presence_penalty": 0,
"previous_response_id": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"store": true,
"temperature": 0,
"text": {
"format": {
"type": "json_schema",
"description": null,
"name": "normalized_query_v2_0_1",
"schema": {
"$id": "normalized_query_v2_0_1",
"title": "Normalized Query V2.0.1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"user_message_raw",
"message_in_scope",
"scope_confidence",
"contains_multiple_tasks",
"fragments",
"discarded_fragments",
"global_notes"
],
"properties": {
"schema_version": {
"type": "string",
"const": "normalized_query_v2_0_1"
},
"user_message_raw": {
"type": "string",
"minLength": 1
},
"message_in_scope": {
"type": "boolean"
},
"scope_confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"contains_multiple_tasks": {
"type": "boolean"
},
"fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"fragment_id",
"raw_fragment_text",
"normalized_fragment_text",
"domain_relevance",
"business_scope",
"entity_hints",
"account_hints",
"document_hints",
"register_hints",
"time_scope",
"flags",
"candidate_labels",
"confidence",
"execution_readiness",
"clarification_reason",
"soft_assumption_used"
],
"properties": {
"fragment_id": {
"type": "string",
"minLength": 1
},
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"normalized_fragment_text": {
"type": "string",
"minLength": 1
},
"domain_relevance": {
"type": "string",
"enum": [
"in_scope",
"out_of_scope",
"unclear"
]
},
"business_scope": {
"type": "string",
"enum": [
"company_specific_accounting",
"generic_accounting",
"offtopic",
"unclear"
]
},
"entity_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"account_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"document_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"register_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"time_scope": {
"type": "object",
"additionalProperties": false,
"required": [
"type",
"value",
"confidence"
],
"properties": {
"type": {
"type": "string",
"enum": [
"explicit",
"inferred",
"missing"
]
},
"value": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
}
},
"flags": {
"type": "object",
"additionalProperties": false,
"required": [
"has_multi_entity_scope",
"asks_for_chain_explanation",
"asks_for_ranking_or_top",
"asks_for_period_summary",
"asks_for_rule_check",
"asks_for_anomaly_scan",
"asks_for_exact_object_trace",
"asks_for_evidence",
"mentions_period_close_context"
],
"properties": {
"has_multi_entity_scope": {
"type": "boolean"
},
"asks_for_chain_explanation": {
"type": "boolean"
},
"asks_for_ranking_or_top": {
"type": "boolean"
},
"asks_for_period_summary": {
"type": "boolean"
},
"asks_for_rule_check": {
"type": "boolean"
},
"asks_for_anomaly_scan": {
"type": "boolean"
},
"asks_for_exact_object_trace": {
"type": "boolean"
},
"asks_for_evidence": {
"type": "boolean"
},
"mentions_period_close_context": {
"type": "boolean"
}
}
},
"candidate_labels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"heavy_analytical",
"cross_entity",
"drilldown_explain",
"rule_based_account_control",
"anomaly_probe",
"period_close_risk",
"ambiguous_human_query",
"simple_factual"
]
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"execution_readiness": {
"type": "string",
"enum": [
"executable",
"executable_with_soft_assumptions",
"needs_clarification"
]
},
"clarification_reason": {
"type": [
"string",
"null"
]
},
"soft_assumption_used": {
"type": "array",
"items": {
"type": "string",
"enum": [
"period_from_session_context",
"company_scope_defaulted",
"problem_scan_mode_enabled"
]
}
}
}
}
},
"discarded_fragments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"raw_fragment_text",
"reason"
],
"properties": {
"raw_fragment_text": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string",
"minLength": 1
}
}
}
},
"global_notes": {
"type": "object",
"additionalProperties": false,
"required": [
"needs_clarification",
"clarification_reason"
],
"properties": {
"needs_clarification": {
"type": "boolean"
},
"clarification_reason": {
"type": [
"string",
"null"
]
}
}
}
}
},
"strict": true
},
"verbosity": "medium"
},
"tool_choice": "auto",
"tools": [],
"top_logprobs": 0,
"top_p": 1,
"truncation": "disabled",
"usage": {
"input_tokens": 1811,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 404,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 2215
},
"user": null,
"metadata": {}
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_1",
"user_message_raw": "Какие реализации на конец периода выглядят так, будто они зависли и будут портить картину по выручке, если их не проверить заранее?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "1",
"raw_fragment_text": "Какие реализации на конец периода выглядят так, будто они зависли",
"normalized_fragment_text": "Реализации на конец периода, которые выглядят зависшими",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"документ реализации"
],
"account_hints": [
"90"
],
"document_hints": [],
"register_hints": [],
"time_scope": {
"type": "explicit",
"value": "конец периода",
"confidence": "high"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"confidence": "high",
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
]
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": false,
"clarification_reason": null
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"cross_entity",
"anomaly_probe"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": true,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": false,
"asks_for_rule_check": false,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": false,
"mentions_period_close_context": true
},
"execution_readiness": "executable_with_soft_assumptions",
"clarification_reason": null,
"soft_assumption_used": [
"problem_scan_mode_enabled"
],
"route": "hybrid_store_plus_live",
"reason": "Multi-entity causal chain requested."
}
],
"fallback": {
"type": "none",
"message": null
}
},
"route_hint": "hybrid_store_plus_live",
"confidence": "high",
"usage": {
"input_tokens": 1811,
"output_tokens": 404,
"total_tokens": 2215
},
"latency_ms": 10230,
"eval_label": "eval-wO885tbCgd",
"eval_mode": "single-pass-strict",
"request_count_for_case": 1
}
@@ -0,0 +1,142 @@
{
"trace_id": "3D8Fl2jSx9Ykch",
"timestamp": "2026-03-25T20:41:08.976Z",
"model": "gpt-4o-mini",
"prompt_version": "normalizer_v2_0_2",
"schema_version": "v2_0_2",
"user_question_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"context": {
"period_hint": null,
"business_context": null,
"expected_route": null,
"case_id": null,
"eval_mode": null,
"trace_completeness_issues": []
},
"request_payload_redacted": {
"promptVersion": "normalizer_v2_0_2",
"userQuestion": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"useMock": true
},
"raw_model_response": {
"mode": "mock",
"schema_version": "v2_0_2"
},
"parsed_normalized_json": {
"schema_version": "normalized_query_v2_0_2",
"user_message_raw": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"message_in_scope": true,
"scope_confidence": "high",
"contains_multiple_tasks": false,
"fragments": [
{
"fragment_id": "F1",
"raw_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"normalized_fragment_text": "Проверь НДС в целом: где есть противоречия между документами, проводками и регистрами и что из этого реально риск для отчетности?",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"entity_hints": [
"ос"
],
"account_hints": [],
"document_hints": [
"документ"
],
"register_hints": [
"регистр"
],
"time_scope": {
"type": "missing",
"value": null,
"confidence": "low"
},
"flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"confidence": "medium",
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity"
}
],
"discarded_fragments": [],
"global_notes": {
"needs_clarification": true,
"clarification_reason": "critical_period_missing"
}
},
"validation_result": {
"passed": true,
"errors": []
},
"route_hint_summary": {
"mode": "deterministic_v2",
"message_in_scope": true,
"scope_confidence": "high",
"planner": {
"total_fragments": 1,
"in_scope_fragments": 1,
"out_of_scope_fragments": 0,
"discarded_fragments": 0,
"contains_multiple_tasks": false
},
"decisions": [
{
"fragment_id": "F1",
"domain_relevance": "in_scope",
"business_scope": "company_specific_accounting",
"candidate_labels": [
"rule_based_account_control",
"anomaly_probe",
"heavy_analytical"
],
"decision_flags": {
"has_multi_entity_scope": true,
"asks_for_chain_explanation": false,
"asks_for_ranking_or_top": false,
"asks_for_period_summary": true,
"asks_for_rule_check": true,
"asks_for_anomaly_scan": true,
"asks_for_exact_object_trace": false,
"asks_for_evidence": true,
"mentions_period_close_context": false
},
"execution_readiness": "needs_clarification",
"clarification_reason": "critical_period_missing",
"soft_assumption_used": [],
"route_status": "no_route",
"no_route_reason": "insufficient_specificity",
"route": "no_route",
"reason": "Fragment requires clarification or is too underspecified for safe routing."
}
],
"fallback": {
"type": "clarification",
"message": "Могу проверить это в контуре компании, но нужно уточнить период, документ, счет или участок учета."
}
},
"route_hint": null,
"confidence": "high",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0
},
"latency_ms": 0,
"request_count_for_case": 0
}

Some files were not shown because too many files have changed in this diff Show More