AI ಏಜೆಂಟ್‌ಗಳಿಗಾಗಿ PRG ಪ್ಯಾಟರ್ನ್

AI ಏಜೆಂಟ್‌ಗಳು 25 ವರ್ಷಗಳ ಹಳೆಯ ತಪ್ಪನ್ನೇ ಪುನರಾವರ್ತಿಸುತ್ತಿವೆ.

90ರ ದಶಕದಲ್ಲಿ, ವೆಬ್ ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ ಒಂದು ದೊಡ್ಡ ದೋಷ (bug) ಇತ್ತು. ಬಳಕೆದಾರರು ಒಂದು ಆರ್ಡರ್ ಮಾಡಿ, ರಿಫ್ರೆಶ್ ಬಟನ್ ಒತ್ತಿದರೆ, ಬ್ರೌಸರ್ ಮತ್ತೆ ಅದೇ ಆರ್ಡರ್ ಅನ್ನು ಕಳುಹಿಸುತ್ತಿತ್ತು. ಇದರಿಂದ ಎರಡು ಬಾರಿ ಹಣ ಕಡಿತವಾಗುತ್ತಿತ್ತು ಮತ್ತು ಗ್ರಾಹಕರು ಕೋಪಗೊಳ್ಳುತ್ತಿದ್ದರು.

ಇದಕ್ಕೆ ಪರಿಹಾರವೇ Post/Redirect/Get (PRG) ಪ್ಯಾಟರ್ನ್. ಇದು ಈ ರೀತಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

  • ಬಳಕೆದಾರರು ಡೇಟಾವನ್ನು ಸಲ್ಲಿಸಲು POST ರಿಕ್ವೆಸ್ಟ್ ಕಳುಹಿಸುತ್ತಾರೆ.
  • ಸರ್ವರ್ ಡೇಟಾವನ್ನು ಪ್ರೊಸೆಸ್ ಮಾಡುತ್ತದೆ.
  • ಸರ್ವರ್ ಹೊಸ URL ಗೆ ರಿಡೈರೆಕ್ಟ್ (redirect) ಕಳುಹಿಸುತ್ತದೆ.
  • ಬ್ರೌಸರ್ ಫಲಿತಾಂಶವನ್ನು ತೋರಿಸಲು GET ರಿಕ್ವೆಸ್ಟ್ ಮಾಡುತ್ತದೆ.

ಬಳಕೆದಾರರು ರಿಫ್ರೆಶ್ ಮಾಡಿದರೆ, ಅವರು ಕೇವಲ GET ರಿಕ್ವೆಸ್ಟ್ ಅನ್ನು ಮಾತ್ರ ಪುನರಾವರ್ತಿಸುತ್ತಾರೆ. ಅಪಾಯಕಾರಿ POST ರಿಕ್ವೆಸ್ಟ್ ಇಲ್ಲದಂತಾಗುತ್ತದೆ.

AI ಏಜೆಂಟ್‌ಗಳು ಈ ದೋಷವನ್ನು ಮತ್ತೆ ತಂದಿವೆ.

ಏಜೆಂಟ್ ಕಾರ್ಡ್ ಚಾರ್ಜ್ ಮಾಡಲು ಅಥವಾ ರೆಕಾರ್ಡ್ ರಚಿಸಲು ಯಾವುದಾದರೂ ಟೂಲ್ ಅನ್ನು ಬಳಸಿದಾಗ, ನೆಟ್‌ವರ್ಕ್ ಕಡಿತಗೊಳ್ಳಬಹುದು. ಆ ಕ್ರಿಯೆಯು ಯಶಸ್ವಿಯಾಯಿತೇ ಎಂದು ಏಜೆಂಟ್‌ಗೆ ತಿಳಿಯುವುದಿಲ್ಲ. ಅದು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಈಗ ಗ್ರಾಹಕನಿಂದ ಎರಡು ಬಾರಿ ಹಣ ಕಡಿತವಾಗುತ್ತದೆ.

