ਤੁਹਾਡਾ ਏਜੰਟ ਡੈਮੋ ਕੰਮ ਕਰਦਾ ਹੈ। ਇਹੀ ਇੱਕ ਜਾਲ ਹੈ।
ਮੈਂ ਕੰਪਨੀਆਂ ਲਈ AI agents ਬਣਾਉਂਦਾ ਹਾਂ। ਮੈਂ ਅਕਸਰ ਇੱਕੋ ਜਿਹਾ ਪੈਟਰਨ ਦੇਖਦਾ ਹਾਂ। ਮਾਡਲ ਇੱਕ ਡੈਮੋ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਉਤਪਾਦ (product) ਲਾਂਚ ਕਰਦੇ ਹੋ। ਫਿਰ ਇਹ ਪ੍ਰੋਡਕਸ਼ਨ (production) ਵਿੱਚ ਹਰ ਤਿੰਨ ਵਿੱਚੋਂ ਇੱਕ ਵਾਰ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ। ਕੋਈ ਨਹੀਂ ਜਾਣਦਾ ਕਿ ਕਿਉਂ।
ਡੈਮੋ ਅਤੇ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿਚਕਾਰ ਦਾ ਅੰਤਰ ਗਣਿਤ (math) ਹੈ। ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਗਣਿਤ ਨੂੰ ਸਮਝ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਬਣਾਉਂਦੇ ਹੋ।
ਜੇਕਰ ਤੁਹਾਡੇ ਏਜੰਟ ਦਾ ਹਰ ਕਦਮ 95% ਭਰੋਸੇਯੋਗ ਹੈ, ਤਾਂ ਇਹ ਸੁਣਨ ਵਿੱਚ ਚੰਗਾ ਲੱਗਦਾ ਹੈ। ਪਰ ਏਜੰਟ ਕਦਮਾਂ ਦੀਆਂ ਲੜੀਆਂ (chains of steps) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਦਸ ਕਦਮਾਂ ਨੂੰ ਇਕੱਠਾ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਸਫਲਤਾ ਦੀ ਦਰ ਘਟ ਕੇ 60% ਹੋ ਜਾਂਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਵੀਹ ਕਦਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਸਫਲਤਾ ਦੀ ਦਰ ਘਟ ਕੇ 36% ਹੋ ਜਾਂਦੀ ਹੈ।
ਅਸਲ ਕੰਮ ਵਿੱਚ, ਕਦਮਾਂ ਦੀ ਗਲਤੀ ਦੀ ਦਰ (error rate) ਅਕਸਰ 10% ਤੋਂ 20% ਹੁੰਦੀ ਹੈ। ਜੇਕਰ ਇੱਕ ਏਜੰਟ ਵਿੱਚ 85% ਭਰੋਸੇਯੋਗਤਾ ਵਾਲੇ ਅੱਠ ਕਦਮ ਹਨ, ਤਾਂ ਇਹ 75% ਸਮੇਂ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ।
ਮਾਡਲ ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ। ਕੰਪਾਊਂਡਿੰਗ ਪ੍ਰੋਬੇਬਿਲਟੀ (Compounding probability) ਸਮੱਸਿਆ ਹੈ।
ਇੱਕ ਡੈਮੋ ਇੱਕ ਸਿੰਗਲ 'ਹੈਪੀ ਪਾਥ' (happy path) ਦਿਖਾਉਂਦਾ ਹੈ। ਇਹ ਸਾਫ਼ ਇਨਪੁਟ ਅਤੇ ਛੋਟੀਆਂ ਲੜੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਪ੍ਰੋਡਕਸ਼ਨ ਸੈਂਕੜੇ ਉਪਭੋਗਤਾਵਾਂ ਤੋਂ ਮਿਲੇ ਅਸਪਸ਼ਟ (messy) ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਲੰਬੀਆਂ ਲੜੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਲੁਕੇ ਹੋਏ ਕਦਮ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ।
ਏਜੰਟਾਂ ਵਿੱਚ ਅਸਫਲਤਾ ਕ੍ਰੈਸ਼ (crash) ਵਾਂਗ ਨਹੀਂ ਦਿਖਾਈ ਦਿੰਦੀ। ਇਹ ਇੱਕ ਸ਼ਾਂਤ ਗਲਤੀ (quiet error) ਵਾਂਗ ਲੱਗਦੀ ਹੈ।
ਕਦਮ 3 ਇੱਕ ਫੀਲਡ ਨੂੰ ਗਲਤ ਪੜ੍ਹਦਾ ਹੈ। ਆਉਟਪੁੱਟ ਅਜੇ ਵੀ ਵੈਲਿਡ JSON ਵਾਂਗ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਕਦਮ 4 ਉਸ ਗਲਤ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਤਰਕ (reasoning) ਲਈ ਕਰਦਾ ਹੈ। ਕਦਮ 5 ਤੋਂ 8 ਉਸੇ ਗਲਤੀ 'ਤੇ ਅਧਾਰਤ ਹੁੰਦੇ ਹਨ। ਅੰਤਿਮ ਉੱਤਰ ਗਲਤ ਹੁੰਦਾ ਹੈ ਪਰ ਸਹੀ ਲੱਗਦਾ ਹੈ। ਉੱਥੇ ਕੋਈ ਐਰਰ ਲੌਗ (error log) ਨਹੀਂ ਹੁੰਦਾ ਜੋ ਤੁਹਾਨੂੰ ਦਿਖਾ ਸਕੇ ਕਿ ਗਲਤੀ ਕਿੱਥੇ ਹੋਈ।
ਇਹ ਕਹਿਣਾ ਬੰਦ ਕਰੋ ਕਿ ਮਾਡਲ ਨੇ ਹਲੂਸੀਨੇਟ (hallucinated) ਕੀਤਾ। ਮਾਡਲ ਨੇ ਸਿਰਫ ਉਹ ਗਲਤ ਡੇਟਾ ਅੱਗੇ ਭੇਜਿਆ ਜੋ ਉਸਨੂੰ ਪ੍ਰਾਪਤ ਹੋਇਆ ਸੀ। ਤੁਹਾਡੇ ਸਿਸਟਮ ਵਿੱਚ ਕਦਮ 3 'ਤੇ ਗਲਤੀ ਨੂੰ ਫੜਨ ਲਈ ਚੈੱਕਪੁਆਇੰਟ (checkpoint) ਦੀ ਕਮੀ ਸੀ।
ਏਜੰਟ ਨੂੰ ਸਿਰਫ ਇੱਕ ਪ੍ਰੋਂਪਟ (prompt) ਵਜੋਂ ਦੇਖਣਾ ਬੰਦ ਕਰੋ। ਇਸਨੂੰ ਇੱਕ ਸਿਸਟਮ ਵਜੋਂ ਦੇਖਣਾ ਸ਼ੁਰੂ ਕਰੋ।
ਭਰੋਸੇਯੋਗ ਏਜੰਟ ਬਣਾਉਣ ਲਈ ਇਹਨਾਂ ਨਿਯਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ:
ਸਟੇਟ (state) ਨੂੰ ਏਜੰਟ ਤੋਂ ਬਾਹਰ ਸੇਵ ਕਰੋ। ਸਟੇਟ ਨੂੰ ਡੇਟਾਬੇਸ ਵਿੱਚ ਰੱਖੋ, ਗੱਲਬਾਤ (conversation) ਵਿੱਚ ਨਹੀਂ। ਜੇਕਰ ਕੋਈ ਪ੍ਰਕਿਰਿਆ ਕਦਮ 6 'ਤੇ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਕਦਮ 6 ਤੋਂ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਹਾਨੂੰ ਪੂਰੀ ਲੜੀ ਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।
ਬਾਹਰੀ ਸੀਮਾਵਾਂ (boundaries) 'ਤੇ ਵੈਲੀਡੇਟ (validate) ਕਰੋ। ਹਰ ਇਨਪੁਟ ਅਤੇ ਆਉਟਪੁੱਟ ਨੂੰ ਇੱਕ schema ਦੇ ਅਨੁਸਾਰ ਚੈੱਕ ਕਰੋ। ਜਿੱਥੇ ਗਲਤੀ ਹੁੰਦੀ ਹੈ, ਉਸੇ ਕਦਮ 'ਤੇ ਉਸਨੂੰ ਫੜੋ। ਇਹ ਇੱਕ ਰਹੱਸ ਨੂੰ ਇੱਕ ਸੁਧਾਰਨਯੋਗ (recoverable) ਗਲਤੀ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
ਸਾਈਡ ਇਫੈਕਟਸ (side effects) ਨੂੰ idempotent ਬਣਾਓ। ਜਦੋਂ ਕਦਮ ਫੇਲ ਹੋ ਜਾਣ ਤਾਂ ਤੁਹਾਨੂੰ ਉਹਨਾਂ ਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ (retry) ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਜੇਕਰ ਕੋਈ ਕਦਮ ਈਮੇਲ ਭੇਜਦਾ ਹੈ ਜਾਂ ਕਾਰਡ ਚਾਰਜ ਕਰਦਾ ਹੈ, ਤਾਂ ਇੱਕ idempotency key ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਰੀਟ੍ਰਾਈ (retry) ਦੌਰਾਨ ਦੁਹਰਾਓ ਵਾਲੇ ਕੰਮਾਂ ਨੂੰ ਰੋਕਦਾ ਹੈ।
ਆਪਣੇ 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
