बड़े 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 नतीजे
| गलत skill | Fit न होने पर skill | |
|---|---|---|
| Agent अकेला, सिर्फ roster | 16.8% | 9.8% |
| TypeSafe suggestion वाला agent | 7.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 देखें।