ಇದನ್ನು idempotency keys ಬಳಸಿ ಸರಿಪಡಿಸಬಹುದು. Idempotency key ಒಂದು ರಿಡೈರೆಕ್ಟ್‌ನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು "ಕೆಲಸ ಮಾಡುವುದು" ಮತ್ತು "ಫಲಿತಾಂಶವನ್ನು ತೋರಿಸುವುದು" ಎಂಬ ಎರಡನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ.

ಏಜೆಂಟ್‌ಗಳಿಗಾಗಿ ಈ ಪ್ಯಾಟರ್ನ್ ಹೀಗಿರಬೇಕು:

  • ಏಜೆಂಟ್ ಮೊದಲ ಪ್ರಯತ್ನಕ್ಕೂ ಮುನ್ನವೇ ಒಂದು ವಿಶಿಷ್ಟ ಕೀ (unique key) ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
  • ಇದು ಬಳಕೆದಾರರ ID ಮತ್ತು ಕಾರ್ಟ್ ID ನಂತಹ ಸ್ಥಿರ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸುತ್ತದೆ.
  • ಇದು ಪ್ರತಿ ಟೂಲ್ ಕಾಲ್‌ನೊಂದಿಗೆ ಈ ಕೀಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ.
  • ಸರ್ವರ್ ಕೀಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಒಂದು ವೇಳೆ ಅದೇ ಕೀಯನ್ನು ಮತ್ತೆ ಕಂಡರೆ, ಅದು ಕ್ರಿಯೆಯನ್ನು ಎರಡು ಬಾರಿ ಮಾಡುವ ಬದಲು ಹಿಂದಿನ ಫಲಿತಾಂಶವನ್ನೇ ನೀಡುತ್ತದೆ.

ದೀರ್ಘಾವಧಿಯ ಕಾರ್ಯಗಳಿಗಾಗಿ, ಕೇವಲ ಕೀ ಸಾಕಾಗುವುದಿಲ್ಲ. ನಿಮಗೆ ಚೆಕ್‌ಪಾಯಿಂಟಿಂಗ್ (checkpointing) ಬೇಕಾಗುತ್ತದೆ. ನೀವು ಪ್ರತಿ ಹಂತದಲ್ಲೂ ಸ್ಥಿತಿಯನ್ನು (state) ಉಳಿಸಿಕೊಳ್ಳಬೇಕು. ಇದರಿಂದ ಮರುಪ್ರಾರಂಭಿಸಿದಾಗ ಎಲ್ಲಿ ನಿಂತಿದೆಯೋ ಅಲ್ಲಿಂದಲೇ ಕೆಲಸ ಮುಂದುವರಿಯುತ್ತದೆ.

ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸುವ ಯಾವುದೇ ಏಜೆಂಟ್ ಟೂಲ್‌ಗಾಗಿ ಈ ನಿಯಮಗಳನ್ನು ಪಾಲಿಸಿ:

  • ಪ್ರತಿಯೊಂದು ಮ್ಯುಟೇಟಿಂಗ್ (mutating) ಟೂಲ್ ಕೂಡ idempotency ಕೀಯನ್ನು ಸ್ವೀಕರಿಸಬೇಕು.
  • ಕೀಯನ್ನು ಬಳಕೆದಾರರ ಉದ್ದೇಶದಿಂದ (user intent) ಪಡೆಯಿರಿ, ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ನಿಂದಲ್ಲ.
  • ಮೊದಲ ಪ್ರಯತ್ನಕ್ಕೂ ಮುನ್ನವೇ ಕೀಯನ್ನು ಸೃಷ್ಟಿಸಿ.
  • ಪ್ರತಿ ಮರುಪ್ರಯತ್ನದಲ್ಲೂ ಅದೇ ಕೀಯನ್ನು ಬಳಸಿ.
  • ದೀರ್ಘಾವಧಿಯ ಕಾರ್ಯಗಳಿಗಾಗಿ, ಪ್ರತಿ ಮಧ್ಯಂತರ ಹಂತವನ್ನು ಚೆಕ್‌ಪಾಯಿಂಟ್ ಮಾಡಿ.

ಪದರಗಳು ಬದಲಾಗಬಹುದು, ಆದರೆ ತರ್ಕ (logic) ಒಂದೇ ಆಗಿರುತ್ತದೆ.

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

Optional learning community: https://t.me/GyaanSetuAi