నేను ఒక AI కోడింగ్ ఏజెంట్‌ను నా కోడ్‌బేస్ మ్యాప్‌ను రూపొందించడానికి అనుమతించాను, ఆ తర్వాత ఏం జరిగిందో ఇక్కడ చూడండి

నేను ఒక AI కోడింగ్ ఏజెంట్‌ను నా కోడ్‌బేస్ మ్యాప్‌ను రూపొందించడానికి అనుమతించాను, ఆ తర్వాత ఏం జరిగిందో ఇక్కడ చూడండి

AI కోడింగ్ అసిస్టెంట్‌లకు మీ కోడ్ గురించిన మెమరీని అందించే టూల్ అయిన Graft పై ఒక ప్రత్యక్ష పరిశీలన

ఏదైనా బగ్‌ను పరిష్కరించమని లేదా ఏదైనా ఎలా పనిచేస్తుందో వివరించమని మీరు ఒక AI కోడింగ్ అసిస్టెంట్‌ను అడిగిన ప్రతిసారీ, అది సాధారణంగా సున్నా నుంచే ప్రారంభిస్తుంది. అది ఫైళ్లను చదువుతుంది, grep చేస్తూ వెతుకుతుంది మరియు నిన్నటికే దానికి ఉన్న మీ ప్రాజెక్ట్ గురించిన అవగాహనను మళ్లీ నెమ్మదిగా పునర్నిర్మించుకుంటుంది. ఈ రోజు సెప్టెంబర్ 2, 2026, మరియు ఈ సమస్యపై ఇప్పుడు మరింత శ్రద్ధ వహిస్తున్నారు, ఎందుకంటే AI కోడింగ్ ఏజెంట్లు ఒక సంవత్సరం క్రితం కంటే ఇప్పుడు చాలా ఎక్కువ స్వయంప్రతిపత్తితో కూడిన, బహుళ-దశల పనులను చేస్తున్నాయి, అంటే ప్రతి సెషన్‌లో "మొదటి నుండి ప్రారంభించడం" వల్ల సమయం మరియు టోకెన్ బిల్లు రెండింటి పరంగానూ ఖర్చు వేగంగా పెరుగుతుంది.

సరిగ్గా ఈ సమస్యనే Graft అనే టూల్ పరిష్కరించడానికి ప్రయత్నిస్తుంది. నేను దీన్ని ఏదో డెమో ప్రాజెక్ట్‌పై కాకుండా ఒక నిజమైన ప్రాజెక్ట్‌పై ప్రయత్నించాను, మరియు ఇది వాస్తవంగా ఏమి చేస్తుంది, దేనిని కనుగొంది మరియు ఎక్కడ లోపించింది అనే విషయాలను మీకు వివరంగా తెలియజేయాలనుకుంటున్నాను.

అసలు Graft అంటే ఏమిటి

Graftను మీ కోడ్‌కు ఒక లైబ్రేరియన్‌లా భావించండి. ఏదైనా అర్థం చేసుకోవలసి వచ్చిన ప్రతిసారీ AI ఏజెంట్ ఫోల్డర్ల గుండా తిరగడానికి బదులుగా, Graft ఒక్కసారి ఒక ఇండెక్స్‌ను నిర్మిస్తుంది: మీ కోడ్‌లోని ప్రతి భాగం ఏమి చేస్తుందో, ఏ ఫంక్షన్లు ఇతర ఫంక్షన్లను కాల్ చేస్తాయో మరియు ప్రతిదీ ఎలా అనుసంధానించబడి ఉందో వివరించే చిన్న, ఒకదానితో ఒకటి లింక్ చేయబడిన టెక్స్ట్ ఫైళ్ల ఫోల్డర్ ఇది.

