AgentInspect ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਇੱਕ AI ਏਜੰਟ ਦੀਆਂ ਕਦਮ-ਦਰ-ਕਦਮ ਕਾਰਵਾਈਆਂ ਨੂੰ JSONL ਲੌਗਸ ਵਜੋਂ ਕੈਪਚਰ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨਾ ਸੰਭਵ ਹੋ ਜਾਂਦਾ ਹੈ ਕਿ ਲੋੜੀਂਦੇ ਟੂਲ ਚੱਲੇ ਹਨ – ਉਹ ਵੀ ਸਟੈਕ ਵਿੱਚ OpenTelemetry ਨੂੰ ਜੋੜੇ ਬਿਨਾਂ।
Vercel AI SDK 'ਤੇ ਬਣੇ ਮੌਸਮ-ਚੈਕਿੰਗ ਉਦਾਹਰਣ ਦੇ ਇੱਕ ਤੇਜ਼ ਟੈਸਟ ਵਿੱਚ, AgentInspect ਨੇ ਇੱਕ “silent failure” ਦੀ ਨਿਸ਼ਾਨਦੇਹੀ ਕੀਤੀ: ਅੰਤਿਮ ਉੱਤਰ ਸਹੀ ਸੀ, ਪਰ ਮੌਸਮ-ਟੂਲ (weather-tool) ਦੀ ਕਾਲ ਕਦੇ ਹੋਈ ਹੀ ਨਹੀਂ। ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਪ੍ਰੋਸੈਸ-ਲੇਵਲ ਚੈੱਕ ਨੇ ਉਸ ਸਮੱਸਿਆ ਨੂੰ ਫੜ ਲਿਆ ਜਿਸ ਨੂੰ ਇੱਕ ਸਾਧਾਰਨ ਆਊਟਪੁੱਟ ਟੈਸਟ ਮਿਸ ਕਰ ਦਿੰਦਾ।
ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਪਾਥ (execution path) ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ
ਇੱਕ AI ਏਜੰਟ ਦਾ ਜਵਾਬ ਇੱਕ ਅਜਿਹੀ ਲੜੀ ਦਾ ਅੰਤਿਮ ਉਤਪਾਦ ਹੁੰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਕਈ ਮਾਡਲ ਇੰਵੋਕੇਸ਼ਨ (model invocations) ਅਤੇ ਬਾਹਰੀ ਟੂਲ ਕਾਲ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ। ਜੇਕਰ ਕੋਈ ਪ੍ਰੋਂਪਟ ਲਾਈਵ ਡੇਟਾ ਫੈਚ ਕਰਨ ਲਈ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਉਸ ਫੈਚ ਦੀ ਗੈਰ-ਹਾਜ਼ਰੀ ਰਿਸਕ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਬਦਲ ਦਿੰਦੀ ਹੈ, ਭਾਵੇਂ ਟੈਕਸਟ ਸਹੀ ਲੱਗ ਰਿਹਾ ਹੋਵੇ। ਆਨਸਰ-ਲੇਵਲ ਟੈਸਟ ਇੱਕ ਅਜਿਹੇ ਬੱਗ ਨੂੰ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਬਿਨਾਂ ਨੋਟਿਸ ਹੋਏ ਜਾਣ ਦੇਣ ਦਿੰਦੇ ਹਨ ਜੋ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਕਦਮ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ।
AgentInspect ਕੀ ਕਰਦਾ ਹੈ
- ਲਾਈਟਵੇਟ ਰਿਕਾਰਡਿੰਗ – ਇੱਕ TypeScript ਐਡਪਟਰ ਏਜੰਟ ਕੋਡ ਨਾਲ ਜੁੜਦਾ ਹੈ ਅਤੇ ਹਰੇਕ ਮਾਡਲ ਕਾਲ, ਟੂਲ ਇੰਵੋਕੇਸ਼ਨ, ਅਤੇ ਉਹਨਾਂ ਦੇ ਕ੍ਰਮ ਨੂੰ ਇੱਕ ਲਾਈਨ-ਡਿਲੀਮਿਟਡ JSON (JSONL) ਫਾਈਲ ਵਿੱਚ ਲਿਖਦਾ ਹੈ।
- ਰੂਲ ਇੰਜਣ – ਡਿਵੈਲਪਰ ਸਰਲ ਪ੍ਰੀਡੀਕੇਟਸ (predicates) ਘੋਸ਼ਿਤ ਕਰਦੇ ਹਨ ਜਿਵੇਂ ਕਿ “ਮੌਸਮ ਟੂਲ ਨੂੰ ਕਾਲ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ” ਜਾਂ “ਫਾਈਨਾਂਸ API ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ।” ਲਾਇਬ੍ਰੇਰੀ ਹਰੇਕ ਰਨ ਤੋਂ ਬਾਅਦ ਇਹਨਾਂ ਨਿਯਮਾਂ ਦਾ ਮੁਲਾਂਕਣ ਕਰਦੀ ਹੈ।
- CLI ਇੰਸਪੈਕਸ਼ਨ – ਫੇਲ੍ਹ ਹੋਏ ਰਨ ਫਾਈਲਾਂ ਵਜੋਂ ਸੇਵ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਬਿਲਟ-ਇਨ ਕਮਾਂਡ-ਲਾਈਨ ਟੂਲ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਟ੍ਰੇਸ ਦੇ ਮਨੁੱਖੀ-ਪੜ੍ਹਨਯੋਗ ਰੀਪਲੇਅ ਲਈ ਖੋਲ੍ਹ ਸਕਦਾ ਹੈ।
ਕਿਉਂਕਿ ਲੌਗਸ ਲੋਕਲ ਫਾਈਲਾਂ ਹਨ, ਇਸ ਲਈ ਕਿਸੇ ਟ੍ਰੇਸਿੰਗ ਬੈਕਐਂਡ, ਨੈੱਟਵਰਕ ਕੌਂਫਿਗਰੇਸ਼ਨ, ਜਾਂ ਵੱਖਰੀ ਅਬਜ਼ਰਵੇਬਿਲਟੀ (observability) ਸਰਵਿਸ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।
ਟੈਸਟ ਕਿਵੇਂ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਸੀ
- ਪ੍ਰੋਸੈਸ ਚੈੱਕ – ਇੱਕ ਨਿਯਮ ਨੇ ਪੁਸ਼ਟੀ ਕੀਤੀ ਕਿ ਮੌਸਮ-ਟੂਲ ਐਂਡਪੁਆਇੰਟ ਨੂੰ ਇੰਵੋਕ ਕੀਤਾ ਗਿਆ ਸੀ।
- ਆਨਸਰ ਚੈੱਕ – ਇੱਕ ਵੱਖਰੇ ਐਸਰਸ਼ਨ (assertion) ਨੇ ਤਿਆਰ ਕੀਤੇ ਗਏ ਟੈਕਸਟ ਦੀ ਤੁਲਨਾ ਉਮੀਦ ਕੀਤੇ ਗਏ ਇੰਡੋਰ-ਸਾਈਟਸੀਇੰਗ ਰਿਕਮੈਂਡੇਸ਼ਨ ਨਾਲ ਕੀਤੀ।
ਦੋ ਸਿਨਾਰੀਓ ਚਲਾਏ ਗਏ:
| ਸਿਨਾਰੀਓ (Scenario) | ਆਨਸਰ ਚੈੱਕ (Answer check) | ਪ੍ਰੋਸੈਸ ਚੈੱਕ (Process check) |
|---|---|---|
| ਹੈਪੀ ਪਾਥ (ਮੌਸਮ ਫੈਚ ਕੀਤਾ ਗਿਆ) | ਪਾਸ (Pass) | ਪਾਸ (Pass) |
| ਮੌਸਮ ਛੱਡ ਦਿੱਤਾ ਗਿਆ (ਟੂਲ ਕਦੇ ਕਾਲ ਨਹੀਂ ਕੀਤਾ ਗਿਆ) | ਪਾਸ (Pass) | ਫੇਲ (Fail) |
ਦੂਜਾ ਰਨ ਪ੍ਰੋਸੈਸ ਚੈੱਕ ਦੀ ਕੀਮਤ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ: ਉੱਤਰ ਠੀਕ ਲੱਗ ਰਿਹਾ ਸੀ, ਪਰ ਗੁੰਮ ਹੋਈ ਟੂਲ ਕਾਲ ਨੇ ਇੱਕ ਲੁਕਵੇਂ ਨੁਕਸ ਦਾ ਸੰਕੇਤ ਦਿੱਤਾ।
AgentInspect ਬਨਾਮ Promptfoo
Promptfoo, ਜੋ ਕਿ ਇੱਕ ਵਧੇਰੇ ਸਥਾਪਿਤ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਹੈ, OpenTelemetry ਰਾਹੀਂ ਟ੍ਰੇਸ ਕੈਪਚਰ ਕਰਦਾ ਹੈ। ਉਹ ਪਹੁੰਚ ਉਹਨਾਂ ਟੀਮਾਂ ਲਈ ਵਧੀਆ ਕੰਮ ਕਰਦੀ ਹੈ ਜੋ ਪਹਿਲਾਂ ਹੀ ਕਲੈਕਟਰ ਨੂੰ ਟੈਲੀਮੈਟਰੀ ਡੇਟਾ ਭੇਜਦੀਆਂ ਹਨ, ਪਰ ਇਹ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦਾ ਬੋਝ ਅਤੇ ਟ੍ਰੇਸਿੰਗ ਇਨਫਰਾਸਟ੍ਰਕਚਰ 'ਤੇ ਨਿਰਭਰਤਾ ਵਧਾਉਂਦਾ ਹੈ।
AgentInspect ਵਿਕਾਸ (development) ਦੇ ਸ਼ੁਰੂਆਤੀ ਪੜਾਅ ਵਾਂਗ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ, ਪਰ ਇਸਨੂੰ ਸੈੱਟ ਕਰਨਾ ਬਹੁਤ ਸਰਲ ਹੈ।
ਕਿਸਨੂੰ ਧਿਆਨ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ
- CI ਪਾਈਪਲਾਈਨਾਂ – ਇੱਕ ਸਿੰਗਲ ਸਟੈਪ ਜੋੜਨਾ ਜੋ AgentInspect ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਨਿਯਮਾਂ ਦੀ ਉਲੰਘਣਾ 'ਤੇ ਬਿਲਡ ਨੂੰ ਫੇਲ ਕਰ ਦਿੰਦਾ ਹੈ, ਸਾਈਲੈਂਟ ਬੱਗਸ ਨੂੰ ਸਖ਼ਤ ਰੋਕ (hard stops) ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
- ਡੀਬੱਗਿੰਗ – ਕਾਲਾਂ ਦੇ ਸਹੀ ਕ੍ਰਮ ਨੂੰ ਦੁਬਾਰਾ ਚਲਾਉਣ ਲਈ JSONL ਲੌਗਸ ਨੂੰ ਲੋਕਲ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਰਿਮੋਟ ਟ੍ਰੇਸ ਡੈਸ਼ਬੋਰਡਾਂ ਵਿੱਚ ਖੋਜ ਕਰਨ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਸਮਾਂ ਬਚਦਾ ਹੈ।
- ਪ੍ਰੋਡਕਟ ਟੀਮਾਂ – ਕਿਸੇ ਫੀਚਰ ਨੂੰ ਸ਼ਿਪ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਜਾਣਨਾ ਕਿ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਡੇਟਾ ਫੈਚ ਅਸਲ ਵਿੱਚ ਹੋਇਆ ਸੀ, ਅਗਲੇ ਪੜਾਅ 'ਤੇ ਉਪਭੋਗਤਾਵਾਂ ਦੀਆਂ ਸ਼ਿਕਾਇਤਾਂ ਦੇ ਜੋਖਮ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ।
ਅੰਤ ਵਿੱਚ: ਜਦੋਂ ਇੱਕ AI ਏਜੰਟ ਦੀ ਸਹੀ ਹੋਣ ਦੀ ਗਰੰਟੀ ਸਿਰਫ਼ ਅੰਤਿਮ ਟੈਕਸਟ 'ਤੇ ਨਹੀਂ, ਸਗੋਂ ਉਸ ਦੁਆਰਾ ਲਈਆਂ ਗਈਆਂ ਕਾਰਵਾਈਆਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ, ਤਾਂ AgentInspect ਵਰਗਾ ਲਾਈਟਵੇਟ ਰਿਕਾਰਡਰ ਇੱਕ ਪੂਰੇ ਟ੍ਰੇਸਿੰਗ ਸਟੈਕ ਦੇ ਬੋਝ ਤੋਂ ਬਿਨਾਂ, ਲੁਕਵੇਂ ਪ੍ਰੋਸੈਸ ਬੱਗਸ ਨੂੰ ਦਿਖਾਈ ਦੇਣ ਵਾਲੀਆਂ, ਟੈਸਟਯੋਗ ਅਸਫਲਤਾਵਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦਾ ਹੈ।
