ನಿಮ್ಮ ಏಜೆಂಟ್ ಡೆಮೊ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಅದೇ ಒಂದು ಬಲೆ.

ನಾನು ಕಂಪನಿಗಳಿಗಾಗಿ AI ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತೇನೆ. ನಾನು ಆಗಾಗ್ಗೆ ಒಂದೇ ರೀತಿಯ ಮಾದರಿಯನ್ನು ನೋಡುತ್ತೇನೆ. ಡೆಮೊದಲ್ಲಿ ಮಾಡೆಲ್ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ನೀವು ಉತ್ಪನ್ನವನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತೀರಿ. ನಂತರ ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ಪ್ರತಿ ಮೂರು ಬಾರಿಗಳಲ್ಲಿ ಒಂದು ಬಾರಿ ಅದು ವಿಫಲವಾಗುತ್ತದೆ. ಏಕೆ ಎಂದು ಯಾರಿಗೂ ತಿಳಿಯುವುದಿಲ್ಲ.

ಡೆಮೊ ಮತ್ತು ಪ್ರೊಡಕ್ಷನ್ ನಡುವಿನ ಅಂತರವು ಗಣಿತಕ್ಕೆ ಸಂಬಂಧಿಸಿದ್ದು. ಒಮ್ಮೆ ನೀವು ಆ ಗಣಿತವನ್ನು ಅರ್ಥಮಾಡಿಕೊಂಡರೆ, ನೀವು ವಿಭಿನ್ನವಾಗಿ ನಿರ್ಮಿಸುತ್ತೀರಿ.

ನಿಮ್ಮ ಏಜೆಂಟ್‌ನ ಪ್ರತಿಯೊಂದು ಹಂತವು 95% ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದ್ದರೆ, ಅದು ಕೇಳಲು ಚೆನ್ನಾಗಿರುತ್ತದೆ. ಆದರೆ ಏಜೆಂಟ್‌ಗಳು ಹಂತಗಳ ಸರಪಳಿಯನ್ನು (chains of steps) ಬಳಸುತ್ತವೆ. ನೀವು ಹತ್ತು ಹಂತಗಳನ್ನು ಒಟ್ಟಿಗೆ ಜೋಡಿಸಿದರೆ, ನಿಮ್ಮ ಯಶಸ್ಸಿನ ಪ್ರಮಾಣವು 60% ಕ್ಕೆ ಇಳಿಯುತ್ತದೆ. ನೀವು ಇಪ್ಪತ್ತು ಹಂತಗಳನ್ನು ಬಳಸಿದರೆ, ನಿಮ್ಮ ಯಶಸ್ಸಿನ ಪ್ರಮಾಣವು 36% ಕ್ಕೆ ಇಳಿಯುತ್ತದೆ.

ನೈಜ ಕೆಲಸದಲ್ಲಿ, ಹಂತಗಳು ಹೆಚ್ಚಾಗಿ 10% ರಿಂದ 20% ರಷ್ಟು ದೋಷದ ಪ್ರಮಾಣವನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಒಂದು ಏಜೆಂಟ್ 85% ವಿಶ್ವಾಸಾರ್ಹತೆಯೊಂದಿಗೆ ಎಂಟು ಹಂತಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಅದು 75% ರಷ್ಟು ಸಮಯದಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ.

ಮಾಡೆಲ್ ಸಮಸ್ಯೆಯಲ್ಲ. ಸಂಯೋಜಿತ ಸಂಭವನೀಯತೆ (Compounding probability) ಸಮಸ್ಯೆಯಾಗಿದೆ.

ಡೆಮೊವು ಕೇವಲ ಒಂದು ಸುಗಮ ಹಾದಿಯನ್ನು (happy path) ತೋರಿಸುತ್ತದೆ. ಇದು ಸ್ವಚ್ಛವಾದ ಇನ್‌ಪುಟ್ ಮತ್ತು ಚಿಕ್ಕ ಸರಪಳಿಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ರೊಡಕ್ಷನ್ ನೂರಾರು ಬಳಕೆದಾರರಿಂದ ಬರುವ ಅಸ್ತವ್ಯಸ್ತವಾದ ಡೇಟಾವನ್ನು ಬಳಸುತ್ತದೆ. ಇದು ಗುಪ್ತ ಹಂತಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ದೀರ್ಘ ಸರಪಳಿಗಳನ್ನು ಬಳಸುತ್ತದೆ.

