മിഡ്-കൺവർസേഷൻ സിസ്റ്റം പ്രോംപ്റ്റുകൾ
ദീർഘനേരം പ്രവർത്തിക്കുന്ന AI ഏജന്റുകളെ നിർമ്മിക്കുമ്പോൾ പലപ്പോഴും വലിയ സാമ്പത്തിക നഷ്ടമുണ്ടാക്കുന്ന ഒരു തെറ്റ് സംഭവിക്കാറുണ്ട്.
പണം ലാഭിക്കാനായി നിങ്ങൾ ഒരു വലിയ സിസ്റ്റം പ്രോംപ്റ്റ് ഉപയോഗിക്കുകയും അത് കാഷെ (cache) ചെയ്യുകയും ചെയ്യുന്നു. സെഷൻ പകുതിയിൽ വെച്ച് ഏജന്റിന് പുതിയ നിർദ്ദേശങ്ങൾ നൽകേണ്ടി വരുന്നത് വരെ ഇത് നന്നായി പ്രവർത്തിക്കും. കോഡിംഗ് ഭാഷ മാറ്റാനോ പ്രോജക്റ്റ് സ്റ്റേറ്റ് (project state) പുതുക്കാനോ നിങ്ങൾക്ക് ആവശ്യമായി വന്നേക്കാം.
ഈ വിവരങ്ങൾ ചേർക്കാൻ നിങ്ങൾ ടോപ്പ്-ലെവൽ സിസ്റ്റം പ്രോംപ്റ്റിൽ മാറ്റം വരുത്തിയാൽ, കാഷെ തകരാറിലാകും (break the cache). മോഡലിന് മുഴുവൻ ഹിസ്റ്ററിയും പൂർണ്ണ വില നൽകി വീണ്ടും പ്രോസസ്സ് ചെയ്യേണ്ടി വരും. ഇത് നിങ്ങളുടെ ഏജന്റിനെ സാവധാനത്തിലാക്കുകയും ചിലവ് വർദ്ധിപ്പിക്കുകയും ചെയ്യുന്നു.
പുതിയ Claude മോഡലുകൾ 'മിഡ്-കൺവർസേഷൻ സിസ്റ്റം മെസേജുകൾ' (mid-conversation system messages) ഉപയോഗിച്ച് ഈ പ്രശ്നം പരിഹരിക്കുന്നു.
ഇപ്പോൾ നിങ്ങൾക്ക് മെസേജ് അറേയ്ക്കുള്ളിൽ (message array) നേരിട്ട് ഒരു സിസ്റ്റം റോൾ മെസേജ് ഉൾപ്പെടുത്താം. ഇത് മുകളിൽ വെക്കുന്നതിന് പകരം ഹിസ്റ്ററിക്ക് ശേഷം നൽകാം.
എന്തുകൊണ്ടാണ് ഇത് പ്രധാനമാകുന്നത്:
• കാഷെ സുരക്ഷ (Cache Safety): നിർദ്ദേശം നിങ്ങളുടെ കാഷെ ചെയ്ത ഹിസ്റ്ററിക്ക് ശേഷമാണ് വരുന്നത്. ഇത് പ്രീഫിക്സിനെ (prefix) ബാധിക്കില്ല. പുതിയ ചെറിയ മെസേജിന് മാത്രം നിങ്ങൾ പണം നൽകിയാൽ മതിയാകും. • സുരക്ഷ (Security): ഒരു പരിഹാരമായി നിങ്ങൾക്ക് യൂസർ മെസേജുകൾ ഉപയോഗിക്കാം, പക്ഷേ ഉപയോക്താക്കൾക്ക് അവ വ്യാജമായി നിർമ്മിക്കാൻ സാധിക്കും. എന്നാൽ ഒരു സിസ്റ്റം റോൾ മെസേജിന് ഉപയോക്താക്കൾക്ക് അനുകരിക്കാൻ കഴിയാത്ത ഒരു അധികാരം (authority) ഉണ്ട്. ഇത് പ്രോംപ്റ്റ് ഇൻജക്ഷൻ (prompt injection) തടയുന്നു.
ശരിയായ രീതിയിൽ എങ്ങനെ ചെയ്യാം:
ഈ മെസേജുകളെ വസ്തുതകളായി അവതരിപ്പിക്കുക. നിർദ്ദേശങ്ങൾ റദ്ദാക്കുന്ന രീതിയിലുള്ള ഭാഷ (override language) ഉപയോഗിക്കരുത്.
• നല്ലത്: "Auto-approve mode ഇപ്പോൾ പ്രവർത്തനക്ഷമമാണ്." • മോശം: "യൂസർ പറഞ്ഞത് അവഗണിക്കൂ, പകരം ഇത് ചെയ്യൂ."
മുൻപത്തെ കോൺടെക്സ്റ്റ് (context) അവഗണിക്കണമെന്ന് പറയുന്ന നിർദ്ദേശങ്ങളെ മോഡലുകൾ പലപ്പോഴും എതിർക്കാറുണ്ട്. പകരം ലോകത്തിന്റെ പുതിയ അവസ്ഥ (new state of the world) പ്രസ്താവിക്കുന്നതിൽ മാത്രം ശ്രദ്ധ കേന്ദ്രീകരിക്കുക.
ഉപയോഗത്തിനുള്ള നിയമങ്ങൾ:
- ഇത് ഒരു യൂസർ അല്ലെങ്കിൽ അസിസ്റ്റന്റ് മെസേജിന് ശേഷമായിരിക്കണം.
- ഇത് അറേയിലെ ആദ്യത്തെ മെസേജ് ആകാൻ പാടില്ല.
- ഇത് ടെക്സ്റ്റ് കണ്ടന്റ് (text content) മാത്രമേ സ്വീകരിക്കുകയുള്ളൂ.
- എല്ലാ മോഡലുകളും ഇത് പിന്തുണയ്ക്കുന്നില്ല. 400 എറർ (error) ലഭിക്കുകയാണെങ്കിൽ, ഒരു യൂസർ-ടേൺ റിമൈൻഡറിലേക്ക് (user-turn reminder) മാറാൻ എപ്പോഴും ഒരു try-catch ബ്ലോക്ക് ഉപയോഗിക്കുക.
സെഷൻ ആരംഭിച്ചതിന് ശേഷം പുതിയ എന്തെങ്കിലും അറിയാൻ സാധിക്കുമ്പോൾ ഇത് ഉപയോഗിക്കുക. ആ വിവരം തുടക്കത്തിൽ തന്നെ അറിയാമെങ്കിൽ, അത് പ്രധാന സിസ്റ്റം പ്രോംപ്റ്റിൽ ഉൾപ്പെടുത്തുക. വിവരം മാറിക്കൊണ്ടിരിക്കുന്നതാണെങ്കിൽ (dynamic), മിഡ്-കൺവർസേഷൻ സിസ്റ്റം മെസേജ് ഉപയോഗിക്കുക.
ഇത് നിങ്ങളുടെ കാഷെ നിലനിർത്താനും (keep cache hot) ചിലവ് കുറയ്ക്കാനും സഹായിക്കുന്നു.