← Back to R&D
Evaluation

Benchmarking Template-Retrieval Accuracy in the Workflow Knowledge Base

Hacroo Technologies · Jul 14, 2026 · 3 min read

Gydmation AI doesn't generate every workflow from a blank page. Before it writes anything, it searches a vector store of 1,987 n8n templates to find the closest existing starting point — the same idea behind retrieval-augmented generation, applied to workflow structure instead of text. If that search returns the wrong template, everything downstream inherits the mistake.

The failure mode we were chasing

Semantic similarity isn't the same as intent match. A request for "save form responses to Google Sheets" and a template called "Typeform to NextCloud Spreadsheet Sync" can score highly similar on embedding distance alone, while being the wrong tool entirely for a user who named Google Sheets explicitly. Similarity search rewards vocabulary overlap; it doesn't know that the named tool is a hard constraint, not a preference.

Similarity-only match
  • Request: "save form responses to Google Sheets"
  • Top match: "Typeform to NextCloud Spreadsheet Sync"
  • Named tool (Google Sheets) silently ignored
Constraint-aware match
  • Same request, same embedding space
  • Named tool treated as a hard requirement
  • Only templates using Google Sheets qualify

What we measure now

We track retrieval accuracy as two separate numbers, not one blended score: whether the top result's category is right (marketing automation vs. data sync vs. notifications), and whether any explicitly named tool or app in the request appears in the retrieved template at all. A high similarity score with a missing named tool now counts as a miss, not a near-hit — because to the person who typed the request, it is one.

Why this stays a running benchmark, not a one-time fix

The template library keeps growing, and every new addition changes the neighborhood around existing embeddings. We re-run the same fixed set of ambiguous, real-world-phrased test prompts after every meaningful change to the knowledge base, specifically so a template addition that helps one query can't silently regress another without us noticing.

More R&D

Want to see this working, not just described?