ఇది రెండు లేయర్‌లలో ఈ పనిని చేస్తుంది:

  1. ఒక స్ట్రక్చరల్ గ్రాఫ్, ఇది tree-sitter అనే కోడ్-పార్సింగ్ టెక్నిక్‌తో నిర్మించబడింది. ఈ లేయర్‌కు ఎటువంటి AI మోడల్ అస్సలు అవసరం లేదు. ఇది కంపైలర్ లాగానే మీ కోడ్‌ను చదివి, ఫంక్షన్ పేర్లు, క్లాస్‌లు మరియు వాటి మధ్య ఉన్న కనెక్షన్‌లను సేకరిస్తుంది.
  2. ఒక ఐచ్ఛిక కాన్సెప్ట్ లేయర్, ఇది కోడ్‌లోని ప్రతి భాగం దేనికోసమో సరళమైన భాషలో సారాంశాలను రాయడానికి AI మోడల్‌ను ఉపయోగిస్తుంది. ఈ భాగాన్ని రన్ చేయడానికి డబ్బు ఖర్చవుతుంది ఎందుకంటే ఇది ఒక AI మోడల్‌ను కాల్ చేస్తుంది, కాబట్టి ఇది opt-in గా ఉంటుంది.

ముఖ్యమైన భాగం ఏమిటంటే: మొదటి లేయర్, అంటే మీ మొత్తం కోడ్‌బేస్‌ను మ్యాప్ చేసేది, ఉచితం మరియు దీనికి ఎటువంటి API కీ అవసరం లేదు. ఇది కేవలం మీ ఫైళ్లను లోకల్‌గా పార్స్ చేస్తుంది.

నేను దీన్ని ఒక నిజమైన ప్రాజెక్ట్‌పై ఎందుకు పరీక్షించాలని నిర్ణయించుకున్నాను

నేను ఒకే రిపోజిటరీలోని అనేక నిజమైన కోడ్‌బేస్‌లలో పనిచేస్తున్నాను: Kotlinలో రాసిన ఒక Android యాప్, ఆధునిక వెబ్ ఫ్రేమ్‌వర్క్‌తో నిర్మించిన ఒక వెబ్‌సైట్, రెండు చిన్న బ్యాకెండ్ సర్వీసులు మరియు చిన్న చిన్న పనుల కోసం కొన్ని Python స్క్రిప్ట్‌లు. ఆ కోడ్‌బేస్‌లలో ఒకటైన Android యాప్‌లో ఒకే ఒక్క ఫైల్ ఉంది, అది సరిగ్గా విభజించబడకుండా కొత్త ఫీచర్లు దానికి జోడించబడుతూ ఉండటం వల్ల మూడు వేల లైన్లకు పైగా పెరిగిపోయింది. నిజమైన సాఫ్ట్‌వేర్ ప్రాజెక్ట్‌లలో ఇది చాలా సాధారణమైన పరిస్థితి. అందరూ "తర్వాత" రీఫాక్టర్ చేద్దాం అనుకుంటారు, కానీ ఆ తర్వాత అనేది వాయిదా పడుతూనే ఉంటుంది.

అలాంటి ఫైల్‌ను ముట్టుకునే ముందు, మీరు చేసే ఒక చిన్న మార్పు మూడు స్క్రీన్ల దూరంలో ఉన్న దేనినైనా నిశ్శబ్దంగా పాడుచేయకుండా ఉండటానికి, దేనిపై ఏది ఆధారపడి ఉందో ఖచ్చితంగా తెలుసుకోవాలనుకుంటారు. Graft సమాధానం ఇవ్వడానికి రూపొందించబడింది సరిగ్గా ఇలాంటి ప్రశ్నే, కాబట్టి ఇది ఒక సరైన, నిష్పాక్షికమైన పరీక్షగా అనిపించింది.

దీనిని సెటప్ చేయడం

దశ 1: టూల్‌ను ఇన్‌స్టాల్ చేయండి

మీ మెషీన్‌లో ఏదైనా డెవలపర్ టూల్‌ను గ్లోబల్‌గా ఇన్‌స్టాల్ చేసినట్లే, Graft కూడా ఒక చిన్న కమాండ్-లైన్ ప్రోగ్రామ్‌గా ఇన్‌స్టాల్ అవుతుంది:

npm install -g @nanonets/graft

దశ 2: ఇది వేటిని మారుస్తుందో ప్రివ్యూ చూడండి

