IT · PRO
Kodda SI agentiga vazifani qanday qoʻyish: prompt oʻrniga spetsifikatsiya
· 13 daqiqa oʻqish · ultrathink tahririyati
Sunʼiy intellekt (SI) agenti uchun yaxshi vazifa — chiroyli ifoda emas, qisqa spetsifikatsiya: nima olish kerak, repozitoriyning qayerida bu qilinadi, nimaga tegish mumkin emas va vazifa bajarilganini qanday tekshirish. Chegaralar va tayyorlik mezonlari qanchalik aniq yozilsa, agent shunchalik kam narsani oʻzicha toʻqiydi. Kod uchun prompt dasturlashni biladigan, lekin loyihangizni birinchi marta koʻrayotgan yangi hamkasbga yoziladigan yaxshi vazifa kabi yoziladi.
Nega «roʻyxatdan oʻtish formasini qil» ishlamaydi
Agent siz uchun ravshan boʻlgan narsalarni bilmaydi: loyihada qaysi forma kutubxonasi qabul qilingan, oʻxshash ekranlar qayerda, validatsiya qanday tuzilgan, xato xabarlari qanday yoziladi va forma yuborilgandan keyin nima qilishi kerak. Aytilmagan hamma narsani u sizning kodingizdan emas, oʻz oʻqitilishidagi eng ehtimolli variant bilan toʻldiradi. Natija ishonarli koʻrinadi va hatto ishlaydi, lekin loyihaga mos tushmaydi.
Buning teskari tomoni ham bor: agent vazifani soʻzma-soʻz bajarishga moyil. «Yiqilayotgan testni tuzat» desangiz, u test ushlagan koddagi xatoni emas, testning oʻzini tuzatishi mumkin. «Sahifani tezlashtir» desangiz, maʼlumotlar doim yangi boʻlishi kerak boʻlgan joyga kesh qoʻshib qoʻyishi mumkin. Maqsad qanchalik aniq boʻlsa, bunday soʻzma-soʻz, lekin foydasiz ijro uchun joy shunchalik kam qoladi.
Shuning uchun «prompt»ni sehrli ibora deb oʻylashni toʻxtatgan maʼqul. Siz texnik topshiriq yozasiz: uni qayta oʻqish, hamkasbga berish va keyin ishni aynan u boʻyicha tekshirish mumkin. Agar vazifani matn boʻyicha tekshirib boʻlmasa, agent ham qachon toʻxtashni tushunmaydi.
Prompt va spetsifikatsiya: farqi nimada
Kundalik maʼnodagi prompt — bu iltimos: «sahifalash qoʻsh», «loginni tuzat». Spetsifikatsiya esa aks holda agent oʻzi hal qiladigan savollarga javob beradi: bu nima uchun kerak, aynan nimani natija deb hisoblash, qanday doirada harakat qilish va hammasi chiqqaniga qanday ishonch hosil qilish.
Har bir vazifa toʻliq spetsifikatsiyani talab qilmaydi. Tavsif hajmini xato narxi va vazifa qanchalik bir maʼnoli ekani bilan solishtirish foydali.
- Vazifa mexanik va bir maʼnoli boʻlsa — funksiyani butun loyihada qayta nomlash, imlo xatosini tuzatish, bitta joyda versiyani yangilash — bir-ikki qator yetarli, chunki toʻgʻri natija bitta.
- Vazifa mavjud namunani takrorlasa — qoʻshnisiga oʻxshatib yangi endpoint — namunaga havola va tayyorlik mezoni kerak, chunki asosiy bilim allaqachon kodda bor.
- Vazifa xatti-harakat, maʼlumotlar yoki kontraktlarni oʻzgartirsa — yangi funksiya, javob formatini oʻzgartirish, migratsiya — toʻliq spetsifikatsiya kerak, chunki xato qimmat va yechim variantlari koʻp.
- Natijani oʻzingiz tasvirlay olmasangiz — vazifa agent uchun hali tayyor emas. Avval talablarni aniqlang yoki agentdan hech narsani oʻzgartirmasdan kodni oʻrganib, variantlarni tasvirlab berishni soʻrang.
Mahsulot qarori kerak boʻlgan vazifalar haqida alohida aytish kerak: foydalanuvchiga qanday matn koʻrsatish, ikki maʼnoli holatda qanday yoʻl tutish, talablar toʻqnashganda nima muhimroq. Agent bunday qarorni indamay va ishonarli tarzda qabul qiladi. Mahsulot savoliga javob vazifada boʻlmasa, ichida begona qaror yashiringan kod olgandan koʻra, agentdan toʻxtab, savol berishni soʻragan maʼqul.
Yaxshi vazifaning tuzilishi
Yaxshi spetsifikatsiya odatda yarim sahifaga sigʻadi. Unda yetti element bor va ularning har biri tushib qolsa, oʻziga xos xatolar turi paydo boʻladi.
- Maqsad. Qaysi muammoni kim uchun hal qilayotganimiz haqida bir-ikki gap. Maqsadsiz agent siz oldindan koʻrmagan vaziyatda oqilona qaror qabul qila olmaydi.
- Hozirgi va kutilgan xatti-harakat. Xato uchun — takrorlash qadamlari, nima boʻlyapti va nima boʻlishi kerak. Busiz agent oʻzi xato deb hisoblagan narsani tuzatadi.
- Koddagi kontekst. Qaysi modullar ishtirok etadi, oʻxshash yechim namunasini qayerdan olish mumkin. Busiz agent qidiruvga vaqt sarflaydi yoki oʻzinikini oʻylab topadi.
- Chegaralar. Nimani oʻzgartirish mumkin, nimani mumkin emas. Busiz diff loyiha boʻylab yoyilib ketadi.
- Cheklovlar. Qabul qilingan kutubxonalar, kelishuvlar, unumdorlik, moslik, xavfsizlik talablari. Busiz agent sizda qabul qilinganini emas, mashhurini oladi.
- Tayyorlik mezonlari. Tugallanishning tekshiriladigan shartlari. Ularsiz agent oʻziga yetarli tuyulganda toʻxtaydi.
- Tekshirish usuli. Qaysi buyruqlarni ishga tushirish va hisobotda nimani koʻrsatish. Busiz «tayyor» shunchaki soʻz boʻlib qoladi.
Repozitoriy konteksti: hammasini emas, keraklisini bering
Agentlar kod boʻyicha oʻzlari qidira oladi, lekin qidiruvni yoʻnaltirish kerak. Kirish nuqtasini koʻrsating: «hisob-kitob mantigʻi — billing modulida, oʻxshash endpoint namunasi — orders». Mavjud namunaga havola uslubni uzun tasvirlashdan yaxshiroq ishlaydi: agent sizning reviewingizdan oʻtgan kod tuzilishini takrorlaydi.
Doimiy loyiha qoidalariga nimani chiqarish kerak
Vazifadan vazifaga takrorlanadigan narsalarni — yigʻish va test buyruqlari, loyiha tuzilishi, qabul qilingan kutubxonalar, taqiqlar — agent sessiya boshida oʻqiydigan doimiy repozitoriy qoidalari fayliga chiqaring. Shunda vazifaning oʻzida faqat unga tegishli narsa qoladi va shoshilib muhim qoidani unutib qoʻymaysiz.
Versiyalar va tashqi API
Agar vazifa agent eski versiyada eslab qolgan boʻlishi mumkin boʻlgan tashqi API yoki kutubxonaga tegishli boʻlsa, bogʻliqliklar faylidagi versiyani koʻrsating va dolzarb hujjatlardan parcha ilova qiling. Bu agent sizning versiyangizda allaqachon yoki hali mavjud boʻlmagan chaqiruvlarni yozadigan butun bir xatolar toifasini yoʻqotadi.
Yozilmagan qoidalar
Kodda yozilmagan kelishuvlar agentga nomaʼlum. Jamoada ogʻzaki qoida boʻlsa — masalan, «sanalarni doim UTC boʻyicha saqlaymiz» yoki «bu modulda oqimni boshqarish uchun istisnolardan foydalanmaymiz» — uni vazifada aytish, yaxshisi esa loyiha qoidalariga yozib qoʻyish kerak.
Teskari xato — vazifaga kod bazasining yarmini qoʻshib yuborish. Ortiqcha kontekst chalgʻitadi, asosiy narsani xiralashtiradi va agentga ish uchun kerak boʻlgan joyni egallaydi. Mazmunni emas, koʻrsatkichlarni bering: kerakli fayllarni agent oʻzi ochadi.
Nosozlikni tuzatish uchun kontekst
Xato uchun eng qimmatli kontekst — qayta hikoya emas, aniq faktlar. Xato matnini toʻliq, uning atrofidagi log parchasini, takrorlash qadamlarini va u yuzaga keladigan muhitni qoʻying. «Saqlashda yiqiladi» degan qayta hikoya agent sababni topadigan tafsilotlarni yoʻqotadi; istisnoning aniq matni koʻpincha darhol fayl va qatorni koʻrsatadi. Xato faqat maʼlum maʼlumotlarda takrorlansa, ularni tasvirlang yoki shaxsiy maʼlumotlardan tozalangan misol ilova qiling.
Chegaralar va cheklovlar: nimaga tegish mumkin emas
Agent vazifa yechimini optimallashtiradi va oʻzgarishlarning tizimning qolgan qismi uchun narxini sezmaydi. Uning uchun umumiy komponentni qayta nomlash ham bir qatorni tuzatish bilan bir xil harakat. Shuning uchun chegaralarni, ayniqsa oʻzgarishlar boshqa odamlar yoki boshqa tizimlarga taʼsir qiladigan joylarda, aniq ifodalash kerak.
- Ommaviy kontraktlar: boshqa servislar yoki mobil ilovalar oʻqiydigan API javoblari, hodisalar, xabar sxemalari formati.
- Maʼlumotlar bazasi sxemasi: oʻzgarishlar faqat alohida vazifa va migratsiya orqali.
- Umumiy komponentlar va kutubxonalar: ulardagi tahrirlar butun loyihaga taʼsir qiladi.
- Bogʻliqliklar: yangi paketlar — faqat kelishilgandan keyin.
- Konfiguratsiya va infratuzilma: yigʻish fayllari, CI, muhit oʻzgaruvchilari.
- Generatsiya qilingan kod: u qoʻlda emas, generator orqali tahrirlanadi.
Chegaralarni ijobiy shaklda ham ifodalash foydali: «oʻzgarishlar faqat hisobotlar moduli papkasida va uning testlarida». Bunday chegarani oʻzgartirilgan fayllar roʻyxati boʻyicha tekshirish oson.
Tekshirib boʻladigan tayyorlik mezonlari
«Toʻgʻri ishlashi kerak» — mezon emas. Mezon — bahssiz tekshiriladigan shart: test oʻtadi, buyruq xatosiz tugaydi, maʼlum kirish maʼlumotlarida maʼlum natija chiqadi. Mezon avtomatik test bilan ifodalangani eng yaxshisi.
- Yomon: «forma maʼlumotlarni yaxshi tekshirishi kerak». Yaxshi: «email boʻsh boʻlsa, forma yuborilmaydi va tarjima faylidagi xabarni koʻrsatadi; bunga test bor va u oʻtadi».
- Yomon: «soʻrovni optimallashtirish». Yaxshi: «buyurtmalar roʻyxati har bir buyurtma uchun alohida soʻrov oʻrniga bazaga bitta soʻrov bilan yuklanadi; mavjud testlar oʻtadi».
- Yomon: «modul kodini tozalash». Yaxshi: «takrorlanadigan chegirma hisobini bitta funksiyaga chiqarish; xatti-harakat oʻzgarmaydi, modulning barcha testlari oʻzgarishsiz oʻtadi».
Avval test
Xatolar uchun «avval test» tartibi yaxshi ishlaydi: agentdan xatoni takrorlaydigan va yiqiladigan test yozishni, soʻng testning oʻzini oʻzgartirmasdan, u oʻtadigan qilib kodni tuzatishni soʻrang. Bu agent tekshiruvni kodga moslashtiradigan keng tarqalgan hiyladan himoya qiladi va loyihada xatoning takrorlanishiga qarshi himoya qoldiradi.
Yagona javobi yoʻq vazifalar
Refaktoring uchun mezon xatti-harakatning saqlanishidir: mavjud testlarning barchasi oʻtadi, ommaviy interfeyslar oʻzgarmaydi, diff kerakli moduldan tashqariga chiqmaydi. Test bilan qamrab olish qiyin boʻlgan interfeys vazifalarida aniq holatlarda ekranda nima koʻrinishi kerakligini tasvirlang va buni oʻzingiz tekshiring.
Funksional boʻlmagan talablar
Unumdorlik, foydalanish qulayligi, lokalizatsiya, loglash va xatolarni qayta ishlash vazifaga kamdan-kam tushadi, keyin esa reviewda yuzaga chiqadi. Ularni ham tekshiriladigan qilish mumkin: «soʻrov barcha yozuvlarni xotiraga yuklamasdan bajariladi», «interfeysning barcha yangi matnlari — ikkala tildagi tarjima fayllari orqali», «tashqi servis xatolari soʻrov identifikatori bilan logga yoziladi va foydalanuvchiga xom holda koʻrsatilmaydi». Talab muhim boʻlsa, uning joyi tayyorlik mezonlari roʻyxatida.
Koddan oldin reja va keyin hisobot
Rejani qachon soʻrash kerak
Bir nechta modulga tegadigan yoki turli yechimlarga yoʻl qoʻyadigan vazifa uchun alohida qadam — reja foydali. Agentdan avval kodni oʻrganib, hech narsani tahrirlamasdan oʻzgarishlar rejasini taklif qilishni soʻrang. Rejadagi xatoni tuzatish tayyor diffdagi xatoni tuzatishdan arzonroq.
- 01Agent maqsadni toʻgʻri tushunganini tekshiring: vazifani oʻz soʻzlari bilan qayta aytib berishi buni eng yaxshi koʻrsatadi.
- 02U oʻzgartirmoqchi boʻlgan fayllar roʻyxatini koʻring: ortiqchasi yoʻqmi va keraklisi tushib qolmaganmi.
- 03Tanlangan yondashuvni baholang: u loyihaning mavjud mexanizmlaridan foydalanadimi yoki yangisini oʻylab topadimi.
- 04Savollar va farazlarga eʼtibor bering: har bir faraz — siz biror narsani aytmagan boʻlishingiz mumkin boʻlgan joy.
- 05Rejani tuzating va shundan keyingina bajarishga ruxsat bering.
Hisobotda nimani talab qilish kerak
- Oʻzgartirilgan fayllar roʻyxati va har bir oʻzgarishning qisqa izohi.
- Qaysi tekshiruv buyruqlari qanday natija bilan ishga tushirilgani — qayta hikoya emas, chiqish natijasi bilan.
- Nima tekshirilmay qolgani yoki shubha uygʻotgani.
- Vazifada boʻlmagani uchun agent oʻzi qanday qarorlar qabul qilgani.
Oxirgi band ayniqsa qadrli. Agent mustaqil qabul qilgan qarorlar — spetsifikatsiyangiz toʻliq boʻlmagan joylarning aynan oʻzi. Ularni reviewda birinchi navbatda tekshirish va keyingi vazifalarda hisobga olish kerak.
Vazifa shabloni va uchta shartli misol
- 01Maqsad: nima va nima uchun qilish kerak.
- 02Hozir / boʻlishi kerak: joriy va kutilgan xatti-harakat.
- 03Qayerda: modullar va fayllar, oʻxshash yechim namunasi.
- 04Mumkin emas: nimaga tegmaslik va nimani qoʻshmaslik.
- 05Tayyor, qachonki: tekshiriladigan shartlar roʻyxati.
- 06Tekshiruv: ishga tushirilishi kerak boʻlgan buyruqlar.
- 07Hisobot: yakunda nimani koʻrsatish.
Misol: xatoni tuzatish
Maqsad: foydalanuvchi uzun ismli profilni saqlay olmaydi. Hozir server xato qaytaradi; boʻlishi kerak — ruxsat etilgan uzunlik doirasidagi ismni saqlash va oshib ketganda tushunarli xabar koʻrsatish. Qayerda: profil ishlov beruvchisi va uning testlari. Mumkin emas: baza sxemasini oʻzgartirish. Tayyor, qachonki uzun ism uchun yangi test barcha mavjud testlar bilan birga oʻtsa. Tekshiruv: profil moduli testlari va turlar tekshiruvi.
Misol: namuna asosida yangi funksiya
Maqsad: menejerlarga buyurtmalar uchun allaqachon qilinganidek, mijozlar roʻyxatini CSV koʻrinishida eksport qilish kerak. Qayerda: namuna — hisobotlar modulidagi buyurtmalar eksporti. Mumkin emas: yangi kutubxonalar qoʻshish, mavjud eksportni oʻzgartirish. Tayyor, qachonki endpoint koʻrsatilgan ustunlar bilan fayl qaytarsa, faqat mijozlar roʻyxatini koʻrishga haqli rollarga ochiq boʻlsa va bunga testlar, jumladan kirish huquqi yoʻq rol uchun rad etish testi boʻlsa.
Misol: refaktoring
Maqsad: chegirma hisobi uch joyda takrorlangan va nusxalar allaqachon bir-biridan farq qila boshlagan. Qayerda: savatcha moduli. Mumkin emas: xatti-harakatni va modulning ommaviy funksiyalarini oʻzgartirish. Tayyor, qachonki hisob bitta funksiyaga chiqarilsa, barcha joylar undan foydalansa va mavjud testlar oʻzgarishsiz oʻtsa. Hisobot: birlashtirishdan oldin nusxalar orasida topilgan farqlarni sanab berish — ularni hal qilish insonga qoladi.
Misol: oʻzgarishlarsiz tadqiqot
Maqsad: savdo hisoboti nega baʼzan bazadagi maʼlumotlardan farq qilishini tushunish. Qayerda: hisobotlar moduli va uni qayta hisoblaydigan vazifalar. Mumkin emas: kod va maʼlumotlarni oʻzgartirish. Tayyor, qachonki agent hisobot maʼlumotlarni qayerdan olishini, ular qaysi paytlarda qayta hisoblanishini va farq haqidagi qanday farazlar borligini koddagi aniq joylarga havolalar bilan tasvirlasa. Bunday vazifa murakkab oʻzgarishdan oldin foydali: siz kod xaritasini olasiz, tuzatish haqidagi qarorni esa oʻzingiz qabul qilasiz.
Vazifa qoʻyishdagi odatiy xatolar va ularni qanday payqash
- Bitta vazifada bir-biriga bogʻliq boʻlmagan bir nechta vazifa. Belgisi — vazifada «yana» bor. Agent ularni yarim-yorti bajarib, oʻzgarishlarni aralashtiradi; alohida vazifa va branchlarga ajrating.
- Muammo oʻrniga yechim. Belgisi — vazifa «kutubxona qoʻsh» yoki «falon usulda qil» bilan boshlanadi. Kodda mos mexanizm boʻlishi mumkin boʻlsa ham, usulni siz buyurasiz; muammoni tasvirlab, variantlar soʻrang.
- Toʻxtash mezoni yoʻq. Belgisi — agent «yaxshilashda» davom etib, diffni kengaytiradi. Aniq tugallanish shartlarini qoʻshing.
- Mavhum soʻzlar. Aniqlashtirilmagan «optimallashtirish», «tozalash», «qulayroq qilish». Ularni oʻlchanadigan yoki kuzatiladigan natija bilan almashtiring.
- «Nima uchun» izohlanmagan. Belgisi — agent chegaraviy holatlarda rasman toʻgʻri, lekin gʻalati qarorlar qabul qiladi. Maqsad va foydalanuvchini qoʻshing.
- Yashirin kutishlar. Belgisi — reviewda vazifada boʻlmagan izohlarni yozasiz. Ularni vazifaga yoki loyiha qoidalariga koʻchiring.
Aniqlashtirishmi yoki qaytadan boshlashmi
Natija qoniqtirmasa, ikki yoʻl bor: oʻsha sessiyada aniqlashtirishlar bilan davom etish yoki oʻzgarishlarni bekor qilib, vazifani qaytadan qoʻyish. Tanlov xato aynan qayerda ekaniga bogʻliq.
- Yoʻnalish toʻgʻri, xatolar esa mahalliy boʻlsa — oʻsha sessiyada aniqlashtiring: agent kontekstni allaqachon yigʻgan va kichik tuzatish yangi boshlanishdan arzonroq.
- Agent maqsadni notoʻgʻri tushungan yoki notoʻgʻri yondashuvni tanlagan boʻlsa — bekor qiling va tuzatilgan spetsifikatsiya bilan qaytadan boshlang, chunki notoʻgʻri yechim ustidagi tuzatishlar odatda diffni chalkashtirib yuboradi.
- Sessiya uzun boʻlib, agent allaqachon tuzatilgan xatolarni takrorlay boshlagan boʻlsa — qabul qilingan qarorlarning qisqa xulosasi bilan yangi sessiya boshlang, chunki kontekst ifloslangan.
- Bir xil narsani birinchi marta aniqlashtirmayotgan boʻlsangiz — toʻxtang va vazifani butunlay qayta yozing: muammo ijroda emas, vazifa qoʻyishda.
Aniqlashtirishning oʻzini ham kichik vazifa sifatida yozgan maʼqul. Umumiy «bu emas» oʻrniga bitta aniq izoh: qaysi fayl yoki xatti-harakat qoniqtirmaydi, nima uchun va nima chiqishi kerak. Bajarilmagan tayyorlik mezonini takrorlang va tekshiruvlarni qayta ishga tushirishni soʻrang. Ketma-ket bir nechta mavhum izoh agentga yordam berishdan koʻra uni koʻproq chalkashtiradi.
Vazifani yuborishdan oldin nazorat roʻyxati
- 01Vazifa nima uchun va kim uchun kerakligi matndan tushunarlimi?
- 02Joriy va kutilgan xatti-harakat tasvirlanganmi?
- 03Koddagi kirish nuqtasi va oʻxshash yechim namunasi koʻrsatilganmi?
- 04Nimaga tegish mumkin emasligi sanab oʻtilganmi?
- 05Cheklovlar koʻrsatilganmi: kutubxonalar, moslik, xavfsizlik?
- 06Har bir tayyorlik mezonini muhokamasiz tekshirish mumkinmi?
- 07Oʻtishi kerak boʻlgan test bormi yoki vazifa uni birinchi boʻlib yozishmi?
- 08Tekshiruv buyruqlari koʻrsatilganmi?
- 09Hisobotga nima kiritish kerakligi aytilganmi?
- 10Bu vazifa uchun tahrirdan oldin reja kerakmi?
- 11Kutilgan natija siz diqqat bilan oʻqishga tayyor boʻlgan diffga sigʻadimi?
Xulosa
Agent ishining sifati deyarli butunlay vazifa sifati bilan belgilanadi. Maqsad, kontekst, chegaralar va tekshiriladigan mezonlardan iborat spetsifikatsiya bir necha daqiqa oladi, lekin qayta ishlash va reviewda soatlarni tejaydi. Koddan oldingi reja va keyingi batafsil hisobot qolgan boʻshliqlarni yopadi.
Bu odamlarga vazifa qoʻyish bilan bir xil koʻnikma va qaysi vositani tanlamang, u qadrli boʻlib qoladi. Nima kerakligini va uni qanday tekshirishni aniq tasvirlay oladigan dasturchi agentdan oldindan aytib boʻladigan natija oladi — asosiysi ham shu.
Koʻp beriladigan savollar
Maqsad, koddagi joy, cheklovlar va tekshiriladigan tayyorlik mezonlarini, shuningdek agent natijani tekshirishi kerak boʻlgan buyruqlarni yozing. Matn texnik topshiriqqa qanchalik yaqin boʻlsa, natija shunchalik oldindan aytib boʻladigan boʻladi.
Yoʻq. Kirish nuqtasi va oʻxshash yechim namunasini koʻrsatish, loyihaning doimiy qoidalarini esa alohida koʻrsatmalar fayliga chiqarish yaxshiroq. Ortiqcha kontekst vazifani xiralashtiradi.
Batafsillik xato narxiga bogʻliq. Mexanik tuzatishga bir qator yetadi, xatti-harakat, maʼlumotlar yoki kontraktlarni oʻzgartirishga esa chegaralar va tayyorlik mezonlari bilan toʻliq spetsifikatsiya kerak.
Avval kerakli xatti-harakat vazifada aniq yozilganmi, tekshiring. Agent maqsadni notoʻgʻri tushungan boʻlsa, oʻsha sessiyada natijani tuzatgandan koʻra, oʻzgarishlarni bekor qilib, vazifani qaytadan qoʻyish tezroq.
Yiqiladigan test xatoni qayd etadi va tayyorlikning xolis mezonini beradi. Agar agentga bu testni oʻzgartirish taqiqlangan boʻlsa, u muammoni tekshiruvni yumshatish orqali «tuzata» olmaydi.
Ha, bir nechta modulga tegadigan yoki turli yechimlarga yoʻl qoʻyadigan vazifalar uchun. Rejadan agent maqsadni toʻgʻri tushungani va qaysi fayllarni oʻzgartirmoqchi ekani koʻrinadi, rejani tuzatish esa tayyor koddan arzonroq.