𝗕𝗼𝘂𝗻𝗱𝗲𝗱 𝗥𝗲𝘁𝗿𝗶𝗲𝘀 𝗙𝗼𝗿 𝗔𝗴𝗲𝗻𝘁 𝗧𝗼𝗼𝗹 𝗖𝗮𝗹𝗹𝘀

ನಮ್ಮ ಏಜೆಂಟ್ ಉಂಟುಮಾಡಿದ ಅತ್ಯಂತ ಕೆಟ್ಟ ಘಟನೆ ತಪ್ಪು ಉತ್ತರ ನೀಡುವುದಲ್ಲ. ಅದು ಒಂದು ಲೂಪ್ (loop) ಆಗಿತ್ತು.

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

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

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

ಸಾಂಪ್ರದಾಯಿಕ ಕೋಡ್‌ಗಳು ಮರುಪ್ರಯತ್ನದ ಮಿತಿಗಳನ್ನು (retry limits) ಬಳಸುತ್ತವೆ. ಏಜೆಂಟ್ ಟೂಲ್ ಕಾಲ್‌ಗಳು ಈ ನಿರ್ಧಾರವನ್ನು ಮಾಡೆಲ್‌ನ ತರ್ಕಕ್ಕೆ (model reasoning) ವರ್ಗಾಯಿಸಿದವು. ಇದು ಲೂಪ್ ಅನ್ನು ಅದೃಶ್ಯ ಮತ್ತು ಅಸೀಮಿತವಾಗಿಸಿತು.

ಮಾಡೆಲ್‌ನ ಹೊರಗೆ ಎರಡು ಬಜೆಟ್‌ಗಳನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನಾವು ಇದನ್ನು ಸರಿಪಡಿಸಿದೆವು:

• ಪ್ರತಿ-ಕಾಲ್ ಮಿತಿ (Per-call cap): ಒಂದು ನಿರ್ದಿಷ್ಟ ಟೂಲ್‌ಗೆ ನಿಗದಿತ ಸಂಖ್ಯೆಯ ಪ್ರಯತ್ನಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಅದು ವಿಫಲವಾದರೆ, ಏಜೆಂಟ್ ಬೇರೆ ದಾರಿಯನ್ನು ಪ್ರಯತ್ನಿಸಬೇಕು. • ಪ್ರತಿ-ಸೆಷನ್ ಬಜೆಟ್ (Per-session budget): ಇಡೀ ಕಾರ್ಯಕ್ಕೆ ಒಟ್ಟು ಟೂಲ್ ಕಾಲ್‌ಗಳ ಮೇಲೆ ಮಿತಿ ಇರುತ್ತದೆ. ಏಜೆಂಟ್ ಈ ಮಿತಿಯನ್ನು ತಲುಪಿದರೆ, ಅದು ನಿಂತು ಸಹಾಯವನ್ನು ಕೇಳುತ್ತದೆ.

ಮಿತಿಯೇ ಪರಿಹಾರವಲ್ಲ. ಮಿತಿಯ ನಂತರ ಏನಾಗುತ್ತದೆ ಎಂಬುದು ಮುಖ್ಯವಾಗುತ್ತದೆ.

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

ಇದನ್ನು ಸೇರಿಸಿದ ನಂತರ, ಟೂಲ್-ದುರುಪಯೋಗದ ಲೂಪ್‌ಗಳು ಬಹುತೇಕ ಮಾಯವಾಗಿವೆ. ಅವು ಸಂಭವಿಸಿದಾಗಲೂ, ದೊಡ್ಡ API ಬಿಲ್‌ಗಳನ್ನು ಸೃಷ್ಟಿಸುವ ಬದಲು ಅವು ಸುಗಮವಾಗಿ ಮುಕ್ತಾಯಗೊಳ್ಳುತ್ತವೆ.

ಸರಿಯಾದ ಮಿತಿಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಕಷ್ಟ. ಕಟ್ಟುನಿಟ್ಟಾದ ಮಿತಿಯು ದೀರ್ಘಾವಧಿಯ ಕಾರ್ಯಗಳನ್ನು ತಡೆಯುತ್ತದೆ. ಸಡಿಲವಾದ ಮಿತಿಯು ದುಬಾರಿ ಲೂಪ್‌ಗಳಿಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ನಾವು ನಮ್ಮ ಮಿತಿಗಳನ್ನು 95ನೇ ಶೇಕಡಾವಾರು (95th percentile) ಕಾರ್ಯದ ಅವಧಿಯ ಆಧಾರದ ಮೇಲೆ ನಿಗದಿಪಡಿಸುತ್ತೇವೆ.

ಈ ಬಜೆಟ್‌ಗಳನ್ನು ನಿಗದಿಪಡಿಸಲು ನಿಮ್ಮ ಬಳಿ ಉತ್ತಮ ಮಾರ್ಗವಿದೆಯೇ? ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ ತಿಳಿಸಿ.

Source: https://dev.to/james_oconnor_dev/bounded-retries-for-agent-tool-calls-the-budget-that-stopped-our-infinite-loop-incidents-4354

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