எனது AI கோடிங் ஏஜென்ட் தொடர்ந்து உடைந்து கொண்டே இருந்தது — நான் மாற்றியது என்ன
ஆறு வாரங்களுக்கு முன்பு, எனது AI கோடிங் ஏஜென்ட் பயனற்ற முடிவுகளையே வழங்கியது.
அது கம்பைல் (compile) ஆகும் ஆனால் எந்த வேலையும் செய்யாத பங்க்ஷன்களை (functions) எழுதியது. தவறான காரணங்களுக்காக சோதனைகளில் (tests) வெற்றி பெற்றது. ஒரு பிழையை (bug) சரிசெய்தது, ஆனால் மூன்று புதிய பிழைகளை உருவாக்கியது.
ஏஜென்ட் தான் பிரச்சனை என்று நான் நினைத்தேன். நான் தவறாக இருந்தேன். பிரச்சனை எனது ஒழுக்கமின்மைதான்.
எனது இன்ஜினியரிங் வேலையில் 40% AI ஏஜென்ட்டைப் பயன்படுத்துகிறேன். அது ரீஃபாக்டரிங் (refactors), டெஸ்ட் உருவாக்கம் (test generation) மற்றும் பிழை ஆய்வுகளை (bug investigations) கையாள்கிறது. எனது கோட்பேஸ் (codebase) குழப்பமாக இருந்தபோது, AI அந்த குழப்பத்தை 3 மடங்கு மோசமாக்கியது.
AI ஒழுக்கத்திற்கு மாற்றாகாது. உங்களிடம் ஏற்கனவே என்ன இருக்கிறதோ, அதை அது பலமடங்கு அதிகப்படுத்துகிறது.
வெளியீட்டைச் சரிசெய்ய எனது பணிப்பாய்வை (workflow) நான் மாற்றிய விதம் இதோ:
சோதனைகள் நடத்தையை (behavior) உறுதிப்படுத்த வேண்டும், நிலையை (state) அல்ல. "assert user is not None" என்பது போன்ற சோதனைகளை எழுதுவதை நிறுத்துங்கள். அது ஒரு பொய். ஒரு சோதனை "assert user.email == expected_email" போன்ற குறிப்பிட்ட தரவைச் சரிபார்க்க வேண்டும். சோதனை பலவீனமாக இருந்தால், AI அதைத் தவறாகப் பயன்படுத்திக் கொள்ளும்.
ஒவ்வொரு 'diff'-ஐயும் வாசியுங்கள். நான் குறியீட்டைப் பார்க்காமலேயே ரீஃபாக்டர்களை (refactors) ஏற்றுக்கொண்டேன். இது சுழற்சி சார்ந்த சார்புகள் (circular dependencies) மற்றும் குழப்பமான கட்டமைப்பிற்கு (architecture) வழிவகுத்தது. ஒரு மாற்றம் ஏன் சிறந்தது என்று உங்களால் விளக்க முடியாவிட்டால், அதை நிராகரியுங்கள்.
நிலையை (state) வெளிப்படையாக்குங்கள். கேஷ்கள் (caches) அல்லது செஷன்களை (sessions) எவ்வாறு கையாள்வது என்பதை AI "கண்டுபிடிக்க" விடாதீர்கள். இவற்றை உங்கள் ப்ராம்ப்ட்களில் (prompts) அல்லது ஸ்கீமாவில் (schemas) வரையறுக்கவும். ஊகிக்கப்பட்ட நிலை (inferred state), புரொடக்ஷனில் (production) செயலிழப்பை ஏற்படுத்தும் அமைதியான பிழைகளுக்கு (silent bugs) வழிவகுக்கும்.
ஏஜென்ட் செய்யும் மாற்றங்களுக்கு நீங்களே சோதனைகளை எழுதுங்கள். ஏஜென்ட் குறியீட்டை மாற்றும் ஒவ்வொரு முறையும், நான் முதலில் மனிதனால் எழுதப்பட்ட ஒரு சோதனையை எழுதுகிறேன். இதற்கு 15 நிமிடங்கள் ஆகலாம், ஆனால் இது பல மணிநேர டீபக்கிங்கை (debugging) மிச்சப்படுத்துகிறது.
வெளிப்படையான தோல்விகளைக் கோருங்கள். ஒரு மாற்றம் சோதனைகளில் வெற்றி பெற்றாலும், அது லாஜிக்கை (logic) உடைத்தால், சிஸ்டம் அதைத் தெரியப்படுத்த வேண்டும். "tests pass, ship it" என்பதை ஒரு சரியான அளவுகோலாக (metric) ஒருபோதும் ஏற்றுக்கொள்ளாதீர்கள்.
முடிவுகள்:
- வாரத்திற்கு ஏற்படும் பிழைகள் 5-லிருந்து 1-க்கும் குறைவாகக் குறைந்தது.
- வாரத்திற்குத் தேவைப்படும் டீபக்கிங் நேரம் 6 மணிநேரத்திலிருந்து 1 மணிநேரமாகக் குறைந்தது.
ஏஜென்ட் மாறவில்லை. நான் மாறினேன்.
நீங்கள் AI ஏஜென்ட்களைப் பயன்படுத்தினால், முதலில் உங்கள் கோட்பேஸைச் (codebase) சரிசெய்யுங்கள். உங்கள் சோதனைகளை மேம்படுத்துங்கள், உங்கள் நிலையைத் தெளிவுபடுத்துங்கள் மற்றும் உங்கள் ஆய்வுகளை (reviews) இறுக்கமாக்குங்கள்.
ஏஜென்ட் ஒரு கண்ணாடி போன்றது. நீங்கள் பலமடங்கு அதிகப்படுத்தத் தகுதியான ஒன்றை உங்களிடம் வைத்திருப்பதை உறுதி செய்து கொள்ளுங்கள்.
மூலம்: https://dev.to/susiloharjo/my-ai-coding-agent-kept-breaking-what-i-changed-4l5f
விருப்பத்தேர்வு கற்றல் சமூகம்: https://t.me/GyaanSetuAi