ಏಜೆಂಟ್‌ಗಳಲ್ಲಿನ ವೈಫಲ್ಯವು ಕ್ರ್ಯಾಶ್ (crash) ಆಗಿದೆಯೇನೋ ಹಾಗೆ ಕಾಣಿಸುವುದಿಲ್ಲ. ಅದು ಒಂದು ಮೌನ ದೋಷದಂತೆ ಕಾಣುತ್ತದೆ.

ಹಂತ 3 ಒಂದು ಫೀಲ್ಡ್ ಅನ್ನು ತಪ್ಪಾಗಿ ಓದುತ್ತದೆ. ಔಟ್‌ಪುಟ್ ಇನ್ನೂ ಸರಿಯಾದ JSON ನಂತೆ ಕಾಣುತ್ತದೆ. ಹಂತ 4 ಆ ತಪ್ಪಾದ ಡೇಟಾವನ್ನು ತರ್ಕಿಸಲು ಬಳಸುತ್ತದೆ. ಹಂತ 5 ರಿಂದ 8 ರವರೆಗೆ ಆ ತಪ್ಪಿನ ಮೇಲೆ ನಿರ್ಮಾಣವಾಗುತ್ತವೆ. ಅಂತಿಮ ಉತ್ತರ ತಪ್ಪಾಗಿರುತ್ತದೆ ಆದರೆ ನಂಬಲರ್ಹವಾಗಿ ಕಾಣುತ್ತದೆ. ಎಲ್ಲಿ ತಪ್ಪಾಗಿದೆ ಎಂದು ತೋರಿಸಲು ಯಾವುದೇ ಎರರ್ ಲಾಗ್ (error log) ಇರುವುದಿಲ್ಲ.

ಮಾಡೆಲ್ 'ಹ್ಯಾಲ್ಯುಸಿನೇಟ್' (hallucinated) ಮಾಡಿದೆ ಎಂದು ಹೇಳುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಮಾಡೆಲ್ ಕೇವಲ ತನಗೆ ಬಂದ ತಪ್ಪಾದ ಡೇಟಾವನ್ನು ಮುಂದಕ್ಕೆ ವರ್ಗಾಯಿಸಿದೆ ಅಷ್ಟೆ. ಹಂತ 3 ರಲ್ಲಿನ ದೋಷವನ್ನು ಪತ್ತೆಹಚ್ಚಲು ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಚೆಕ್‌ಪಾಯಿಂಟ್ ಇರಲಿಲ್ಲ.

ಏಜೆಂಟ್ ಅನ್ನು ಕೇವಲ ಒಂದು ಪ್ರಾಂಪ್ಟ್ (prompt) ಎಂದು ಪರಿಗಣಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಅದನ್ನು ಒಂದು ಸಿಸ್ಟಮ್ (system) ಎಂದು ಪರಿಗಣಿಸಲು ಪ್ರಾರಂಭಿಸಿ.

