నా AI కోడింగ్ ఏజెంట్ పదేపదే విఫలమవుతోంది — నేను ఏమి మార్చాను

ఆరు వారాల క్రితం, నా AI కోడింగ్ ఏజెంట్ పనికిరాని ఫలితాలను (garbage) ఇచ్చేది.

అది కంపైల్ అయ్యే ఫంక్షన్లను రాసేది కానీ, అవి ఏమీ చేయవు. తప్పుడు కారణాల వల్ల టెస్ట్‌లను పాస్ అయ్యేది. ఒక బగ్‌ను సరిచేసి, మూడు కొత్త బగ్‌లను సృష్టించేది.

సమస్య ఏజెంట్ వల్లనే ఉందని నేను అనుకున్నాను. కానీ నేను తప్పుగా అనుకున్నాను. అసలు సమస్య నా క్రమశిక్షణ లేకపోవడమే.

నా ఇంజనీరింగ్ పనిలో 40% కోసం నేను AI ఏజెంట్‌ను ఉపయోగిస్తాను. ఇది refactors, test generation మరియు bug investigations వంటి పనులను చూసుకుంటుంది. నా codebase గందరగోళంగా ఉన్నప్పుడు, AI ఆ గందరగోళాన్ని 3 రెట్లు పెంచేది.

AI క్రమశిక్షణకు ప్రత్యామ్నాయం కాదు. మీ దగ్గర ఏముందో దాన్ని అది మరింత పెంచుతుంది (amplifies).

అవుట్‌పుట్‌ను సరిచేయడానికి నేను నా వర్క్‌ఫ్లోను ఎలా మార్చుకున్నానో ఇక్కడ ఉంది:

  • టెస్ట్‌లు స్టేట్ (state) కాకుండా బిహేవియర్ (behavior) ను నిర్ధారించాలి. "assert user is not None" వంటి టెస్ట్‌లను రాయడం ఆపండి. అది ఒక అబద్ధం. ఒక టెస్ట్ "assert user.email == expected_email" వంటి నిర్దిష్ట డేటాను తనిఖీ చేయాలి. టెస్ట్ బలహీనంగా ఉంటే, AI దానిని వాడుకుంటుంది.

  • ప్రతి ఒక్క diff ని చదవండి. నేను కోడ్‌ను చూడకుండానే refactors ను అంగీకరించేవాడిని. దీనివల్ల circular dependencies మరియు గందరగోళమైన architecture ఏర్పడేవి. ఒక మార్పు ఎందుకు మెరుగైనదో మీరు వివరించలేకపోతే, దానిని తిరస్కరించండి.

  • స్టేట్‌ను స్పష్టంగా ఉంచండి. క్యాచెస్ (caches) లేదా సెషన్లను (sessions) ఎలా హ్యాండిల్ చేయాలో AI "కనుక్కోవాలని" వదిలేయకండి. వీటిని మీ ప్రాంప్ట్‌లలో లేదా స్కీమాలలో (schemas) నిర్వచించండి. ఊహించిన స్టేట్ (Inferred state) వల్ల ప్రొడక్షన్‌లో క్రాష్ అయ్యే సైలెంట్ బగ్‌లు వస్తాయి.

  • ఏజెంట్ చేసే మార్పుల కోసం మీ స్వంత టెస్ట్‌లను రాయండి. ఏజెంట్ ప్రతిసారి కోడ్‌ను మార్చినప్పుడు, నేను మొదట మనిషి రాసిన టెస్ట్‌ను రాస్తాను. దీనికి 15 నిమిషాలు పడుతుంది కానీ గంటల కొద్దీ డీబగ్గింగ్ సమయాన్ని ఆదా చేస్తుంది.

  • స్పష్టమైన వైఫల్యాలను (loud failures) కోరండి. ఒక మార్పు టెస్ట్‌లను పాస్ అయ్యి, లాజిక్‌ను దెబ్బతీస్తే, సిస్టమ్ దానిని గుర్తించాలి. "tests pass, ship it" అనే దానిని సరైన కొలమానంగా ఎప్పుడూ అంగీకరించకండి.

ఫలితాలు:

  • వారానికి వచ్చే బగ్‌లు 5 నుండి 1 కంటే తక్కువకు తగ్గాయి.
  • వారానికి డీబగ్గింగ్ సమయం 6 గంటల నుండి 1 గంటకు తగ్గింది.

ఏజెంట్ మారలేదు. నేను మారాను.

మీరు AI ఏజెంట్‌లను ఉపయోగిస్తుంటే, మొదట మీ codebaseను సరిచేయండి. మీ టెస్ట్‌లను మెరుగుపరచండి, స్టేట్‌ను స్పష్టం చేయండి మరియు రివ్యూలను కఠినతరం చేయండి.

ఏజెంట్ ఒక అద్దం వంటిది. మీరు పెంచదగిన (amplifying) ఏదైనా మంచి విషయం మీ దగ్గర ఉండేలా చూసుకోండి.

Source: https://dev.to/susiloharjo/my-ai-coding-agent-kept-breaking-what-i-changed-4l5f

Optional learning community: https://t.me/GyaanSetuAi