बड़े skill rosters वाले agents लगभग बिना जानकारी चुनते हैं: roster index बनकर आता है – हर skill एक truncated line (Hermes descriptions को 60 characters तक काटता है) – इसलिए .pptx files edit करने वाला skill author करने वाले जैसा ही पढ़ा जाता है, और जिन turns में कुछ fit ही नहीं होता, वहाँ भी नामों की list guess को न्योता देती है। TypeSafe का skill-suggestion cookbook इसे progressive disclosure से ठीक करता है: एक सस्ती request सभी 182 skills rank करती है और पूछती है कि turn को skill चाहिए भी या नहीं; दूसरी request सिर्फ top तीन को पूरी detail में दोबारा पढ़ती है और सबको reject कर सकती है। Winner का नाम system prompt की एक line में जाता है। यह guide recipe और उसके measured नतीजों का सारांश है।

Baseline खराब क्यों है

claude-haiku-4-5 पर 488 requests में मापा गया (315 exactly एक skill से covered, 173 किसी से नहीं – 85 everyday requests और guessing को punish करने वाले 46 near-misses समेत, जैसे X cover करने वाले पर Mastodon roster पर "post this to Mastodon"), सिर्फ roster वाला agent गलत skill 16.8% बार load करता है और fit न होने पर भी 9.8% बार load करता है। 36 गलत first picks में 10 सही skill की अपनी category से आए – agent मोटे तौर पर सही जगह देख रहा है, मुश्किल हिस्सा lookalikes को अलग करना है।

Call 1 – सभी 182 skim करें

एक request दो किस्म के सवाल ले जाती है: सभी 182 skill names पर Choice (हर option का criteria index description – वही text जो agent को मिलता है) जिसकी probabilities ranking हैं, और तीन Nouls जो अलग-अलग तरह पूछते हैं कि turn को explanation के बजाय action चाहिए या नहीं (user के system पर act? documented procedure consult? या prose काफी है – inverted)। उनका mean तय करता है कि कुछ suggest हो या नहीं; 0.30 से नीचे, खामोश रहो। दोनों एक round trip में जाते हैं।

Call 2 – top 3 को ठीक से पढ़ें

तीन options में हर skill का full description + उसके SKILL.md का opening आ जाता है, इसलिए वही सवाल बेहतर evidence पर पूछा जाता है: shortlist पर Choice, और हर candidate पर एक absolute fits::{name} Noul – क्या यह skill माँगी गई specific चीज़ करता है? सब low आ सकते हैं, और जिसका best fits score 0.30 से नीचे, वह shortlist पूरी drop।

.pptx pair ठीक यहीं अलग होता है: wide ranking deck-authoring request के लिए editing skill को पहले रखती है (0.700 vs 0.300); पूरा पढ़ने पर Choice authoring skill पर flip करता है। गौर करें Choice और Nouls disagree कर सकते हैं (यहाँ Nouls editing skill को ज़्यादा score करते हैं) – वे अलग सवालों के जवाब हैं: Choice तय करता है कौन सा, Nouls तय करते हैं कुछ कहना है भी या नहीं। यही Choice-vs-Noul split Jev 1.13 jaggedness guide का failure mode 8 है।

पूरी recipe: दो requests और दो thresholds

def suggest(request: str) -> tuple[str, ...]:
    """At most one skill name for a request, or () for "nothing here applies"."""
    wide = rank_wide(request)
    if wide["gate"] < GATE_THRESHOLD:  # 0.30
        return ()
    shortlist = tuple(name for name, _ in wide["ranked"][:SHORTLIST])  # top 3
    result = rerank(request, shortlist, EXCERPT_CHARS)
    if max(result["fits"].values()) < FITS_THRESHOLD:  # 0.30
        return ()
    return (result["winner"],)

Suggestion अपने block में roster के बाद जाता है, उसके अंदर कभी नहीं – ताकि roster text हर turn identical रहे और prefix caching टिका रहे:

<skill_relevance>
Relevant to the current request: pptx-author. Ignore this if it does not
fit what the user actually asked for.
</skill_relevance>

Wording दो काम करती है: कहती है suggestion ignore किया जा सकता है (ज़ोर देने से गलत suggestions पर भी compliance मिलती है, और गलत suggestion none से बदतर है), और खाली turn में भी "nothing appears relevant" sentence जाता है, ताकि roster का अपना "err on the side of loading" instruction opposed रहे, unopposed नहीं।

Measured नतीजे

गलत skillFit न होने पर skill
Agent अकेला, सिर्फ roster16.8%9.8%
TypeSafe suggestion वाला agent7.3%4.0%
सही जवाब दिया गया agent (ceiling)2.5%1.2%

यानी 2.3× कम wrong loads और 2.4× कम needless ones – truncated index से guessing और सही जवाब मिलने के बीच का ज़्यादातर gap। 315 covered requests में suggestion ने 37 fix किए और 7 बिगाड़े जो agent ने खुद सही किए थे: confident गलत suggestion persuade करता है, turn के सामने रखने की यही कीमत है। (Ceiling row भी zero नहीं – सही skill दिया गया agent भी हमेशा load नहीं करता।)

Bottom line

बड़े roster वाले अपने किसी agent पर यही shape copy करें: सब पर सस्ती ranking, फिर दो-तीन पर करीबी नज़र – और दोनों steps खाली हाथ लौट सकें। Full source: TypeSafe का skill-suggestion cookbook (runs में jev-1.12); वही shape और जगहों पर – TypeSafe patterns docs में intent routing, confidence-gated routing और speculative fan-out देखें।