पाठ 15 / 26
Should और Should-Not Prompts से Triggering परखना
अनुरोधों की छोटी सूची बनाएँ जिन्हें skill उपयोग करनी और नहीं करनी चाहिए।
झूठे नकारात्मक और झूठे अलार्म दोनों महँगे हैं
Description दो तरह से विफल हो सकता है: झूठा नकारात्मक (skill जब चाहिए तब trigger नहीं होती, user को मदद नहीं मिलती) और झूठा सकारात्मक (असंबंधित अनुरोधों पर trigger होकर context बर्बाद करती और कभी-कभी ग़लत व्यवहार कराती है)। दोनों परखें। 10 से 20 यथार्थवादी prompts लिखें: कुछ जो trigger करने चाहिए (विविध शब्दांकन, अनौपचारिक और औपचारिक), कुछ जो नहीं करने चाहिए (सुनने में समान पर अलग काम)। उन्हें नए session में चलाएँ और दर्ज करें कि skill उपयोग हुई या नहीं; परिणाम सही होने तक description के keywords और "कब" वाक्यांश समायोजित करें, फिर सूची को regression suite के रूप में रखें और description बदलने या समान skill जोड़ने पर दोबारा चलाएँ। अंतिम निर्णय Claude करता है, इसलिए असली tool से परखें, पर नीचे जैसी सस्ती शब्द-overlap जाँच उन descriptions को पकड़ सकती है जो अपेक्षित prompts से कोई शब्दावली साझा नहीं करते।
Triggers, scripts, परिणाम परखें
जाँचें कि skill जब चाहिए तब trigger होती है, उसकी scripts चलती हैं और आउटपुट सही हैं; फिर असली transcripts से सुधारें।
मोटी जाँच वाली trigger test सूची, चलाकर
मैंने यह सादे Python 3 (सिर्फ़ standard library) से चलाया। यह विचार का सरल अनुकरण है, Claude वास्तव में कैसे तय करता है वह नहीं: Claude descriptions पर अपने विवेक का उपयोग करता है, इसीलिए स्पष्ट descriptions मायने रखते हैं। तीन prompts जो release-notes skill को trigger करने चाहिए सब उसके keywords साझा करते हैं, और तीन असंबंधित prompts कोई नहीं, इसलिए इस मोटी जाँच में कोई झूठा अलार्म नहीं। असली परीक्षण prompts को असली tool में चलाकर दर्ज करता है कि skill उपयोग हुई या नहीं।
SHOULD_TRIGGER = ["write the changelog for this release", "draft release notes", "what changed since v1.2"]
SHOULD_NOT = ["fix the failing test", "explain this regex", "write a haiku"]
TRIGGER_WORDS = {"changelog", "release", "notes", "changed", "tag"}
def would_trigger(prompt): return len(set(prompt.lower().replace("?", "").split()) & TRIGGER_WORDS) > 0
tp = sum(would_trigger(p) for p in SHOULD_TRIGGER); fp = sum(would_trigger(p) for p in SHOULD_NOT)
print(f"should trigger : {tp}/{len(SHOULD_TRIGGER)} triggered")
print(f"should NOT : {fp}/{len(SHOULD_NOT)} triggered (false alarms)")
for p in SHOULD_TRIGGER + SHOULD_NOT: print(f" {'TRIGGER' if would_trigger(p) else ' - '} {p}")
Output:
should trigger : 3/3 triggered
should NOT : 0/3 triggered (false alarms)
TRIGGER write the changelog for this release
TRIGGER draft release notes
TRIGGER what changed since v1.2
- fix the failing test
- explain this regex
- write a haikuत्वरित जाँच: ऐसे prompts क्यों शामिल करें जो skill को trigger नहीं करने चाहिए?
- झूठे सकारात्मक पकड़ने के लिए जो context बर्बाद करते या ग़लत व्यवहार कराते हैं
- सूची लंबी करने के लिए
- क्योंकि skills को कभी-कभी विफल होना चाहिए
- कोई कारण नहीं
Answer
झूठे सकारात्मक पकड़ने के लिए जो context बर्बाद करते या ग़लत व्यवहार कराते हैं — जो skill सब पर trigger हो वह उतनी ही बिगड़ी है जितनी जो किसी पर नहीं।