Anthropic ने Claude Code ला मार्गदर्शन करणाऱ्या सिस्टम प्रॉम्प्टमधील ८०% भाग काढून टाकला आणि कोड लिहिण्याच्या क्षमतेमध्ये कोणतीही घट झाल्याचे सांगितले नाही. हा प्रयोग दर्शवतो की जसे लार्ज लँग्वेज मॉडेल्स (LLMs) अधिक सक्षम होत आहेत, तसे डेव्हलपर्स मॉडेल्सना योग्य मार्गावर ठेवण्यासाठी वापरले जाणारे जड स्कॅफोल्डिंग (scaffolding) त्यांच्या कामगिरीवर परिणाम न करता कमी करू शकतात.

प्रॉम्प्ट सुरुवातीला का महत्त्वाचा होता

जेव्हा Claude Code लाँच झाले, तेव्हा त्याच्या सिस्टम प्रॉम्प्टमध्ये डझनभर नियम होते. जेव्हा जेव्हा एखादी त्रुटी (bug) आढळली तेव्हा इंजिनिअर्सनी नवीन ओळी जोडल्या, परंतु जे काम करत होते ते क्वचितच काढून टाकले. कालांतराने हा प्रॉम्प्ट एक गुंतागुंतीचा आणि स्थिर (static) दस्तऐवज बनला.

मॉडेलमधील अंतर कमी होत आहे

त्या अतिरिक्त नियमांमुळे “मॉडेल गॅप” (model gap) लपला होता – म्हणजे मॉडेल काय करू शकते आणि ॲप्लिकेशनची काय मागणी आहे यातील फरक. २०२४ मध्ये, मॉडेलला, उदाहरणार्थ, कोडमध्ये प्रमाणाबाहेर कमेंट्स (over-commenting) करण्यापासून रोखण्यासाठी डेव्हलपर्सना कडक निर्बंध स्पष्टपणे सांगावे लागत होते. आज तेच मॉडेल “match the existing code style” सारख्या एकाच सूचनेवरून अपेक्षित शैली ओळखू शकते. हे नियम आता मदतीऐवजी गोंधळ (noise) ठरत आहेत.

कॉन्टेक्स्ट इंजिनिअरिंगमध्ये काय बदलत आहे

Anthropic ने केलेली ही कपात डेव्हलपर्स प्रॉम्प्ट्सची रचना कशा प्रकारे करत आहेत, यातील व्यापक बदलाचे प्रतिबिंब आहे:

  • एकवेळची महत्त्वपूर्ण सूचना – एखादा नियम एकदाच सांगा आणि मॉडेलला तो लक्षात ठेवू द्या.
  • Few-shot उदाहरणांऐवजी टूल-ड्रिव्हन पॅरामीटर्स – टूल स्कीमामध्ये इनपुट आणि आउटपुटचे स्वरूप स्पष्ट करा आणि मॉडेलला ते भरू द्या.
  • प्रोग्रेसिव्ह डिस्क्लोजर (Progressive disclosure) – सध्याच्या पायरीसाठी आवश्यक असलेला कॉन्टेक्स्टच द्या, गरज पडल्यास नंतर अधिक माहिती जोडा.
  • स्थिर मार्गदर्शनाला टूल वर्णनांमध्ये हलवा – “variables साठी camelCase वापरा” यांसारख्या गोष्टी टूलच्या स्पेसिफिकेशनमध्ये असाव्यात, सिस्टम प्रॉम्प्टमध्ये नाही.
  • हार्डकोडेड नियमांच्या जागी ह्यूरिस्टिक्स (heuristics) वापरा – नियम अटीशिवाय लागू करण्याऐवजी, तो नियम कधी लागू करायचा याचा निर्णय मॉडेलला घेऊ द्या.

हे डावपेच काम करतात कारण मॉडेलला आधीच अशा अनेक परंपरांची माहिती असते ज्यांसाठी पूर्वी स्पष्ट पुष्टीकरणाची गरज भासायची.

