ਰਿਪੋ ਹੀ ਸੰਦਰਭ ਹੈ: ਏਜੰਟਾਂ ਨੂੰ ਇਤਿਹਾਸ ਦੀ ਲੋੜ ਕਿਉਂ ਨਹੀਂ ਹੁੰਦੀ
ਕੋਡਿੰਗ ਏਜੰਟ ਉਹ ਕੁਝ ਵੀ ਪੜ੍ਹਦੇ ਹਨ ਜੋ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਦਿੰਦੇ ਹੋ। ਇਹ ਸੁਣਨ ਵਿੱਚ ਇੱਕ ਤਾਕਤ ਲੱਗਦੀ ਹੈ। ਆਮ ਤੌਰ 'ਤੇ, ਇਹ ਇੱਕ ਸਮੱਸਿਆ ਹੁੰਦੀ ਹੈ।
ਮੈਂ ਏਜੰਟਾਂ ਨੂੰ ਜ਼ਿਆਦਾ ਡਾਕੂਮੈਂਟੇਸ਼ਨ ਦੇ ਦਿੰਦਾ ਸੀ। ਮੈਂ specs, ADRs, ਅਤੇ planning docs ਲਿਖਦਾ ਸੀ। ਮੈਨੂੰ ਲੱਗਦਾ ਸੀ ਕਿ ਜ਼ਿਆਦਾ ਸੰਦਰਭ (context) ਬਿਹਤਰ ਹੈ। ਫਿਰ ਮੈਂ ਇੱਕ ਏਜੰਟ ਨੂੰ ਬੜੇ ਭਰੋਸੇ ਨਾਲ ਗਲਤੀ ਕਰਦੇ ਦੇਖਿਆ। ਇਹ ਕੋਈ ਹਲੂਸੀਨਾਸ਼ਨ (hallucination) ਨਹੀਂ ਸੀ। ਇਹ ਸਿਰਫ਼ ਇੱਕ ਪੁਰਾਣੇ ਦਸਤਾਵੇਜ਼ ਦੀ ਪਾਲਣਾ ਕਰ ਰਿਹਾ ਸੀ ਜੋ ਇੱਕ ਅਜਿਹੇ ਸਿਸਟਮ ਦਾ ਵਰਣਨ ਕਰਦਾ ਸੀ ਜਿਸਦੀ ਵਰਤੋਂ ਅਸੀਂ ਮਹੀਨਿਆਂ ਪਹਿਲਾਂ ਬੰਦ ਕਰ ਦਿੱਤੀ ਸੀ। ਇਹ ਸੱਚਾਈ ਦੀ ਬਜਾਏ ਇਤਿਹਾਸ ਦੀ ਪਾਲਣਾ ਕਰ ਰਿਹਾ ਸੀ।
ਇਤਿਹਾਸ ਇਨਸਾਨਾਂ ਲਈ ਹੈ। ਇਹ ਦੱਸਦਾ ਹੈ ਕਿ ਕੋਈ ਸਿਸਟਮ ਕਿਉਂ ਮੌਜੂਦ ਹੈ। ਇਹ ਤੁਹਾਨੂੰ trade-offs ਅਤੇ ਪੁਰਾਣੇ ਫੈਸਲਿਆਂ ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
ਏਜੰਟ ਵੱਖਰੇ ਹੁੰਦੇ ਹਨ। ਉਹ ਮੌਜੂਦਾ ਸਿਸਟਮ ਨੂੰ ਐਡਿਟ ਕਰਦੇ ਹਨ। ਉਸ ਕੰਮ ਲਈ, ਉਹਨਾਂ ਨੂੰ ਇਤਿਹਾਸਕ ਵੇਰਵਿਆਂ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ। ਉਹਨਾਂ ਨੂੰ ਸੱਚਾਈ ਦੇ ਮੌਜੂਦਾ ਸਰੋਤ (current source of truth) ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਉਹਨਾਂ ਨੂੰ ਚਾਹੀਦਾ ਹੈ: • ਮੌਜੂਦਾ schemas • ਮੌਜੂਦਾ module boundaries • ਮੌਜੂਦਾ APIs • ਮੌਜੂਦਾ tests • ਮੌਜੂਦਾ configurations
ਜੇਕਰ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਇੱਕ ਏਜੰਟ ਡਾਟਾਬੇਸ ਨੂੰ ਸਮਝੇ, ਤਾਂ ਉਸਨੂੰ ਹਰ migration log ਨੂੰ ਦੁਬਾਰਾ ਪੜ੍ਹਨ ਲਈ ਮਜਬੂਰ ਨਾ ਕਰੋ। ਉਸਨੂੰ ਮੌਜੂਦਾ schema ਦਿਓ। ਜੇਕਰ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਉਹ architecture ਨੂੰ ਸਮਝੇ, ਤਾਂ ਉਸਨੂੰ ਪੁਰਾਣੇ ADRs ਪੜ੍ਹਨ ਲਈ ਨਾ ਕਹੋ। ਉਸਨੂੰ ਮੌਜੂਦਾ module graph ਦਿਓ।
ਖ਼ਤਰਾ 'context pollution' ਦਾ ਹੈ। ਇਹ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਕੋਈ ਤੱਥ ਦੋ ਥਾਵਾਂ 'ਤੇ ਮੌਜੂਦ ਹੁੰਦਾ ਹੈ: ਕੋਡ ਵਿੱਚ ਅਤੇ ਇੱਕ Markdown ਫਾਈਲ ਵਿੱਚ। ਕੋਡ ਤੇਜ਼ੀ ਨਾਲ ਬਦਲਦਾ ਹੈ। ਵੇਰਵੇ (prose) ਉਦੋਂ ਹੀ ਬਦਲਦੇ ਹਨ ਜਦੋਂ ਕੋਈ ਯਾਦ ਰੱਖਦਾ ਹੈ। ਜਦੋਂ ਇਹ ਦੋਵੇਂ ਵੱਖਰੇ ਹੋ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਏਜੰਟ ਪੁਰਾਣੇ ਦਸਤਾਵੇਜ਼ 'ਤੇ ਭਰੋਸਾ ਕਰਦਾ ਹੈ। ਇੱਕ ਏਜੰਟ ਇਨਸਾਨ ਵਾਂਗ ਚੈੱਕ ਨਹੀਂ ਕਰਦਾ ਜਾਂ ਤਸਦੀਕ ਨਹੀਂ ਕਰਦਾ। ਇਹ ਜੋ ਵੀ ਪਹਿਲਾਂ ਪੜ੍ਹਦਾ ਹੈ, ਉਸਨੂੰ ਹੀ ਸੱਚ ਮੰਨ ਲੈਂਦਾ ਹੈ।
ਬਿਹਤਰ ਡਾਕੂਮੈਂਟਸ ਲਿਖਣਾ ਬੰਦ ਕਰੋ। ਅਜਿਹੀਆਂ ਥਾਵਾਂ ਘਟਾਓ ਜਿੱਥੇ ਤੱਥ ਗਲਤ ਹੋ ਸਕਦੇ ਹਨ।
ਨਿਯਮਾਂ ਨੂੰ ਟੈਕਸਟ ਤੋਂ ਸਿਸਟਮ ਦੇ ਢਾਂਚੇ ਵਿੱਚ ਲਿਆਓ: • architecture ਲਈ directory structures ਦੀ ਵਰਤੋਂ ਕਰੋ। • intent ਲਈ naming ਦੀ ਵਰਤੋਂ ਕਰੋ। • APIs ਲਈ package exports ਦੀ ਵਰਤੋਂ ਕਰੋ। • boundaries ਲਈ lint rules ਦੀ ਵਰਤੋਂ ਕਰੋ। • data contracts ਲਈ schemas ਦੀ ਵਰਤੋਂ ਕਰੋ। • behavior ਲਈ tests ਦੀ ਵਰਤੋਂ ਕਰੋ।
README ਵਿੱਚ ਇੱਕ ਨਿਯਮ ਸਿਰਫ਼ ਇੱਕ ਸੁਝਾਅ ਹੈ। ESLint config ਵਿੱਚ ਇੱਕ ਨਿਯਮ ਇੱਕ ਕੰਧ ਹੈ। ਏਜੰਟ ਕੰਧ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਨਹੀਂ ਕਰ ਸਕਦਾ।
ਮੈਂ ਆਪਣੀਆਂ instruction ਫਾਈਲਾਂ ਨੂੰ ਛੋਟਾ ਕਰ ਦਿੱਤਾ ਹੈ। ਉਹ ਹੁਣ architecture ਨੂੰ ਦੁਬਾਰਾ ਨਹੀਂ ਦੱਸਦੀਆਂ। ਇਸਦੀ ਬਜਾਏ, ਉਹ ਉਸ ਥਾਂ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀਆਂ ਹਨ ਜਿੱਥੇ architecture ਮੌਜੂਦ ਹੈ।
ਇਤਿਹਾਸ ਲੋਕਾਂ ਲਈ ਰੱਖੋ। ਏਜੰਟਾਂ ਲਈ ਮੌਜੂਦਾ ਸਥਿਤੀ ਨੂੰ ਸਹੀ ਰੂਪ ਦਿਓ।
Source: https://dev.to/gyu07/the-repo-is-the-context-why-agents-dont-need-history-4ien
Optional learning community: https://t.me/GyaanSetuAi