AgentInspect ಡೆವಲಪರ್ಗಳಿಗೆ AI ಏಜೆಂಟ್ನ ಹಂತ-ಹಂತದ ಕ್ರಮಗಳನ್ನು JSONL ಲಾಗ್ಗಳಾಗಿ ಸೆರೆಹಿಡಿಯಲು ಅನುಮತಿಸುತ್ತದೆ, ಇದರಿಂದ ಅಗತ್ಯವಿರುವ ಟೂಲ್ಗಳು (tools) ಕಾರ್ಯನಿರ್ವಹಿಸಿವೆ ಎಂದು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ – ಇವೆಲ್ಲವೂ OpenTelemetry ಅನ್ನು ಸ್ಟ್ಯಾಕ್ಗೆ ಜೋಡಿಸದೆಯೇ ಸಾಧ್ಯವಾಗುತ್ತದೆ.
Vercel AI SDK ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಹವಾಮಾನ-ಪರಿಶೀಲನಾ ಉದಾಹರಣೆಯೊಂದಿಗೆ ನಡೆಸಿದ ಒಂದು速 ಪರೀಕ್ಷೆಯಲ್ಲಿ, AgentInspect ಒಂದು “ಸೈಲೆಂಟ್ ಫೈಲ್ಯೂರ್” (silent failure) ಅನ್ನು ಗುರುತಿಸಿತು: ಅಂತಿಮ ಉತ್ತರ ಸರಿಯಾಗಿತ್ತು, ಆದರೆ weather-tool ಕರೆ ಎಂದಿಗೂ ಸಂಭವಿಸಿರಲಿಲ್ಲ. ಕೇವಲ ಔಟ್ಪುಟ್ ಪರೀಕ್ಷೆಯು ತಪ್ಪಿಹೋಗಬಹುದಾದ ಸಮಸ್ಯೆಯನ್ನು ಈ ಲೈಬ್ರರಿಯ ಪ್ರೊಸೆಸ್-ಲೆವೆಲ್ ಚೆಕ್ (process-level check) ಪತ್ತೆಹಚ್ಚಿತು.
ಎಕ್ಸಿಕ್ಯೂಷನ್ ಪಾತ್ (execution path) ಏಕೆ ಮುಖ್ಯ
AI ಏಜೆಂಟ್ನ ಪ್ರತಿಕ್ರಿಯೆಯು ಹಲವಾರು ಮಾಡೆಲ್ ಇನ್ವೋಕೇಶನ್ಗಳು (model invocations) ಮತ್ತು ಬಾಹ್ಯ ಟೂಲ್ ಕರೆಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಸರಪಳಿಯ ಅಂತಿಮ ಉತ್ಪನ್ನವಾಗಿದೆ. ಒಂದು ಪ್ರಾಂಪ್ಟ್ ಲೈವ್ ಡೇಟಾವನ್ನು ಪಡೆಯಬೇಕೆಂದು ನಿರೀಕ್ಷಿತವಾಗಿದ್ದರೆ, ಪಠ್ಯವು ಸರಿಯಾಗಿ ಕಂಡರೂ ಸಹ, ಆ ಡೇಟಾ ಪಡೆಯುವ ಪ್ರಕ್ರಿಯೆಯ ಅನುಪಸ್ಥಿತಿಯು ಅಪಾಯದ ಸ್ವರೂಪವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಕೇವಲ ಉತ್ತರ-ಮಟ್ಟದ ಪರೀಕ್ಷೆಗಳು (Answer-level tests), ಒಂದು ನಿರ್ಣಾಯಕ ಹಂತವನ್ನು ಬಿಟ್ಟುಹೋಗುವ ಬಗ್ ಅನ್ನು ಗಮನಕ್ಕೆ ಬರದೇ ಪ್ರೊಡಕ್ಷನ್ಗೆ ತಲುಪಲು ಬಿಡಬಹುದು.
AgentInspect ಏನು ಮಾಡುತ್ತದೆ
- ಲೈಟ್ವೇಯ್ಟ್ ರೆಕಾರ್ಡಿಂಗ್ (Lightweight recording) – ಒಂದು TypeScript ಅಡಾಪ್ಟರ್ ಏಜೆಂಟ್ ಕೋಡ್ಗೆ ಕನೆಕ್ಟ್ ಆಗುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಮಾಡೆಲ್ ಕರೆ, ಟೂಲ್ ಇನ್ವೋಕೇಶನ್ ಮತ್ತು ಅವುಗಳ ಕ್ರಮವನ್ನು ಲೈನ್-ಡೆಲಿಮಿಟೆಡ್ JSON (JSONL) ಫೈಲ್ಗೆ ಬರೆಯುತ್ತದೆ.
- ರೂಲ್ ಇಂಜಿನ್ (Rule engine) – ಡೆವಲಪರ್ಗಳು “the weather tool must be called” ಅಥವಾ “the finance API must not be used” ಎಂಬಂತಹ ಸರಳ ನಿಯಮಗಳನ್ನು ಘೋಷಿಸಬಹುದು. ಲೈಬ್ರರಿಯು ಪ್ರತಿ ರನ್ ನಂತರ ಈ ನಿಯಮಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ.
- CLI ಇನ್ಸ್ಪೆಕ್ಷನ್ (CLI inspection) – ವಿಫಲವಾದ ರನ್ಗಳನ್ನು ಫೈಲ್ಗಳಾಗಿ ಉಳಿಸಲಾಗುತ್ತದೆ, ಇವುಗಳನ್ನು ಬಿಲ್ಟ್-ಇನ್ ಕಮಾಂಡ್-ಲೈನ್ ಟೂಲ್ ಮೂಲಕ ಎಕ್ಸಿಕ್ಯೂಷನ್ ಟ್ರೇಸ್ನ (execution trace) ಮನುಷ್ಯನಿಗೆ ಓದಬಲ್ಲ ರೀಪ್ಲೇ (replay) ಗಾಗಿ ತೆರೆಯಬಹುದು.
ಲಾಗ್ಗಳು ಸ್ಥಳೀಯ ಫೈಲ್ಗಳಾಗಿರುವುದರಿಂದ, ಟ್ರೇಸಿಂಗ್ ಬ್ಯಾಕೆಂಡ್, ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅಥವಾ ಪ್ರತ್ಯೇಕ ಅಬ್ಸರ್ವೇಬಿಲಿಟಿ ಸರ್ವಿಸ್ನ ಅಗತ್ಯವಿಲ್ಲ.
ಪರೀಕ್ಷೆಯನ್ನು ಹೇಗೆ ಸಿದ್ಧಪಡಿಸಲಾಯಿತು
- ಪ್ರೊಸೆಸ್ ಚೆಕ್ಸ್ (Process checks) – weather-tool ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ಇನ್ವೋಕ್ ಮಾಡಲಾಗಿದೆಯೇ ಎಂದು ಒಂದು ನಿಯಮವು ಪರಿಶೀಲಿಸಿತು.
- ಆನ್ಸರ್ ಚೆಕ್ಸ್ (Answer checks) – ಪ್ರತ್ಯೇಕ ಅಸರ್ಷನ್ (assertion) ಜನರೇಟ್ ಆದ ಪಠ್ಯವನ್ನು ನಿರೀಕ್ಷಿತ ಇಂಡೋರ್-ಸೈಟ್ಸೀಯಿಂಗ್ ಶಿಫಾರಸಿನೊಂದಿಗೆ ಹೋಲಿಸಿತು.
ಎರಡು ಸನ್ನಿವೇಶಗಳನ್ನು ರನ್ ಮಾಡಲಾಯಿತು:
| ಸನ್ನಿವೇಶ (Scenario) | ಆನ್ಸರ್ ಚೆಕ್ (Answer check) | ಪ್ರೊಸೆಸ್ ಚೆಕ್ (Process check) |
|---|---|---|
| ಹ್ಯಾಪಿ ಪಾತ್ (ಹವಾಮಾನ ಪಡೆಯಲಾಗಿದೆ) | Pass | Pass |
| ಹವಾಮಾನವನ್ನು ಬಿಟ್ಟುಹೋಗಲಾಗಿದೆ (ಟೂಲ್ ಅನ್ನು ಎಂದಿಗೂ ಕರೆಯಲಾಗಿಲ್ಲ) | Pass | Fail |
ಎರಡನೇ ರನ್ ಪ್ರೊಸೆಸ್ ಚೆಕ್ಗಳ ಮೌಲ್ಯವನ್ನು ತೋರಿಸುತ್ತದೆ: ಉತ್ತರವು ಸರಿಯಾಗಿ ಕಂಡಿತು, ಆದರೆ ಮಿಸ್ಸಿಂಗ್ ಟೂಲ್ ಕರೆ ಒಂದು ಗುಪ್ತ ದೋಷವನ್ನು ಸೂಚಿಸಿತು.
AgentInspect vs. Promptfoo
Promptfoo ಎಂಬ ಹೆಚ್ಚು ಸ್ಥಾಪಿತವಾದ ಟೆಸ್ಟಿಂಗ್ ಫ್ರೇಮ್ವರ್ಕ್, OpenTelemetry ಮೂಲಕ ಟ್ರೇಸ್ಗಳನ್ನು ಸೆರೆಹಿಡಿಯುತ್ತದೆ. ಈ ವಿಧಾನವು ಈಗಾಗಲೇ ಟೆಲಿಮೆಟ್ರಿ ಡೇಟಾವನ್ನು ಕಲೆಕ್ಟರ್ಗೆ ಕಳುಹಿಸುವ ತಂಡಗಳಿಗೆ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ ಇದು ಕಾನ್ಫಿಗರೇಶನ್ ಓವರ್ಹೆಡ್ ಮತ್ತು ಟ್ರೇಸಿಂಗ್ ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರಿನ ಮೇಲಿನ ಅವಲಂಬನೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
AgentInspect ಅಭಿವೃದ್ಧಿಯ ಆರಂಭಿಕ ಹಂತದಲ್ಲಿರುವಂತೆ ಭಾಸವಾಗುತ್ತದೆ, ಆದರೆ ಇದನ್ನು ಸೆಟಪ್ ಮಾಡುವುದು ತುಂಬಾ ಸರಳವಾಗಿದೆ.
ಯಾರು ಗಮನ ಹರಿಸಬೇಕು
- CI ಪೈಪ್ಲೈನ್ಗಳು (CI pipelines) – AgentInspect ಅನ್ನು ರನ್ ಮಾಡುವ ಮತ್ತು ನಿಯಮಗಳ ಉಲ್ಲಂಘನೆಯಾದಾಗ ಬಿಲ್ಡ್ ಅನ್ನು ಫೇಲ್ ಮಾಡುವ ಒಂದೇ ಹಂತವನ್ನು ಸೇರಿಸುವುದರಿಂದ, ಸೈಲೆಂಟ್ ಬಗ್ಗಳನ್ನು ತಕ್ಷಣವೇ ಪತ್ತೆಹಚ್ಚಬಹುದು.
- ಡಿಬಗ್ಗಿಂಗ್ (Debugging) – ಕರೆಗಳ ನಿಖರವಾದ ಸರಣಿಯನ್ನು ರೀಪ್ಲೇ ಮಾಡಲು JSONL ಲಾಗ್ಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ತೆರೆಯಬಹುದು, ಇದು ರಿಮೋಟ್ ಟ್ರೇಸ್ ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗಳಲ್ಲಿ ಹುಡುಕುವ ತರತುಬದಿಗಿಂತ ಸಮಯವನ್ನು ಉಳಿಸುತ್ತದೆ.
- ಪ್ರೊಡಕ್ಟ್ ತಂಡಗಳು (Product teams) – ಫೀಚರ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವ ಮೊದಲು ನಿರ್ಣಾಯಕ ಡೇಟಾ ಫೆಚ್ (data fetch) ನಿಜವಾಗಿಯೂ ನಡೆದಿದೆ ಎಂದು ತಿಳಿದಿರುವುದು, ನಂತರದ ಬಳಕೆದಾರರ ದೂರುಗಳ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಸಾರಾಂಶ (Bottom line): ಒಂದು AI ಏಜೆಂಟ್ನ ನಿಖರತೆಯು ಕೇವಲ ಅಂತಿಮ ಪಠ್ಯದ ಮೇಲೆ ಮಾತ್ರವಲ್ಲದೆ, ಅದು ತೆಗೆದುಕೊಳ್ಳುವ ಕ್ರಮಗಳ ಮೇಲೂ ಅವಲಂಬಿತವಾಗಿದ್ದಾಗ, AgentInspect ನಂತಹ ಲೈಟ್ವೇಯ್ಟ್ ರೆಕಾರ್ಡರ್ ಪೂರ್ಣ ಟ್ರೇಸಿಂಗ್ ಸ್ಟ್ಯಾಕ್ನ ಓವರ್ಹೆಡ್ ಇಲ್ಲದೆಯೇ ಗುಪ್ತ ಪ್ರೊಸೆಸ್ ಬಗ್ಗಳನ್ನು ದೃಶ್ಯಮಯವಾದ, ಪರೀಕ್ಷಿಸಬಹುದಾದ ವೈಫಲ್ಯಗಳನ್ನಾಗಿ ಪರಿವರ್ತಿಸಬಹುದು.