మీ ప్రాజెక్ట్‌లోకి దేనినైనా అనుసంధానించే ముందు, దేనినీ తాకకుండానే, అది ఏ ఫైళ్లను సృష్టిస్తుందో లేదా మారుస్తుందో ఖచ్చితంగా చూపించమని మీరు దాన్ని అడగవచ్చు:

graft init --dry-run

ఇది ఒక చిన్న జాబితాను చూపించింది: AI కోడింగ్ అసిస్టెంట్‌ల కోసం కొన్ని కాన్ఫిగరేషన్ ఫైళ్లు, ఒక స్కిల్ ఫైల్ మరియు జనరేట్ చేయబడిన గ్రాఫ్ కోసం ప్రత్యేకంగా ఒక ఫోల్డర్. దేనికైనా కమిట్ అయ్యే ముందు ఈ జాబితాను చూడటం అనేది మీ ప్రాజెక్ట్‌ను గౌరవించే టూల్ యొక్క మంచి సంకేతం.

దశ 3: కేవలం ఈ ప్రాజెక్ట్‌కు మాత్రమే పరిమితం చేసి దీనిని రన్ చేయండి

ఇలాంటి కొన్ని టూల్స్ మీరు పనిచేస్తున్న ప్రాజెక్ట్‌నే కాకుండా, మీ మెషీన్‌లోని ప్రతి ప్రాజెక్ట్‌ను ప్రభావితం చేసే గ్లోబల్ కాన్ఫిగరేషన్‌ను కూడా రాయాలని చూస్తాయి. నాకు అది ఇష్టం లేదు, కాబట్టి ప్రతిదీ లోకల్‌గా ఉంచడానికి నేను ఒక ఫ్లాగ్‌ను ఉపయోగించాను:

graft init --no-global -y

ఇది ప్రాజెక్ట్‌లోని ప్రతి నిజమైన సోర్స్ ఫైల్‌ను పార్స్ చేసింది (నా విషయంలో, Kotlin, TypeScript, JavaScript మరియు Python వ్యాప్తంగా 77 ఫైళ్లు) మరియు ఎటువంటి AI మోడల్ ప్రమేయం లేకుండా, ఎటువంటి ఖర్చు లేకుండా, కొన్ని సెకన్లలోనే 561 విభిన్న కోడ్ భాగాలు మరియు వాటి మధ్య 1,229 కనెక్షన్‌లతో ఒక గ్రాఫ్‌ను నిర్మించింది.

దీనిని ఆచరణలో పెట్టడం

ఇక్కడే విషయం ఆసక్తికరంగా మారింది. నేను మొత్తం రెపోకు సంబంధించిన ఓరియంటేషన్ మ్యాప్ ఇవ్వమని Graftను అడిగాను, మరియు అది వెంటనే ఆ భారీ Android ఫైల్‌లోని ఒక ఫంక్షన్‌ను మొత్తం ప్రాజెక్ట్‌లోనే అత్యధికంగా ఆధారపడిన కోడ్ భాగంగా గుర్తించింది, దానికి పది ఇతర స్థానాల నుండి కాల్స్ వస్తున్నాయి.

తర్వాత నేను మరింత సూటియైన ప్రశ్న అడిగాను: నేను ఆ ఒక్క ఫంక్షన్‌ను మార్చితే ప్రభావితమయ్యే ప్రతిదాన్నీ నాకు చూపించు. Graft తక్షణమే మరియు ఉచితంగా మొత్తం గొలుసును ట్రేస్ చేసింది: ప్రతి స్క్రీన్, ప్రతి హెల్పర్ ఫైల్ మరియు ఆ ఫంక్షన్ యొక్క ప్రవర్తన ప్రభావం చూపే ప్రతి స్థలాన్నీ గుర్తించింది.

