АРЧ АП11 - Вынести meta и memory recap policy из route runtime и закрыть Phase 5 агентным прогоном

This commit is contained in:
2026-04-17 11:39:45 +03:00
parent b3572d9d11
commit 15fa643fc8
17 changed files with 1342 additions and 142 deletions
@@ -0,0 +1,106 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase5_meta_memory_mix",
"domain": "address_phase5_meta_memory_mix",
"title": "Phase 5 meta and memory recap replay over interrupted address context",
"description": "Targeted replay for meta and memory recap policy extraction: inventory root, historical capability follow-up, data-scope meta interrupt, selected-object provenance, capability meta interrupt, and deterministic memory recap.",
"bindings": {},
"steps": [
{
"step_id": "step_01_inventory_root_march_2021",
"title": "Inventory root establishes grounded March 2021 context",
"question": "какие остатки на складе на март 2021",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"inventory_on_hand_as_of_date"
],
"required_filters": {
"as_of_date": "2021-03-31",
"period_from": "2021-03-01",
"period_to": "2021-03-31"
},
"required_direct_answer_patterns_any": [
"31\\.03\\.2021",
"(?i)на складе"
]
},
{
"step_id": "step_02_inventory_history_capability_followup",
"title": "Historical capability follow-up stays contextual and human",
"question": "а исторические остатки тоже можешь?",
"required_answer_patterns_any": [
"(?i)историческ",
"(?i)могу",
"(?i)март 2020|июнь 2016|2017"
],
"forbidden_answer_patterns": [
"(?i)^сейчас не дам прямой адресный ответ",
"(?i)^в текущем адресном контуре этот запрос лучше не закрывать в лоб"
]
},
{
"step_id": "step_03_data_scope_meta_interrupt",
"title": "Data-scope meta question stays deterministic and non-technical",
"question": "по какой компании мы сейчас работаем?",
"required_answer_patterns_any": [
"(?i)компан|организац|контур",
"(?i)работ",
"(?i)альтернатив|доступн|выбран"
],
"forbidden_answer_patterns": [
"(?i)tool_gate_reason",
"(?i)hard_meta_mode",
"(?i)living_router_reason"
]
},
{
"step_id": "step_04_selected_item_supplier",
"title": "Selected-object provenance survives the meta interrupt",
"question": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?",
"allowed_reply_types": [
"factual"
],
"expected_intents": [
"inventory_purchase_provenance_for_item"
],
"required_direct_answer_patterns_any": [
"(?i)столешница 600\\*3050\\*26 альмандин",
"(?i)поставщик|поставил|куплен",
"(?i)союз|торговый дом"
],
"forbidden_direct_answer_patterns": [
"(?i)^на 31\\.03\\.2021 на складе",
"(?i)^сейчас не дам прямой адресный ответ"
]
},
{
"step_id": "step_05_capability_meta_interrupt",
"title": "Capability meta question does not break the address context",
"question": "что ты умеешь?",
"required_answer_patterns_any": [
"(?i)могу|умею",
"(?i)остатк|документ|контрагент|ндс"
],
"forbidden_answer_patterns": [
"(?i)tool_gate_reason",
"(?i)address_mode"
]
},
{
"step_id": "step_06_memory_recap_after_interrupts",
"title": "Memory recap still remembers the selected object after meta interruptions",
"question": "а ты помнишь, что мы по этой позиции уже выяснили?",
"required_answer_patterns_any": [
"(?i)помню",
"(?i)столешница 600\\*3050\\*26 альмандин",
"(?i)позици"
],
"forbidden_answer_patterns": [
"(?i)^сейчас не дам прямой адресный ответ",
"(?i)^в текущем адресном контуре этот запрос лучше не закрывать в лоб"
]
}
]
}