190 lines
15 KiB
JSON
190 lines
15 KiB
JSON
{
|
||
"schema_version": "domain_truth_harness_spec_v1",
|
||
"scenario_id": "agent_autonomy_business_quality_20260523",
|
||
"domain": "autonomy_business_quality",
|
||
"title": "AGENT | Autonomy business quality pack",
|
||
"description": "Expanded targeted AGENT replay for the current autonomy milestone: value-flow hot handoff must survive realistic business questions, while final answers must read like a useful 1C analyst instead of runtime/debug prose.",
|
||
"bindings": {},
|
||
"steps": [
|
||
{
|
||
"step_id": "step_01_incoming_total_no_counterparties",
|
||
"title": "Incoming money total by organization without counterparty split",
|
||
"question": "Сколько входящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"expected_mcp_discovery_response_applied": true,
|
||
"expected_mcp_discovery_selected_chain_id": "value_flow",
|
||
"expected_mcp_discovery_response_candidate_status": "ready_for_guarded_use",
|
||
"expected_mcp_discovery_candidate_hot_runtime_wired": true,
|
||
"expected_mcp_discovery_hot_runtime_wired": true,
|
||
"expected_mcp_discovery_execution_handoff_status": "ready_for_guarded_response",
|
||
"expected_mcp_discovery_execution_handoff_can_use_guarded_response": true,
|
||
"expected_catalog_alignment_status": "selected_matches_top",
|
||
"expected_catalog_chain_top_match": "value_flow",
|
||
"expected_catalog_selected_matches_top": true,
|
||
"required_answer_patterns_all": ["2020", "47[\\s.]*628[\\s.]*853", "входящ|поступ|получ", "руб"],
|
||
"forbidden_answer_patterns": ["Учтено строк", "Первая найденная дата", "последняя:", "runtime_", "planner_", "query_movements", "primitive", "уточните контрагента", "по какому контрагенту"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["autonomy_core", "value_flow", "incoming_total", "business_answer_quality"]
|
||
},
|
||
{
|
||
"step_id": "step_02_outgoing_total_no_counterparties",
|
||
"title": "Outgoing money total by organization without counterparty split",
|
||
"question": "Сколько исходящих денег за 2020 год по ООО Альтернатива Плюс без разреза по контрагентам?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"expected_mcp_discovery_response_applied": true,
|
||
"expected_mcp_discovery_selected_chain_id": "value_flow",
|
||
"expected_mcp_discovery_response_candidate_status": "ready_for_guarded_use",
|
||
"expected_mcp_discovery_candidate_hot_runtime_wired": true,
|
||
"expected_mcp_discovery_hot_runtime_wired": true,
|
||
"expected_mcp_discovery_execution_handoff_status": "ready_for_guarded_response",
|
||
"expected_mcp_discovery_execution_handoff_can_use_guarded_response": true,
|
||
"expected_catalog_alignment_status": "selected_matches_top",
|
||
"expected_catalog_chain_top_match": "value_flow",
|
||
"expected_catalog_selected_matches_top": true,
|
||
"required_answer_patterns_all": ["2020", "исходящ|списан|заплат", "руб"],
|
||
"required_answer_patterns_any": ["43[\\s.]*763[\\s.]*351", "не полностью покрыт|лимит|нужно дозапрос"],
|
||
"forbidden_answer_patterns": ["Учтено строк", "Первая найденная дата", "последняя:", "runtime_", "planner_", "query_movements", "primitive", "уточните контрагента", "по какому контрагенту"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["autonomy_core", "value_flow", "outgoing_total", "business_answer_quality", "limit_honesty"]
|
||
},
|
||
{
|
||
"step_id": "step_03_colloquial_incoming_without_tops",
|
||
"title": "Colloquial no-top incoming wording stays value-flow total",
|
||
"question": "А всего сколько денег пришло в ООО Альтернатива Плюс за 2020, без топов и без контрагентов?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"expected_mcp_discovery_response_applied": true,
|
||
"expected_mcp_discovery_selected_chain_id": "value_flow",
|
||
"expected_mcp_discovery_response_candidate_status": "ready_for_guarded_use",
|
||
"expected_mcp_discovery_candidate_hot_runtime_wired": true,
|
||
"expected_mcp_discovery_hot_runtime_wired": true,
|
||
"expected_mcp_discovery_execution_handoff_status": "ready_for_guarded_response",
|
||
"expected_mcp_discovery_execution_handoff_can_use_guarded_response": true,
|
||
"expected_catalog_alignment_status": "selected_matches_top",
|
||
"expected_catalog_chain_top_match": "value_flow",
|
||
"expected_catalog_selected_matches_top": true,
|
||
"required_answer_patterns_all": ["2020", "47[\\s.]*628[\\s.]*853", "пришл|получ|поступ", "руб"],
|
||
"forbidden_answer_patterns": ["топ входящ", "топ контрагент", "Учтено строк", "Первая найденная дата", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["autonomy_core", "value_flow", "no_top_guard", "colloquial_total"]
|
||
},
|
||
{
|
||
"step_id": "step_04_cashflow_overview_2020",
|
||
"title": "Adult 2020 money overview with bank separated",
|
||
"question": "Теперь дай взрослый обзор за 2020 по компании: входящие, исходящие, нетто, топы, но банк в топах отдельно объясни как финансовый поток.",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"expected_catalog_alignment_status": "selected_matches_top",
|
||
"expected_catalog_chain_top_match": "business_overview",
|
||
"expected_catalog_selected_matches_top": true,
|
||
"required_answer_patterns_all": ["47[\\s.]*628[\\s.]*853", "43[\\s.]*763[\\s.]*351", "3[\\s.]*865[\\s.]*501", "Сбербанк|СБЕРБАНК", "финансов|банк", "Группа СВК", "Департамент"],
|
||
"required_answer_patterns_any": ["Что проверить дальше", "следующ"],
|
||
"forbidden_answer_patterns": ["Учтено строк", "Первая найденная дата", "surrogate", "VAT-объект", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["business_overview", "cashflow_overview", "bank_boundary", "next_action"]
|
||
},
|
||
{
|
||
"step_id": "step_05_money_earned_vs_profit",
|
||
"title": "Colloquial earned money is cashflow, not clean profit",
|
||
"question": "скока денег альтернатива заработала за 20 год?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["47[\\s.]*628[\\s.]*853", "43[\\s.]*763[\\s.]*351", "3[\\s.]*865[\\s.]*501", "не чистая прибыль|не прибыль|денежн"],
|
||
"forbidden_answer_patterns": ["Учтено строк", "Первая найденная дата", "surrogate", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["cashflow_vs_profit", "colloquial_money"]
|
||
},
|
||
{
|
||
"step_id": "step_06_profit_followup",
|
||
"title": "Follow-up clean profit keeps cashflow/profit distinction",
|
||
"question": "а это чистая прибыль?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["нет|не", "чистая прибыль|прибыль", "7\\s*136\\s*815|7,?136,?815|7136815", "90|91|99"],
|
||
"forbidden_answer_patterns": ["Учтено строк", "Первая найденная дата", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["followup_context", "profit_vs_cashflow"]
|
||
},
|
||
{
|
||
"step_id": "step_07_sberbank_financial_flow",
|
||
"title": "Sberbank role is financial flow, not ordinary customer/supplier",
|
||
"question": "А отдельно по СБЕРБАНКУ: он для нас клиент, поставщик или финансовый поток? Дай коротко по подтвержденным строкам.",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["Сбербанк|СБЕРБАНК", "финансов|банк", "не.*клиент|не.*поставщик|не обычн", "36[\\s.]*258[\\s.]*835|12[\\s.]*792[\\s.]*194"],
|
||
"forbidden_answer_patterns": ["0 / 0", "T00:00:00", "Учтено строк", "Первая найденная дата", "Примеры строк", "Показаны первые", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["bank_classification", "business_answer_quality"]
|
||
},
|
||
{
|
||
"step_id": "step_08_svk_counterparty_net_flow",
|
||
"title": "Counterparty net-flow does not become company profit",
|
||
"question": "какое нетто по деньгам с Группа СВК за 2020 год: сколько получили и сколько заплатили?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["Группа СВК", "12[\\s.]*093[\\s.]*465", "заплатили|исходящ", "0", "нетто"],
|
||
"forbidden_answer_patterns": ["чистая прибыль", "90/91/99", "7[\\s.]*136[\\s.]*815", "Учтено строк", "Первая найденная дата", "Примеры строк", "Показаны первые", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["counterparty_value_flow", "net_flow", "no_profit_substitution"]
|
||
},
|
||
{
|
||
"step_id": "step_09_payables_end_2020",
|
||
"title": "Payables answer stays compact and business-first",
|
||
"question": "кому мы должны на конец 2020?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["1[\\s.]*713[\\s.]*210", "ИП Тучкова|Тучкова", "должн|кредитор"],
|
||
"forbidden_answer_patterns": ["T23:59:59", "эвристический", "shortlist", "Строк в выборке", "Учтено строк", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["payables", "debt_answer_quality"]
|
||
},
|
||
{
|
||
"step_id": "step_10_receivables_end_2020",
|
||
"title": "Receivables answer stays compact and business-first",
|
||
"question": "а нам кто должен на конец 2020?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["1[\\s.]*219[\\s.]*200", "СервисКонсалт", "должн|дебитор"],
|
||
"forbidden_answer_patterns": ["T23:59:59", "эвристический", "shortlist", "Строк в выборке", "Категории дебиторской задолженности", "Учтено строк", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["receivables", "debt_answer_quality"]
|
||
},
|
||
{
|
||
"step_id": "step_11_vat_december_2019",
|
||
"title": "VAT answer is clean user-facing accounting answer",
|
||
"question": "сколько НДС надо заплатить в налоговую за декабрь 2019?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["161[\\s.]*852", "к уплате", "книга продаж|продаж", "книга покупок|вычет|покупок", "01\\.10\\.2019|4 квартал|IV квартал"],
|
||
"forbidden_answer_patterns": ["surrogate", "VAT-объект", "прямых источников", "0,00\\s*₽", "Учтено строк", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["vat", "technical_garbage_guard"]
|
||
},
|
||
{
|
||
"step_id": "step_12_business_evaluation",
|
||
"title": "Company evaluation is an analyst answer with next checks",
|
||
"question": "Как ты оценишь деятельность компании?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"expected_catalog_alignment_status": "selected_matches_top",
|
||
"expected_catalog_chain_top_match": "business_overview",
|
||
"expected_catalog_selected_matches_top": true,
|
||
"required_answer_patterns_all": ["крупн|контракт|проект", "285\\s*8|285\\s*823|285", "Комитет|госуслуг", "Что проверить дальше|проверить дальше|дальше"],
|
||
"forbidden_answer_patterns": ["Учтено строк", "Первая найденная дата", "проверка достигла лимита строк", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["business_overview", "business_evaluation", "next_action"]
|
||
},
|
||
{
|
||
"step_id": "step_13_nomenclature_margin_missing_period",
|
||
"title": "Nomenclature margin ranking asks for period, not wrong accounting domain",
|
||
"question": "Какая номенклатура товара реализована с высокой прибылью какая с низкой?",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["период", "выручк|реализац", "себестоим|валов|маржин"],
|
||
"forbidden_answer_patterns": ["основн.*средств", "амортизац", "зависш", "оплат", "расчетн", "Учтено строк", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["nomenclature_margin", "clarification", "domain_purity"]
|
||
},
|
||
{
|
||
"step_id": "step_14_nomenclature_margin_may_2020",
|
||
"title": "Nomenclature margin ranking with period gives useful limited answer",
|
||
"question": "май 2020",
|
||
"allowed_reply_types": ["partial_coverage", "factual_with_explanation", "factual"],
|
||
"required_answer_patterns_all": ["май|01\\.05\\.2020|31\\.05\\.2020", "рейтинг|прибыль|маржин", "себестоим", "нельзя|не удалось|недостаточно"],
|
||
"required_answer_patterns_any": ["показать найденную продажу", "расширить период", "90\\.01|90\\.02", "следующ"],
|
||
"forbidden_answer_patterns": ["основн.*средств", "амортизац", "зависш", "runtime_", "planner_", "query_movements", "primitive"],
|
||
"criticality": "critical",
|
||
"semantic_tags": ["nomenclature_margin", "limited_answer", "next_action"]
|
||
}
|
||
]
|
||
}
|