ವಿಶ್ವಾಸಾರ್ಹ ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಈ ನಿಯಮಗಳನ್ನು ಅನುಸರಿಸಿ:

  • ಏಜೆಂಟ್‌ನ ಹೊರಗೆ ಸ್ಟೇಟ್ (state) ಅನ್ನು ಉಳಿಸಿ. ಸ್ಟೇಟ್ ಅನ್ನು ಸಂಭಾಷಣೆಯಲ್ಲಿ ಅಲ್ಲದೆ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಇರಿಸಿ. ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ಹಂತ 6 ರಲ್ಲಿ ವಿಫಲವಾದರೆ, ನೀವು ಹಂತ 6 ರಿಂದಲೇ ಪುನರಾರಂಭಿಸಬಹುದು. ನೀವು ಇಡೀ ಸರಪಳಿಯನ್ನು ಮತ್ತೆ ಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿಲ್ಲ.

  • ಬೌಂಡರಿಗಳಲ್ಲಿ ವ್ಯಾಲಿಡೇಟ್ (Validate) ಮಾಡಿ. ಪ್ರತಿಯೊಂದು ಇನ್‌ಪುಟ್ ಮತ್ತು ಔಟ್‌ಪುಟ್ ಅನ್ನು ಸ್ಕೀಮಾದೊಂದಿಗೆ (schema) ಪರಿಶೀಲಿಸಿ. ದೋಷವು ಎಲ್ಲಿ ಸಂಭವಿಸುತ್ತದೆಯೋ ಅದೇ ಹಂತದಲ್ಲಿ ಅದನ್ನು ಪತ್ತೆಹಚ್ಚಿ. ಇದು ನಿಗೂಢತೆಯನ್ನು ಸರಿಪಡಿಸಬಹುದಾದ ದೋಷವನ್ನಾಗಿ ಬದಲಾಯಿಸುತ್ತದೆ.

  • ಸೈಡ್ ಎಫೆಕ್ಟ್‌ಗಳನ್ನು (side effects) ಐಡೆಂಪೊಟೆಂಟ್ (idempotent) ಆಗಿ ಮಾಡಿ. ಹಂತಗಳು ವಿಫಲವಾದಾಗ ನೀವು ಅವುಗಳನ್ನು ಮರುಪ್ರಯತ್ನಿಸಬೇಕು (retry). ಒಂದು ಹಂತವು ಇಮೇಲ್ ಕಳುಹಿಸಿದರೆ ಅಥವಾ ಕಾರ್ಡ್‌ನಿಂದ ಹಣ ಕಡಿತಗೊಳಿಸಿದರೆ, ಐಡೆಂಪೊಟೆನ್ಸಿ ಕೀ (idempotency key) ಬಳಸಿ. ಇದು ಮರುಪ್ರಯತ್ನದ ಸಮಯದಲ್ಲಿ ಪುನರಾವರ್ತಿತ ಕ್ರಮಗಳನ್ನು ತಡೆಯುತ್ತದೆ.

  • ನಿಮ್ಮ CI ನಲ್ಲಿ ಇವ್ಯಾಲ್ಸ್ (evals) ಬಳಸಿ. ಪ್ರತಿಯೊಂದು ಸಣ್ಣ ಬದಲಾವಣೆಯೊಂದಿಗೆ ಏಜೆಂಟ್ ನಡವಳಿಕೆಯು ಬದಲಾಗುತ್ತದೆ. ಒಂದು ಪ್ರಾಂಪ್ಟ್ ಬದಲಾವಣೆಯು ಒಂದು ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಬಹುದು ಆದರೆ ಇತರ ಐದು ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡಬಹುದು. ಇಂತಹ ರಿಗ್ರೆಷನ್‌ಗಳನ್ನು (regressions) ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚಲು ಟೆಸ್ಟ್ ಸೆಟ್ ಬಳಸಿ.

ಡೆಮೊದಿಂದ ನೈಜ ಉತ್ಪನ್ನಕ್ಕೆ ಬದಲಾಗುವುದು ಎಂಜಿನಿಯರಿಂಗ್ ಬಗ್ಗೆಯಾಗಿದೆ. ಇದು ಎರರ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ (error handling), ಸ್ಟೇಟ್ ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ (state management) ಮತ್ತು ಅಬ್ಸರ್ವೇಬಿಲಿಟಿ (observability) ಬಗ್ಗೆಯಾಗಿದೆ. ಇದು ಕೇವಲ ಉತ್ತಮ ಪ್ರಾಂಪ್ಟ್‌ಗಳ ಬಗ್ಗೆ ಅಲ್ಲ.

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

Source: https://dev.to/sagar_jain4010/your-agent-demo-works-thats-the-trap-4joc

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