Planner Autonomy: собрать mixed AGENT-прогон для catalog-alignment

This commit is contained in:
2026-05-01 16:46:36 +03:00
parent e13068cf4d
commit f6846206ad
7 changed files with 1953 additions and 115 deletions
+174 -1
View File
@@ -167,7 +167,180 @@ RECIPE_LIBRARY: dict[str, dict[str, Any]] = {
"required_tags": ["meta_scope"],
},
],
}
},
"turnaround_11_planner_brain_alignment_mix": {
"scenario_id": "address_truth_harness_phase83_planner_brain_alignment_mix",
"domain": "planner_autonomy_consolidation",
"title": "Phase 83 mixed planner-brain replay for catalog alignment, pivots, and legacy continuity",
"description": (
"Mixed AGENT replay for Planner Autonomy Consolidation. The pack interleaves selected-counterparty "
"catalog-alignment probes, open-organization money flow, ranking, broad-evaluation continuity, "
"metadata drilldown, and off-domain living-chat safety."
),
"bindings": {},
"step_plan": [
{
"slot_id": "slot_01_smalltalk_sanity",
"criticality": "info",
"preferred_candidate_ids": [
"address_truth_harness_phase19_mcp_discovery_response_gate:step_01_human_smalltalk_sanity",
],
"required_tags": ["meta_smalltalk"],
},
{
"slot_id": "slot_02_counterparty_grounding",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase32_planner_selected_chain_end_to_end:step_01_resolve_counterparty_alias",
],
"required_tags": ["planner_catalog_alignment", "entity_resolution"],
},
{
"slot_id": "slot_03_counterparty_incoming",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase32_planner_selected_chain_end_to_end:step_02_incoming_by_resolved_entity",
],
"required_tags": ["planner_catalog_alignment"],
},
{
"slot_id": "slot_04_counterparty_payout",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase32_planner_selected_chain_end_to_end:step_03_payout_switch_by_resolved_entity",
],
"required_tags": ["planner_catalog_alignment"],
},
{
"slot_id": "slot_05_counterparty_net",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase32_planner_selected_chain_end_to_end:step_04_net_after_payout",
],
"required_tags": ["planner_catalog_alignment"],
},
{
"slot_id": "slot_06_counterparty_documents",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase32_planner_selected_chain_end_to_end:step_05_documents_after_net",
],
"required_tags": ["planner_catalog_alignment", "document_evidence"],
},
{
"slot_id": "slot_07_counterparty_movements",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase32_planner_selected_chain_end_to_end:step_06_movements_after_documents",
],
"required_tags": ["planner_catalog_alignment", "movement_evidence"],
},
{
"slot_id": "slot_08_open_org_total",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase66_human_org_open_scope_dialog:step_01_open_scope_incoming_total",
],
"required_tags": ["planner_catalog_alignment"],
},
{
"slot_id": "slot_09_open_org_selection",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase66_human_org_open_scope_dialog:step_02_all_time_same_open_scope",
],
"required_tags": ["planner_catalog_alignment"],
},
{
"slot_id": "slot_10_open_org_all_time",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase66_human_org_open_scope_dialog:step_03_all_time_same_open_scope",
],
"required_tags": ["planner_catalog_alignment"],
},
{
"slot_id": "slot_11_open_org_comparison",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase66_human_org_open_scope_dialog:step_04_bidirectional_comparison",
],
"required_tags": ["planner_catalog_alignment", "value_flow_comparison"],
},
{
"slot_id": "slot_12_open_org_comparison_year_switch",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase66_human_org_open_scope_dialog:step_05_comparison_year_switch",
],
"required_tags": ["planner_catalog_alignment", "value_flow_comparison"],
},
{
"slot_id": "slot_13_open_org_ranking",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase66_human_org_open_scope_dialog:step_06_ranking_top_counterparty",
],
"required_tags": ["planner_catalog_alignment", "value_flow_ranking"],
},
{
"slot_id": "slot_14_open_org_ranking_year_switch",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase66_human_org_open_scope_dialog:step_07_ranking_year_switch",
],
"required_tags": ["planner_catalog_alignment", "value_flow_ranking"],
},
{
"slot_id": "slot_15_broad_eval_context",
"criticality": "warning",
"preferred_candidate_ids": [
"address_truth_harness_phase22_broad_business_evaluation_bridge:step_01_company_activity_lifecycle",
],
"required_tags": ["company_activity_lifecycle"],
},
{
"slot_id": "slot_16_broad_eval_bridge",
"criticality": "warning",
"preferred_candidate_ids": [
"address_truth_harness_phase22_broad_business_evaluation_bridge:step_02_broad_business_evaluation",
],
"required_tags": ["broad_business_evaluation"],
},
{
"slot_id": "slot_17_broad_eval_return_to_net",
"criticality": "critical",
"preferred_candidate_ids": [
"address_truth_harness_phase22_broad_business_evaluation_bridge:step_03_net_flow_after_broad_eval",
],
"required_tags": ["broad_eval_bridge_preserved"],
},
{
"slot_id": "slot_18_metadata_surface",
"criticality": "warning",
"preferred_candidate_ids": [
"address_truth_harness_phase42_catalog_metadata_drilldown:step_01_catalog_metadata_surface",
],
"required_tags": ["catalog_metadata_surface"],
},
{
"slot_id": "slot_19_metadata_drilldown",
"criticality": "warning",
"preferred_candidate_ids": [
"address_truth_harness_phase42_catalog_metadata_drilldown:step_02_neutral_followup_catalog_drilldown",
],
"required_tags": ["catalog_drilldown"],
},
{
"slot_id": "slot_20_off_domain_guard",
"criticality": "warning",
"preferred_candidate_ids": [
"address_truth_harness_phase19_mcp_discovery_response_gate:step_08_off_domain_living_chat_not_hijacked",
],
"required_tags": ["off_domain_living_chat"],
},
],
},
}
@@ -49,6 +49,25 @@ class AgentSemanticPackBuilderTests(unittest.TestCase):
self.assertIn("same_date_restore", all_tags)
self.assertIn("settlements_receivables", all_tags)
def test_build_recipe_spec_creates_planner_brain_alignment_pack(self) -> None:
catalog = builder.build_source_catalog()
spec = builder.build_recipe_spec(catalog, "turnaround_11_planner_brain_alignment_mix")
self.assertEqual(spec["scenario_id"], "address_truth_harness_phase83_planner_brain_alignment_mix")
self.assertEqual(len(spec["steps"]), 20)
all_tags = {tag for step in spec["steps"] for tag in step.get("semantic_tags", [])}
self.assertIn("planner_catalog_alignment", all_tags)
self.assertIn("value_flow_comparison", all_tags)
self.assertIn("value_flow_ranking", all_tags)
self.assertIn("broad_business_evaluation", all_tags)
self.assertIn("catalog_drilldown", all_tags)
self.assertIn("off_domain_living_chat", all_tags)
catalog_checked_steps = [
step for step in spec["steps"] if step.get("expected_catalog_chain_top_match")
]
self.assertEqual(len(catalog_checked_steps), 13)
if __name__ == "__main__":
unittest.main()