Natural-language queries that name a product in Chinese (e.g. 「帮我搜一下
「评测项目管理」钉钉AI表格」) lost the named product's candidates to a
sibling product whose summaries repeat a shared bigram (92 sheet tools
repeat 「表格」), crowding aitable out of the Top-K cut entirely.
Two-part fix in the lexical layer, deterministic and no new dependencies:
- Fold the product display name into each tool's identity field at index
build (runtime assembly carries the display name in Description).
- Query-side named-product guarantee: when the query contains a product's
display-name core (NFKC-folded, generic suffixes like 「操作」「管理」
trimmed, longest core wins on overlap), fetch that product's best
candidate over its own eligible subset and merge it just above the
global top hit. A post-hoc multiplier alone cannot rescue candidates
truncated inside Retrieve's CandidateLimit cut.
Eval evidence (core120 first-turn coverage): 101→103/120; all four
measured 「钉钉AI表格」 misses fixed, zero regressions across the battery.