𝟳 𝗖𝗿𝗶𝘁𝗶𝗰𝗮𝗹 𝗠𝗶𝘀𝘁𝗮𝗸𝗲𝘀 𝗧𝗵𝗮𝘁 𝗕𝗿𝗲𝗮𝗸 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀
ನಿಮ್ಮ AI ಏಜೆಂಟ್ ಟೆಸ್ಟಿಂಗ್ನಲ್ಲಿ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಅದು ವೇಗವಾಗಿ ಮತ್ತು ನಿಖರವಾಗಿ ಇರುತ್ತದೆ. ನಂತರ ನೀವು ಅದನ್ನು ಪ್ರೊಡಕ್ಷನ್ಗೆ (production) ನಿಯೋಜಿಸುತ್ತೀರಿ. ಇದ್ದಕ್ಕಿದ್ದಂತೆ, ಬಳಕೆದಾರರು ಟೈಮೌಟ್ (timeouts) ಮತ್ತು ದೋಷಗಳ (errors) ಬಗ್ಗೆ ವರದಿ ಮಾಡುತ್ತಾರೆ.
ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವವುಳ್ಳ (resilient) AI ಏಜೆಂಟ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಕೇವಲ ಉತ್ತಮ ಕೋಡ್ ಸಾಕಾಗುವುದಿಲ್ಲ. ಪ್ರೊಡಕ್ಷನ್ನ ಸಂಕೀರ್ಣ ವಾಸ್ತವಕ್ಕೆ ನೀವು ಸಿದ್ಧರಾಗಿರಬೇಕು.
AI ಏಜೆಂಟ್ಗಳನ್ನು ಹಾಳುಮಾಡುವ 7 ತಪ್ಪುಗಳು ಮತ್ತು ಅವುಗಳನ್ನು ಸರಿಪಡಿಸುವ ವಿಧಾನಗಳು ಇಲ್ಲಿವೆ.
- ಬಾಹ್ಯ API ವೈಫಲ್ಯಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುವುದು API ಕರೆಗಳು ಯಾವಾಗಲೂ ಕೆಲಸ ಮಾಡುತ್ತವೆ ಎಂದು ಡೆವಲಪರ್ಗಳು ಹೆಚ್ಚಾಗಿ ಭಾವಿಸುತ್ತಾರೆ. ಆದರೆ ಅವು ಹಾಗೆ ಇರುವುದಿಲ್ಲ. ಟೈಮೌಟ್ ಅಥವಾ ರೇಟ್ ಲಿಮಿಟ್ಗಳಿಂದಾಗಿ (rate limits) ನೆಟ್ವರ್ಕ್ ವಿನಂತಿಗಳು ವಿಫಲವಾಗುತ್ತವೆ.
- ಎಲ್ಲಾ ಕರೆಗಳನ್ನು
try-catchಬ್ಲಾಕ್ಗಳಲ್ಲಿ ಇರಿಸಿ. - ಪ್ರತಿ ವಿನಂತಿಗೂ ನಿರ್ದಿಷ್ಟ ಟೈಮೌಟ್ ಮೌಲ್ಯಗಳನ್ನು ನಿಗದಿಪಡಿಸಿ.
- ಎಕ್ಸ್ಪೋನೆನ್ಶಿಯಲ್ ಬ್ಯಾಕ್ಆಫ್ (exponential backoff) ನೊಂದಿಗೆ ರಿಟ್ರೈ ಲಾಜಿಕ್ ಅನ್ನು ಸೇರಿಸಿ.
- ವೈಫಲ್ಯಗೊಳ್ಳುತ್ತಿರುವ ಸೇವೆಗಳಿಗಾಗಿ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳನ್ನು (circuit breakers) ಬಳಸಿ.
- ವೈಫಲ್ಯಗಳನ್ನು ಬೈನರಿ (Binary) ಎಂದು ಪರಿಗಣಿಸುವುದು ಒಂದು ಸಿಸ್ಟಮ್ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಅಥವಾ ವಿಫಲವಾಗುತ್ತದೆ ಎಂದು ಅನೇಕ ಡೆವಲಪರ್ಗಳು ಭಾವಿಸುತ್ತಾರೆ. ವಾಸ್ತವದಲ್ಲಿ, ಸಿಸ್ಟಮ್ನ ಕೆಲವು ಭಾಗಗಳು ವಿಫಲವಾದರೂ ಇತರ ಭಾಗಗಳು ಆನ್ಲೈನ್ನಲ್ಲಿ ಇರುತ್ತವೆ.
- ಮಲ್ಟಿ-ಟಿಯರ್ ಫಾಲ್ಬ್ಯಾಕ್ (multi-tier fallback) ಕಾರ್ಯತಂತ್ರಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿ.
- ಕಡಿಮೆ ಕಾರ್ಯಕ್ಷಮತೆಯು (reduced functionality) ಹೇಗಿರುತ್ತದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ.
- ಲಭ್ಯವಿರುವ ಘಟಕಗಳನ್ನು (components) ಬಳಸಿ ವಿನಂತಿಗಳನ್ನು ನೀಡುತ್ತಲೇ ಇರಿ.
- ಕಳಪೆ ಲಾಗಿಂಗ್ ಮತ್ತು ದೃಶ್ಯೀಕರಣ (Visibility) ನಿಮ್ಮ ಬಳಿ ಕನಿಷ್ಠ ಲಾಗ್ಗಳಿದ್ದರೆ, ಸೇವೆಯ ವ್ಯತ್ಯಯದ ಸಮಯದಲ್ಲಿ (outage) ನೀವು ಅಂಧರಾಗಿದ್ದೀರಿ ಎಂದರ್ಥ. ನೀವು ನೋಡಲಾಗದ ವಸ್ತುವನ್ನು ಸರಿಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
- INFO ಮತ್ತು ERROR ನಂತಹ ವಿವಿಧ ಹಂತಗಳಲ್ಲಿ ಲಾಗ್ ಮಾಡಿ.
- ಬಳಕೆದಾರರ ಹಾದಿಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು ರಿಕ್ವೆಸ್ಟ್ ಐಡಿಗಳನ್ನು (request IDs) ಬಳಸಿ.
- ರೆಸ್ಪಾನ್ಸ್ ಟೈಮ್ ಪರ್ಸೆಂಟೈಲ್ಗಳನ್ನು (response time percentiles - p50, p95, p99) ಟ್ರ್ಯಾಕ್ ಮಾಡಿ.
- ದೋಷದ ದರದಲ್ಲಿ ಏರಿಕೆ ಕಂಡುಬಂದಾಗ ಅಲರ್ಟ್ಗಳನ್ನು ಹೊಂದಿಸಿ.
- ಕೇವಲ 'ಹ್ಯಾಪಿ ಪಥ್ಗಳನ್ನು' (Happy Paths) ಮಾತ್ರ ಪರೀಕ್ಷಿಸುವುದು ನೀವು ಕೇವಲ ಯಶಸ್ವಿ ಕಾರ್ಯಚಟುವಟಿಕೆಗಳನ್ನು ಮಾತ್ರ ಪರೀಕ್ಷಿಸಿದರೆ, ನಿಮ್ಮ ಏಜೆಂಟ್ ಒತ್ತಡದಿಂದ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.
- ಅವಲಂಬನೆಗಳನ್ನು (dependencies) ಪರೀಕ್ಷಿಸಲು ಚಾಸ್ ಇಂಜಿನಿಯರಿಂಗ್ (chaos engineering) ಬಳಸಿ.
- ನೆಟ್ವರ್ಕ್ ವಿಳಂಬ (latency) ಮತ್ತು ಟೈಮೌಟ್ಗಳನ್ನು ಅನುಕರಿಸುವ (simulate) ಪ್ರಯತ್ನ ಮಾಡಿ.
- ತಪ್ಪಾದ ಡೇಟಾ ಫಾರ್ಮ್ಯಾಟ್ಗಳೊಂದಿಗೆ ಪರೀಕ್ಷಿಸಿ.
- ನಿಮ್ಮ ನಿರೀಕ್ಷಿತ ಸಾಮರ್ಥ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಲೋಡ್ ಟೆಸ್ಟ್ಗಳನ್ನು (load tests) ನಡೆಸಿ.
- ಏಜೆಂಟ್ ಸ್ಥಿತಿಯನ್ನು (Agent State) ಕಳೆದುಕೊಳ್ಳುವುದು ಏಜೆಂಟ್ ತನ್ನ ಪ್ರಗತಿಯನ್ನು ಉಳಿಸದೆ ಕ್ರ್ಯಾಶ್ (crash) ಆದರೆ, ಅದು ಎಲ್ಲಾ ಸಂದರ್ಭಗಳನ್ನು (context) ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ.
- ಪ್ರಮುಖ ಮೈಲಿಗಲ್ಲುಗಳಲ್ಲಿ ಸ್ಥಿತಿಯನ್ನು ಚೆಕ್ಪಾಯಿಂಟ್ ಮಾಡಿ.
- ಪುನರಾವರ್ತಿತ ಕ್ರಿಯೆಗಳನ್ನು ತಡೆಯಲು ಐಡೆಂಪೊಟೆಂಟ್ (idempotent) ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಬಳಸಿ.
- ವರ್ಕ್ಫ್ಲೋಗಳನ್ನು (workflows) ಪುನರಾರಂಭಿಸಲು ಸಾಕಷ್ಟು ಸಂದರ್ಭವನ್ನು (context) ಸಂಗ್ರಹಿಸಿ.
- ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಹಾರ್ಡ್ಕೋಡಿಂಗ್ ಮಾಡುವುದು ಟೈಮೌಟ್ಗಳು ಮತ್ತು API ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ನೇರವಾಗಿ ನಿಮ್ಮ ಕೋಡ್ನಲ್ಲಿ ಬರೆಯುವುದು ಅಪ್ಡೇಟ್ಗಳನ್ನು ನಿಧಾನಗೊಳಿಸುತ್ತದೆ.
- ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳಿಗೆ (environment variables) ವರ್ಗಾಯಿಸಿ.
- ಹೊಸ ನಡವಳಿಕೆಗಳಿಗಾಗಿ ಫೀಚರ್ ಫ್ಲಾಗ್ಗಳನ್ನು (feature flags) ಬಳಸಿ.
- ಕೋಡ್ ಅನ್ನು ಮರು-ನಿಯೋಜಿಸದೆ (redeploying) ಮಿತಿಯನ್ನು (thresholds) ಹೊಂದಿಸಬಲ್ಲದನ್ನಾಗಿ ಮಾಡಿ.
- ಸಾಮಾನ್ಯ ದೋಷ ನಿರ್ವಹಣೆ (Generic Error Handling) ಪ್ರತಿಯೊಂದು ದೋಷಕ್ಕೂ ಒಂದೇ ರೀತಿಯ ಪರಿಹಾರವನ್ನು ಬಳಸುವುದು ತಪ್ಪು. ವ್ಯಾಲಿಡೇಶನ್ ದೋಷಕ್ಕೆ (validation error) ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಟೈಮೌಟ್ಗೆ ಬೇರೆ ಬೇರೆ ಪ್ರತಿಕ್ರಿಯೆಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ.
- ಪುನರಾವರ್ತಿಸಬಹುದಾದ ದೋಷಗಳನ್ನು (retriable errors) ಶಾಶ್ವತ ದೋಷಗಳಿಂದ (permanent errors) ಪ್ರತ್ಯೇಕಿಸಿ.
- ರೇಟ್ ಲಿಮಿಟ್ಗಳಂತಹ ತಾತ್ಕಾಲಿಕ ಸಮಸ್ಯೆಗಳನ್ನು ಮರುಪ್ರಯತ್ನಿಸಿ (retry).
- ಅಥೆಂಟಿಕೇಶನ್ ವೈಫಲ್ಯಗಳಂತಹ ಶಾಶ್ವತ ಸಮಸ್ಯೆಗಳನ್ನು ಮರುಪ್ರಯತ್ನಿಸಬೇಡಿ.
ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ ಎಂದರೆ ವಾಸ್ತವವನ್ನು ನಿರೀಕ್ಷಿಸುವ ಕೋಡ್ ಬರೆಯುವುದಾಗಿದೆ. ಈ ಏಳು ತಪ್ಪುಗಳ ಆಧಾರದ ಮೇಲೆ ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಏಜೆಂಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಿ.