From 1308690b33b4aeb6bb833c3a5c482f80ec906703 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sat, 13 Jun 2026 13:36:09 -0400 Subject: [PATCH] Add IWC routing regression cases Pin the routing for IWC-related asks so a model or prompt change that breaks it gets caught. Both phrasings -- the imperative "import a workflow from IWC" and the "recommend an IWC workflow for X" discovery ask -- should route to tool_recommendation, which owns IWC search and surfaces an importable workflow plus an import action. Flips the existing import_iwc_workflow expectation to match and adds a recommendation-phrasing case. --- test/evals/datasets/routing.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/evals/datasets/routing.py b/test/evals/datasets/routing.py index 4484d27f146..455902f0110 100644 --- a/test/evals/datasets/routing.py +++ b/test/evals/datasets/routing.py @@ -194,8 +194,8 @@ ROUTING_CASES: list[Case[str, str, dict[str, Any]]] = [ _case( "import_iwc_workflow", "Import a histological staining workflow from IWC.", - "router", - "Router-direct action. On agent-ops-iwc-reintroduce this triggers search_iwc_workflows + import_workflow_from_iwc tool calls.", + "tool_recommendation", + "tool_recommendation owns IWC search (search_iwc_workflows) and emits a WORKFLOW_IMPORT action for the surfaced workflow; no in-app agent calls import_workflow_from_iwc directly.", ), _case( "omero_upload_guidance", @@ -223,6 +223,12 @@ ROUTING_CASES: list[Case[str, str, dict[str, Any]]] = [ "custom_tool", "Explicit custom_tool request -- writing a tool wrapper, not running an existing one.", ), + _case( + "recommend_iwc_workflow", + "Recommend an IWC workflow for histological staining quantification.", + "tool_recommendation", + "Recommendation-style IWC ask -- discovery phrasing routes to tool_recommendation, which searches IWC and surfaces an importable workflow.", + ), ]