अति-कपातीचा धोका

ज्या प्रूनिंगचा (pruning) फायदा फ्रंटियर मॉडेल्सना होतो, तेच लहान मॉडेल्सना नुकसान पोहोचवू शकते. Anthropic ने नमूद केले आहे की Haiku सारखी मॉडेल्स अजूनही योग्य मार्गावर राहण्यासाठी अधिक समृद्ध प्रॉम्प्ट्सवर अवलंबून आहेत. कमी सक्षम मॉडेलमधून खूप जास्त मार्गदर्शन काढून टाकल्यास, मूळ प्रॉम्प्ट ज्या त्रुटी रोखण्याचा प्रयत्न करत होता, त्या पुन्हा उद्भवू शकतात: विसंगत नावे (inconsistent naming), प्रमाणाबाहेर कमेंट्स किंवा सुटलेले एज केसेस (edge cases).

तुमच्या स्वतःच्या प्रॉम्प्ट्सचे ऑडिट कसे करावे

जर तुम्ही कोड-जनरेशन पाइपलाइन हाताळत असाल, तर प्रॉम्प्ट ऑडिटमुळे अनावश्यक गोष्टी (dead weight) शोधता येतील. एक व्यावहारिक चेकलिस्ट खालीलप्रमाणे आहे:

  • सूचनांची घनता पुन्हा तपासा (Re-fit instruction density) – तुम्ही प्रत्यक्षात वापरत असलेल्या मॉडेलनुसार मार्गदर्शनाचे प्रमाण ठरवा.
  • दुबार सूचना काढून टाका – जर एखादा नियम सिस्टम प्रॉम्प्ट आणि टूल डिस्क्रिप्शन दोन्हीमध्ये येत असेल, तर तो फक्त एकदाच ठेवा.
  • काम केलेल्या उदाहरणांचे समृद्ध स्कीमामध्ये रूपांतर करा – प्रत्यक्ष उदाहरणांऐवजी एन्युमरेटेड पॅरामीटर प्रकार किंवा enums वापरा.
  • परिस्थितीजन्य तपशील बाह्य करा (Externalize situational details) – मोठ्या संदर्भ ब्लॉक्सना (reference blocks) वेगळ्या फाईल्समध्ये हलवा, ज्या मॉडेल गरजेनुसार मिळवू शकेल.
  • कालबाह्य वर्तनांशी संबंधित नियम काढून टाका – जर मॉडेल आता नको असलेल्या कमेंट्स जोडत नसेल, तर “no-comment” नियम काढून टाका.

केवळ अंदाजावर अवलंबून राहू नका. एक साधा “3-Test Rule” वापरा: पाच वास्तववादी कोडिंग टास्क चालवा, प्रत्येक डिलीशनच्या आधी आणि नंतरच्या निकालांची तुलना करा आणि कोणत्याही रिग्रेशनची (regressions) नोंद घ्या.

  1. Baseline – पूर्ण प्रॉम्प्टसह कामगिरी मोजा.
  2. Delete – एखादी संभाव्य ओळ किंवा ब्लॉक काढून टाका.
  3. Re-run – तेच पाच टास्क पुन्हा चालवा.

जर आउटपुट बदलले, तर तुम्ही अशी ओळ शोधली आहे जी अजूनही महत्त्वाची आहे. जर बदलले नाही, तर ती ओळ सुरक्षितपणे वगळली जाऊ शकते.

डेव्हलपर्सनी पुढे काय लक्ष दिले पाहिजे

सध्यासाठी, निष्कर्ष स्पष्ट आहे: सिस्टम प्रॉम्प्ट हा एक जिवंत दस्तऐवज आहे. प्रत्येक ओळीचा एक मर्यादित कार्यकाळ (shelf life) आहे असे मानून वागा, नियमितपणे ऑडिट करा आणि मॉडेलची वाढती क्षमता मुख्य कामे करण्यासाठी वापरू द्या.

Source: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9