కోడ్‌ను మాన్యువల్‌గా చదవడం ద్వారా లేదా ప్రతిదానిలో grep చేయమని AI అసిస్టెంట్‌ను అడగడం ద్వారా అదే సమాధానాన్ని పొందాలంటే సుమారు 200,000 టోకెన్ల విలువైన ఫైల్ కంటెంట్‌ను చదవాల్సి వచ్చేది. గ్రాఫ్‌ను తిరిగి ఉపయోగించడం ద్వారా అంత మొత్తాన్ని ఆదా చేసినట్లు Graft యొక్క సొంత అకౌంటింగ్ టూల్ చూపించింది. మిడ్-టైర్ Claude మోడల్ ప్రస్తుత ధరల ప్రకారం, అది ఒకే ఒక్క సంభాషణలో దాదాపు నలభై సెంట్లు ఆదా అయినట్లు. ఇది చిన్నదిగా అనిపించవచ్చు, కానీ ఆ కోడ్‌బేస్ గురించి ఎవరైనా (మనిషి లేదా AI) ఇలాంటి ప్రశ్న అడిగిన ప్రతిసారీ ఈ ఆదా పునరావృతమవుతుంది, ఇక్కడే అసలైన విలువ పెరుగుతుంది.

నాకు నచ్చని అంశాలు

దీనిలోని ప్రతి విషయమూ సమస్యలు లేకుండా ఏమీ లేదు. ఒకసారి అనుసంధానించిన తర్వాత, మీరు మీ AI కోడింగ్ అసిస్టెంట్‌కు పంపే ప్రతి ఒక్క మెసేజ్‌పై రన్ అయ్యే హుక్‌ను Graft ఇన్‌స్టాల్ చేస్తుంది, గ్రాఫ్ అందించడానికి సంబంధిత సమాచారం ఏదైనా ఉందా అని ఇది తనిఖీ చేస్తుంది. రెండు వేర్వేరు సందర్భాల్లో, కోడ్‌తో ఎటువంటి సంబంధం లేని సాధారణ సంభాషణ ప్రశ్నలను నేను అడిగినప్పుడు కూడా, గ్రాఫ్‌ను తనిఖీ చేయమని సూచిస్తూ అది జోక్యం చేసుకుంది. అలా ప్రయత్నించడం తప్పు కాకపోవచ్చు, కానీ ఆ సందర్భాలలో అది అనవసరమైన శబ్దం (అంతరాయం).

ఇది చాలా కొత్త టూల్ అనే విషయాన్ని స్పష్టంగా గుర్తించడం కూడా ముఖ్యం. నేను ఇది రాస్తున్న సమయానికి కేవలం రెండు నెలల క్రితమే ఇది మొదటిసారి ప్రచురించబడింది, మరియు ఆ స్వల్ప వ్యవధిలోనే ఇది ఇప్పటికే డజన్ల కొద్దీ చిన్న వెర్షన్ విడుదలలను చూసింది. ఆ మార్పు వేగం ఉత్సాహాన్ని కలిగించినప్పటికీ, పాత డెవలపర్ టూల్స్‌లా దీనికి ఇంకా సంవత్సరాల తరబడి వాస్తవ ప్రపంచంలో పరీక్షించబడిన అనుభవం (battle testing) లేదని కూడా దీని అర్థం.

ముగింపు

AI కోడింగ్ అసిస్టెంట్‌లతో పనిచేసేటప్పుడు ఎదురయ్యే నిజమైన, రోజువారీ చికాకును Graft పరిష్కరిస్తుంది: అదేమిటంటే సెషన్ల మధ్య ఎప్పటికీ మారని కోడ్‌ను పదేపదే మళ్లీ కనుగొనడం. నిజంగా అస్తవ్యస్తమైన, బహుళ-భాషల ప్రాజెక్ట్‌పై, ఇది కేవలం లోకల్ పార్సింగ్‌ను మాత్రమే ఉపయోగిస్తూ ఉచితంగా, కొన్ని సెకన్లలో ఖచ్చితమైన, ఉపయోగకరమైన సమాధానాలను అందించింది. ఇది మాయాజాలం ఏమీ కాదు, మరియు ఇది మీ వర్క్‌ఫ్లోకు కొద్దిగా అనవసరమైన సంభాషణను జోడిస్తుంది, కానీ మార్పులు చేయడానికి ముందు AI అసిస్టెంట్ కోడ్‌బేస్‌ను అర్థం చేసుకోవడానికి సహాయపడే ఒక పునాదిగా, ఇది తన స్థానాన్ని సంపాదించుకుంది.

