Planner Autonomy: ранжировать catalog chain templates
This commit is contained in:
@@ -5,6 +5,7 @@ import {
|
||||
getAssistantMcpCatalogChainTemplate,
|
||||
getAssistantMcpCatalogPrimitive,
|
||||
reviewAssistantMcpDiscoveryPlanAgainstCatalog,
|
||||
searchAssistantMcpCatalogChainTemplatesByFactAxis,
|
||||
searchAssistantMcpCatalogPrimitivesByDecompositionCandidates,
|
||||
searchAssistantMcpCatalogPrimitivesByFactAxis,
|
||||
searchAssistantMcpCatalogPrimitivesByMetadataSurface
|
||||
@@ -151,6 +152,30 @@ describe("assistant MCP catalog index", () => {
|
||||
expect(primitives).toEqual(["resolve_entity_reference", "query_documents", "probe_coverage"]);
|
||||
});
|
||||
|
||||
it("can score reviewed chain templates directly from fact family and required axes", () => {
|
||||
const documentTemplates = searchAssistantMcpCatalogChainTemplatesByFactAxis({
|
||||
business_fact_family: "document_evidence",
|
||||
action_family: "list_documents",
|
||||
required_axes: ["counterparty", "period", "coverage_target"]
|
||||
});
|
||||
const comparisonTemplates = searchAssistantMcpCatalogChainTemplatesByFactAxis({
|
||||
business_fact_family: "value_flow",
|
||||
action_family: "net_value_flow",
|
||||
comparison_need: "incoming_vs_outgoing",
|
||||
required_axes: ["organization", "period", "amount", "coverage_target"]
|
||||
});
|
||||
const rankingTemplates = searchAssistantMcpCatalogChainTemplatesByFactAxis({
|
||||
business_fact_family: "value_flow",
|
||||
action_family: "turnover",
|
||||
ranking_need: "top_desc",
|
||||
required_axes: ["organization", "period", "aggregate_axis", "amount", "coverage_target"]
|
||||
});
|
||||
|
||||
expect(documentTemplates[0]).toBe("document_evidence");
|
||||
expect(comparisonTemplates[0]).toBe("value_flow_comparison");
|
||||
expect(rankingTemplates[0]).toBe("value_flow_ranking");
|
||||
});
|
||||
|
||||
it("can search reviewed primitives for inventory stock snapshot chains", () => {
|
||||
const primitives = searchAssistantMcpCatalogPrimitivesByFactAxis({
|
||||
business_fact_family: "inventory_stock_snapshot",
|
||||
|
||||
@@ -51,6 +51,8 @@ describe("assistant MCP discovery planner", () => {
|
||||
expect(result.reason_codes).toContain("planner_enabled_chunked_coverage_probe_budget");
|
||||
expect(result.reason_codes).toContain("planner_consumed_data_need_graph_v1");
|
||||
expect(result.reason_codes).toContain("planner_selected_catalog_primitives_from_decomposition_candidates");
|
||||
expect(result.reason_codes).toContain("planner_scored_catalog_chain_templates_from_fact_axis");
|
||||
expect(result.reason_codes).toContain("planner_catalog_chain_template_search_top_value_flow");
|
||||
});
|
||||
|
||||
it("keeps a value-flow plan in clarification state when period axis is missing", () => {
|
||||
@@ -145,6 +147,7 @@ describe("assistant MCP discovery planner", () => {
|
||||
expect(result.proposed_primitives).toEqual(["resolve_entity_reference", "query_documents", "probe_coverage"]);
|
||||
expect(result.reason_codes).toContain("planner_selected_catalog_primitives_from_fact_axis_search");
|
||||
expect(result.reason_codes).toContain("planner_instantiated_catalog_chain_template_document_evidence");
|
||||
expect(result.reason_codes).toContain("planner_catalog_chain_template_search_top_document_evidence");
|
||||
expect(result.reason_codes).not.toContain("planner_fell_back_to_recipe_primitives_after_empty_catalog_search");
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user