𝗪𝗵𝘆 𝗔𝗜 𝗖𝗼𝗱𝗶𝗻𝗴 𝗔𝗴𝗲𝗻𝘁𝘀 𝗦𝗵𝗼𝘂𝗹𝗱𝗻'𝘁 𝗨𝘀𝗲 𝗖𝗵𝗮𝘁 𝗕𝗼𝘅𝗲𝘀
ਮੈਂ ਜੋ ਵੀ AI ਟੂਲ ਖੋਲ੍ਹਦਾ ਹਾਂ, ਉਹ ਸਭ ਇੱਕੋ ਜਿਹੇ ਲੱਗਦੇ ਹਨ। ਇਹ ਇੱਕ ਟੈਕਸਟ ਫੀਲਡ ਵਿੱਚ ਲਿਪਕਦਾ ਹੋਇਆ ਕਰਸਰ ਹੈ। Claude Code ਅਤੇ Codex ਉਸੇ ਇੰਟਰਫੇਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਜੋ ਅਸੀਂ 1999 ਵਿੱਚ IRC ਬੋਟਸ ਲਈ ਵਰਤਦੇ ਸੀ।
ਚੈਟ ਬਣਾਉਣ ਦਾ ਇੱਕ ਆਸਾਨ ਤਰੀਕਾ ਹੈ। ਇਹ ਡੈਮੋਸ (demos) ਨੂੰ ਵਧੀਆ ਦਿਖਾਉਂਦੀ ਹੈ। ਪਰ ਚੈਟ ਸਿਰਫ਼ ਇੱਕ ਅਸਥਾਈ ਜਗ੍ਹਾ (placeholder) ਹੈ। ਅਸਲ ਟੀਚਾ ਇੱਕ ਬਿਹਤਰ ਚੈਟ ਬਾਕਸ ਨਹੀਂ ਹੈ। ਟੀਚਾ ਚੈਟ ਬਾਕਸ ਦਾ ਹੋਣਾ ਹੀ ਨਹੀਂ ਹੈ।
ਇੱਕ ਚੈਟ ਇੰਟਰਫੇਸ ਕੰਮ ਦਾ ਬੋਝ ਵਾਪਸ ਤੁਹਾਡੇ 'ਤੇ ਪਾ ਦਿੰਦਾ ਹੈ।
ਤੁਹਾਨੂੰ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਕੀ ਪੁੱਛਣਾ ਹੈ। ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਚੰਗੀ ਤਰ੍ਹਾਂ ਲਿਖਣਾ ਪਵੇਗਾ। ਤੁਹਾਨੂੰ ਲੰਬੇ ਪੈਰੇ ਪੜ੍ਹਨੇ ਪੈਣਗੇ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਕਾਰਵਾਈ (action) ਵਿੱਚ ਬਦਲਣਾ ਪਵੇਗਾ। ਮਾਡਲ ਸੋਚਦਾ ਹੈ, ਪਰ ਇੰਟਰਫੇਸ ਦਾ ਕੰਮ ਤੁਹਾਨੂੰ ਆਪਣੇ ਦਿਮਾਗ ਵਿੱਚ ਕਰਨਾ ਪੈਂਦਾ ਹੈ।
ਇਹ ਕੋਡਿੰਗ ਏਜੰਟਸ ਲਈ ਇੱਕ ਸਮੱਸਿਆ ਹੈ। ਕੋਡਿੰਗ ਸਪੇਸ਼ੀਅਲ (spatial) ਅਤੇ ਸੰਰਚਨਾਤਮਕ (structural) ਹੁੰਦੀ ਹੈ। ਤੁਸੀਂ ਫਾਈਲਾਂ, diffs, ਅਤੇ ਡਿਪੈਂਡੈਂਸੀ ਗ੍ਰਾਫ (dependency graphs) ਨਾਲ ਕੰਮ ਕਰਦੇ ਹੋ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਚੀਜ਼ ਪੈਰੇ ਨਹੀਂ ਹੁੰਦੀ। ਟੈਕਸਟ ਸਟ੍ਰੀਮ ਰਾਹੀਂ ਕੋਡ ਨੂੰ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨਾ ਅਜਿਹਾ ਹੈ ਜਿਵੇਂ ਫ਼ੋਨ 'ਤੇ ਕਿਸੇ ਦੇ ਦੱਸਣ ਨਾਲ ਨਕਸ਼ਾ ਪੜ੍ਹਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨਾ।
ਜਦੋਂ ਕੋਈ ਏਜੰਟ ਕਿਸੇ ਫੰਕਸ਼ਨ ਨੂੰ ਰੀਫੈਕਟਰ (refactor) ਕਰਦਾ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਤਿੰਨ ਵਾਕਾਂ ਵਿੱਚ ਦੱਸਦਾ ਹੈ ਕਿ ਉਸਨੇ ਕੀ ਬਦਲਿਆ ਹੈ, ਤਾਂ ਉਹ ਹੋਮਵਰਕ ਹੈ। ਮਦਦ ਨਹੀਂ।
ਮਾਡਲ ਕੋਡ, ਲੇਆਉਟਸ (layouts), ਅਤੇ ਕੰਪੋਨੈਂਟਸ (components) ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਨੂੰ ਕੰਮ ਦੇ ਵੇਰਵੇ ਦੇਣ ਦੀ ਬਜਾਏ, ਕੰਮ ਲਈ ਇੰਟਰਫੇਸ ਤਿਆਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
ਸਾਰ (summary) ਦੇਣ ਦੀ ਬਜਾਏ, ਮੈਨੂੰ 'accept' ਅਤੇ 'reject' ਬਟਨਾਂ ਦੇ ਨਾਲ ਇੱਕ diff view ਦਿਓ।
"ਇਸ ਫੰਕਸ਼ਨ ਨੂੰ ਕਿਸਨੇ ਕਾਲ ਕੀਤਾ" ਪੁੱਛਣ ਦੀ ਬਜਾਏ, ਮੈਨੂੰ ਇੱਕ ਕਾਲ ਗ੍ਰਾਫ (call graph) ਦਿਖਾਓ ਜਿਸ 'ਤੇ ਮੈਂ ਕਲਿੱਕ ਕਰ ਸਕਾਂ।
ਬਾਰਾਂ ਫਾਈਲਾਂ ਨੂੰ ਛੇੜਨ ਤੋਂ ਬਾਅਦ ਇਕਬਾਲੀਆ (confession) ਕਰਨ ਦੀ ਬਜਾਏ, ਚੱਲਣ ਤੋਂ ਪਹਿਲਾਂ ਮੈਨੂੰ ਉਹਨਾਂ ਫਾਈਲਾਂ ਦੀ ਇੱਕ ਚੈੱਕਲਿਸਟ ਦਿਖਾਓ।
ਇੰਟਰਫੇਸ ਮਾਡਲ ਦਾ ਇੱਕ ਪ੍ਰਵਾਹਮਈ (fluid) ਆਉਟਪੁੱਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਕੰਮ ਦੇ ਅਧਾਰ 'ਤੇ UI ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਨੂੰ ਉਸ ਫੈਸਲੇ ਦੇ ਅਨੁਸਾਰ ਆਪਣੇ ਆਪ ਨੂੰ ਢਾਲਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਇਸ ਸਮੇਂ ਲੈਣਾ ਹੈ।
ਇਹ ਭਰੋਸੇ ਬਾਰੇ ਹੈ।
ਚੈਟ ਏਜੰਟ ਨੂੰ ਸ਼ਬਦਾਂ ਦੇ ਪਿੱਛੇ ਲੁਕਾ ਦਿੰਦੀ ਹੈ। ਜੇਕਰ ਕੋਈ ਏਜੰਟ ਕਹਿੰਦਾ ਹੈ "ਮੈਂ ਟੈਸਟ ਅਪਡੇਟ ਕਰ ਦਿੱਤੇ ਹਨ," ਤਾਂ ਤੁਹਾਨੂੰ ਉਸਦੀ ਗੱਲ ਮੰਨਣੀ ਪੈਂਦੀ ਹੈ। ਜਾਂ ਤਾਂ ਤੁਸੀਂ ਅੰਨ੍ਹੇਵਾਹ ਉਸ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ ਜਾਂ ਤੁਸੀਂ ਖੁਦ ਫਾਈਲਾਂ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹੋ। ਦੋਵੇਂ ਵਿਕਲਪ ਫੇਲ ਹੋ ਜਾਂਦੇ ਹਨ।
ਇੱਕ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਇੰਟਰਫੇਸ ਕੰਮ ਦੀ ਜਾਂਚ ਕਰਨਾ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ। diff ਉੱਥੇ ਹੀ ਹੈ। ਯੋਜਨਾ ਉੱਥੇ ਹੀ ਹੈ। ਏਜੰਟ "ਮੇਰੇ 'ਤੇ ਭਰੋਸਾ ਕਰੋ" ਕਹਿਣਾ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ ਅਤੇ "ਇਸ ਨੂੰ ਦੋ ਸਕਿੰਟਾਂ ਵਿੱਚ ਤਸਦੀਕ ਕਰੋ" ਕਹਿਣਾ ਸ਼ੁਰੂ ਕਰ ਦਿੰਦਾ ਹੈ।
ਮੈਂ ਜਾਣਦਾ ਹਾਂ ਕਿ ਚੈਟ ਦੀ ਆਪਣੀ ਕੀਮਤ ਹੈ। ਭਾਸ਼ਾ ਅਸਪਸ਼ਟਤਾ (ambiguity) ਨੂੰ ਸੰਭਾਲਦੀ ਹੈ। ਕਦੇ-ਕਦੇ ਗੁੰਝਲਦਾਰ ਵਿਚਾਰ ਨੂੰ ਪ੍ਰਗਟ ਕਰਨ ਲਈ ਸ਼ਬਦ ਹੀ ਇੱਕੋ-ਇੱਕ ਤਰੀਕਾ ਹੁੰਦੇ ਹਨ।
ਹੱਲ ਭਾਸ਼ਾ ਨੂੰ ਹਟਾਉਣਾ ਨਹੀਂ ਹੈ। ਭਾਸ਼ਾ ਨੂੰ ਐਂਟਰੀ ਪੁਆਇੰਟ ਵਜੋਂ ਅਤੇ ਤਿਆਰ ਕੀਤੇ ਗਏ UI ਨੂੰ ਜਵਾਬ ਵਜੋਂ ਵਰਤੋ।
ਆਪਣੀ ਬੇਨਤੀ ਸਾਧਾਰਨ ਸ਼ਬਦਾਂ ਵਿੱਚ ਟਾਈਪ ਕਰੋ। ਉਸ ਬੇਨਤੀ ਲਈ ਤੁਰੰਤ ਸਹੀ ਇੰਟਰਫੇਸ ਪ੍ਰਾਪਤ ਕਰੋ। ਭਾਸ਼ਾ ਅੰਦਰ ਜਾਂਦੀ ਹੈ, ਇੰਟਰਫੇਸ ਬਾਹਰ ਆਉਂਦਾ ਹੈ। ਚੈਟ ਸਿਰਫ਼ ਮੁੱਖ ਦਰਵਾਜ਼ਾ ਹੈ, ਪੂਰਾ ਘਰ ਨਹੀਂ।
ਅਸੀਂ ਬਿਹਤਰ ਚੈਟ ਉਤਪਾਦ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਸਾਲ ਬਿਤਾਏ। ਅਸੀਂ ਮੈਮੋਰੀ ਅਤੇ ਰਫ਼ਤਾਰ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕੀਤਾ। ਪਰ ਅਸੀਂ ਉਸੇ ਛੋਟੇ ਟੈਕਸਟ ਬਾਕਸ ਦੇ ਅੰਦਰ ਹੀ ਰਹਿ ਗਏ।
ਅਸਲ ਛਾਲ ਬਾਕਸ ਦੇ ਅੰਦਰ ਇੱਕ ਬਿਹਤਰ ਜਵਾਬ ਨਹੀਂ ਹੈ। ਅਸਲ ਛਾਲ ਬਾਕਸ ਦਾ ਖ਼ਤਮ ਹੋਣਾ ਹੈ। ਮਾਡਲ ਨੂੰ ਤੁਹਾਨੂੰ ਉਹ ਸਹੀ ਸਤਹ (surface) ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ ਜਿਸਦੀ ਤੁਹਾਨੂੰ ਆਪਣਾ ਅਗਲਾ ਫੈਸਲਾ ਲੈਣ ਲਈ ਲੋੜ ਹੈ।
ਏਜੰਟ ਕਾਫ਼ੀ ਸਮਾਰਟ ਹਨ। ਸਾਨੂੰ ਬੱਸ ਉਹਨਾਂ ਨੂੰ ਗੱਲਾਂ ਕਰਨਾ ਬੰਦ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਸਾਧਨਾਂ (tools) ਨੂੰ ਬਣਾਉਣਾ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਕਹਿਣ ਦੀ ਲੋੜ ਹੈ ਜਿਨ੍ਹਾਂ ਦੀ ਸਾਨੂੰ ਲੋੜ ਹੈ।
Source: https://dev.to/nishkarsh_gupta/why-ai-coding-agent-shouldnt-hand-us-a-chat-box-3ccj
Optional learning community: https://t.me/GyaanSetuAi
