AI ஏஜென்ட்களுக்கான PRG முறை

AI ஏஜென்ட்கள் ஒரு பழைய சிக்கலை எதிர்கொள்கின்றன. இது 90-களில் இணையப் படிவங்களை (web forms) பாதித்த அதே பிழைதான்.

பழைய இணையக் காலத்தில், ஒரு பயனர் ஒரு படிவத்தைச் சமர்ப்பிப்பார். அவர்கள் 'refresh' செய்தால், பிரவுசர் அந்தத் தரவை மீண்டும் சமர்ப்பிக்கும். இதன் விளைவாக இரண்டு ஆர்டர்கள், இரண்டு கட்டணங்கள் அல்லது இரண்டு மின்னஞ்சல்கள் அனுப்பப்படலாம்.

இதற்கான தீர்வு Post/Redirect/Get (PRG) முறை ஆகும்.

இதன் தர்க்கம் (logic) எளிமையானது:

  • பயனர் ஒரு POST கோரிக்கையை (request) அனுப்புகிறார்.
  • சர்வர் அந்த வேலையைச் செய்கிறது.
  • சர்வர் ஒரு புதிய URL-க்கு 302 Redirect-ஐ அனுப்புகிறது.
  • பிரவுசர் அந்த redirect-ஐப் பின்பற்றி ஒரு GET கோரிக்கையை அனுப்புகிறது.

இப்போது 'refresh' செய்வது முடிவுப் பக்கத்தை (result page) மட்டுமே மீண்டும் ஏற்றும். அது செயலைத் திரும்பச் செய்யாது.

AI ஏஜென்ட்கள் இந்த பிழையை ஒரு புதிய தளத்திற்குத் கொண்டு வந்துவிட்டன.

ஒரு ஏஜென்ட் கார்டில் பணம் வசூலிக்க அல்லது ஒரு பதிவை (record) உருவாக்க ஒரு கருவியைத் (tool) அழைக்கும்போது, விஷயங்கள் தவறாகின்றன. நெட்வொர்க் துண்டிக்கப்படலாம். ஒரு கன்டெய்னர் (container) மீண்டும் தொடங்கலாம். ரேட் லிமிட் (rate limit) வரலாம். முந்தைய அழைப்பு வெற்றியடைந்ததா இல்லையா என்பது ஏஜென்ட்க்குத் தெரியாது. எனவே, அது மீண்டும் முயற்சிக்கிறது.

ஒரு தீர்வு இல்லையென்றால், ஏஜென்ட் நகல் ஆர்டர்களை உருவாக்கி வாடிக்கையாளர்களைக் கோபமடையச் செய்யும்.

நீங்கள் உங்கள் agentic pipelines-களில் idempotency keys-களைப் பயன்படுத்தி PRG முறையைப் பயன்படுத்த வேண்டும்.

Idempotency key என்பது உங்கள் redirect போன்றது. இது செயலை முடிவிலிருந்து பிரிக்கிறது.

இதைச் செயல்படுத்துவது எப்படி:

  • மாற்றங்களைச் செய்யும் (mutating) ஒவ்வொரு கருவியும் ஒரு idempotency key-ஐ ஏற்க வேண்டும்.
  • முதல் முயற்சியின் முன்பே அந்தத் திறவுகோலை (key) உருவாக்க வேண்டும்.
  • திறவுகோலை பயனரின் நோக்கத்திலிருந்து (user intent) பெற வேண்டும், நேர முத்திரையிலிருந்து (timestamp) அல்ல.
  • சர்வர் அந்தத் திறவுகோலை இதற்கு முன்பே பார்த்ததா என்பதைச் சரிபார்க்க வேண்டும்.
  • திறவுகோல் ஏற்கனவே இருந்தால், பணியை மீண்டும் செய்வதற்குப் பதிலாக சேமிக்கப்பட்ட முடிவைத் திருப்பி அனுப்ப வேண்டும்.

நீண்ட பணிகளுக்கு, ஒரு திறவுகோலைத் தாண்டி உங்களுக்கு இன்னும் ஒன்று தேவை. அதுதான் checkpointing.

Checkpointing ஒவ்வொரு நிலையிலும் நிலையைச் (state) சேமிக்கிறது. இருபது நிமிடப் பணியின் பாதியில் ஏஜென்ட் செயலிழந்தால், அது விட்ட இடத்திலிருந்தே தொடரும். மீண்டும் ஆரம்பத்திலிருந்து தொடங்காது.

நீங்கள் ஒன்றை மட்டுமே செய்ய முடியும் என்றால், ஒவ்வொரு கருவி அழைப்பையும் (tool call) இரண்டு முறை இயக்குவதற்குப் பாதுகாப்பானதாக மாற்றவும்.

இந்த ஐந்து சரிபார்ப்புகளுடன் உங்கள் ஏஜென்ட்களை உருவாக்குங்கள்:

  • ஒவ்வொரு கருவியும் ஒரு idempotency key-ஐ ஏற்கிறதா?
  • திறவுகோல் நேரத்தை விட நோக்கத்தின் அடிப்படையில் உள்ளதா?
  • ஒவ்வொரு மறுமுயற்சியிலும் அதே திறவுகோல் பயன்படுத்தப்படுகிறதா?
  • நகல் திறவுகோல்களுக்கு சர்வர் சேமிக்கப்பட்ட முடிவுகளைத் திருப்பி அனுப்புகிறதா?
  • நீண்ட பணிகளுக்கு இடைநிலை நிலைகள் (intermediate steps) சேமிக்கப்படுகின்றனவா?

முறை ஒன்றுதான். தளம் மட்டுமே மாறியுள்ளது.

மூலம்: https://dev.to/ravikiran438/the-prg-pattern-for-ai-agents-a-25-year-old-fix-coming-of-age-in-a-new-era-23fh