ప్రయోజనాలు

  • కోర్ ఫీచర్ కోసం ఎటువంటి AI మోడల్ అవసరం లేకుండా, సెకన్లలో బహుళ-భాషల కోడ్‌బేస్ యొక్క పూర్తి మ్యాప్‌ను నిర్మిస్తుంది
  • స్ట్రక్చరల్ గ్రాఫ్ కోసం దీన్ని రన్ చేయడానికి ఎటువంటి ఖర్చు ఉండదు, ఎందుకంటే ఇది పూర్తిగా ఆఫ్‌లైన్‌లో పనిచేస్తుంది
  • ఒక మార్పు యొక్క పూర్తి "blast radius"ను ట్రేస్ చేయగలదు, అంటే మీరు ఎడిట్ చేయబోయే కోడ్‌పై ఆధారపడే ప్రతిదాన్నీ గుర్తిస్తుంది
  • మీ ఇతర ప్రాజెక్ట్‌ల సెట్టింగ్‌లను తాకకుండా కేవలం ఒకే ప్రాజెక్ట్‌కు పరిమితం చేయవచ్చు
  • ఇది జనరేట్ చేసిన డేటాను ఆటోమేటిక్‌గా వెర్షన్ కంట్రోల్ నుండి దూరంగా ఉంచుతుంది, కాబట్టి షేర్డ్ రిపోజిటరీ అస్తవ్యస్తం కాకుండా ఉంటుంది
  • ఒకే ప్రాజెక్ట్‌లో ఒకేసారి అనేక ప్రోగ్రామింగ్ భాషల్లో పనిచేస్తుంది

లోపాలు

  • ప్రతి ఒక్క మెసేజ్‌పై రన్ అయ్యే హుక్‌ను ఇన్‌స్టాల్ చేస్తుంది, ఇది కోడ్‌తో సంబంధం లేని సంభాషణలలో అంతరాయంలా అనిపించవచ్చు
  • చాలా కొత్త సాఫ్ట్‌వేర్, ఇప్పటివరకు తక్కువ ట్రాక్ రికార్డ్ మాత్రమే ఉంది
  • లోతైన, AI-సారాంశ లేయర్‌కు ఇప్పటికీ మీ స్వంత AI మోడల్ యాక్సెస్ అవసరం మరియు మీరు దీన్ని ఆన్ చేస్తే డబ్బు ఖర్చవుతుంది
  • సెటప్ మీ ప్రాజెక్ట్‌లోని అనేక కాన్ఫిగరేషన్ ఫైళ్లను ప్రభావితం చేస్తుంది, కాబట్టి దాన్ని అంగీకరించే ముందు ఏమి వ్రాయబడుతుందో సమీక్షించడం మంచిది

జాగ్రత్త

ఈ వ్యాసం అవగాహన కోసం ఉద్దేశించబడింది మరియు ఒక నిర్దిష్ట సమయంలో ఒక నిర్దిష్ట టూల్‌తో ఒక వ్యక్తి యొక్క ప్రత్యక్ష అనుభవాన్ని ప్రతిబింబిస్తుంది. ఇక్కడ పేర్కొన్న ఏవైనా కమాండ్లు, సంఖ్యలు లేదా వెర్షన్ వివరాలు టూల్ అభివృద్ధి చెందుతున్న కొద్దీ మారవచ్చు, కాబట్టి మీరే స్వయంగా ఇన్‌స్టాల్ చేసుకునే ముందు టూల్ యొక్క అధికారిక డాక్యుమెంటేషన్‌ను తనిఖీ చేయండి. మీరు దీన్ని షేర్డ్ ప్రాజెక్ట్‌లో ప్రయత్నిస్తుంటే, అది సృష్టించడానికి లేదా సవరించడానికి ప్రతిపాదించే ప్రతి ఫైల్‌ను ముందుగా సమీక్షించండి, మరియు వేరొకరికి మంచి అనుభవం ఉన్నంత మాత్రాన కొత్త డెవలపర్ టూల్ ఎలాంటి రిస్క్ లేనిదని ఎప్పుడూ భావించకండి.

తరచుగా అడిగే ప్రశ్నలు

  • Graft అంటే ఏమిటి? — ఇది కోడ్‌బేస్ యొక్క లోకల్, లింక్ చేయబడిన మ్యాప్‌ను రూపొందించే ఒక టూల్, తద్వారా AI కోడింగ్ అసిస్టెంట్‌లు (మరియు డెవలపర్లు) ప్రతిసారీ మొదటి నుండి మళ్లీ అన్వేషించాల్సిన అవసరం లేకుండా దాన్ని త్వరగా అర్థం చేసుకోగలరు.
  • ఇది పనిచేయడానికి AI మోడల్ అవసరమా? — లేదు. దీని ప్రధాన ఫీచర్ అయిన మీ కోడ్ యొక్క స్ట్రక్చరల్ మ్యాప్, కోడ్-పార్సింగ్ టెక్నిక్‌ను ఉపయోగించి పూర్తిగా ఆఫ్‌లైన్‌లో పనిచేస్తుంది. ఒక ఐచ్ఛిక లోతైన లేయర్ AI మోడల్‌ను ఉపయోగిస్తుంది, అయితే ఆ భాగం తప్పనిసరి కాదు.
  • ప్రస్తుతం ఉన్న ప్రాజెక్ట్‌లో దీన్ని ఇన్‌స్టాల్ చేయడం సురక్షితమేనా? — దేనికైనా అంగీకరించే ముందు అది దేనిని సృష్టిస్తుందో లేదా మారుస్తుందో మీరు ఖచ్చితంగా ప్రివ్యూ చూడవచ్చు, ఏదైనా కొత్త డెవలపర్ టూల్‌ను స్వీకరించే ముందు ఇది సహేతుకమైన భద్రతా తనిఖీ.
  • ఒకే ప్రాజెక్ట్‌లో ఇది ఒకటి కంటే ఎక్కువ ప్రోగ్రామింగ్ భాషలతో పనిచేస్తుందా? — అవును, నా పరీక్ష సమయంలో ఇది ఒకే రన్‌లో కంపైల్ చేయబడిన మొబైల్ యాప్ భాష మరియు అనేక వెబ్ స్క్రిప్టింగ్ భాషలతో సహా బహుళ భాషలను కలిపి పార్స్ చేసింది.
  • ఇది అదే కంప్యూటర్‌లోని నా ఇతర ప్రాజెక్ట్‌లను ప్రభావితం చేస్తుందా? — మీరు అనుమతిస్తేనే. ప్రతిదాన్నీ ఒకే ప్రాజెక్ట్ ఫోల్డర్‌కు పరిమితం చేయడానికి ఒక సెట్టింగ్ ఉంది.
  • ఒక చిన్న, సరళమైన ప్రాజెక్ట్‌లో దీన్ని ఉపయోగించడం విలువైనదేనా? — బహుశా అంతగా ఉండకపోవచ్చు. కోడ్‌బేస్ పరిమాణం మరియు సంక్లిష్టత పెరిగే కొద్దీ, ముఖ్యంగా ఎక్కువ చరిత్ర కూడుకున్న పెద్ద ఫైళ్లతో దీని ప్రయోజనం పెరుగుతుంది.
  • జనరేట్ చేయబడిన మ్యాప్‌ను వెర్షన్ కంట్రోల్‌కు కమిట్ చేయాలా? — అవసరం లేదు, ఇది లోకల్‌గా తిరిగి జనరేట్ చేసుకునేలా రూపొందించబడింది మరియు సాధారణంగా వెర్షన్ కంట్రోల్ నుండి ఆటోమేటిక్‌గా మినహాయించబడుతుంది.
  • అతిపెద్ద లోపం ఏమిటి? — ప్రతి మెసేజ్‌ను తనిఖీ చేసే ఒక హుక్, ఇది కోడ్‌తో ఎలాంటి సంబంధం లేని సంభాషణలలో అనవసరమైన శబ్దంలా అనిపించవచ్చు.

ట్యాగ్‌లు

#ai #developertools #codingagents #productivity #softwareengineering #devtools #automation #codereview #techtools #programming

Free field guide

API Security Testing Checklist

A practical workflow for testing authentication, authorization, input handling, business logic, and evidence without losing track of scope.