Agentic Coding

Dasturlash agentlari bu fayllarni o’qish/yozish, veb qidiruv va shell buyruqlarini ishga tushirish kabi vositalarga kirish imkoniga ega bo’lgan suhbatdosh AI modellaridir. Ular IDE’da yoki alohida buyruqlar satri yoxud grafik interfeysli vositalarda yashaydi. Dasturlash agentlari yuqori darajada avtonom va kuchli vositalar bo’lib, turli xil foydalanish holatlarini imkonini beradi.

Bu ma’ruza Dasturlash muhiti va vositalar ma’ruzasidagi AI yordamidagi dasturlash materialiga asoslanadi. Qisqacha misol sifatida AI yordamidagi dasturlash bo’limidan namuna bilan davom etamiz:

from urllib.request import urlopen

def download_contents(url: str) -> str:
    with urlopen(url) as response:
        return response.read().decode('utf-8')

def extract(content: str) -> list[str]:
    import re
    pattern = r'\[.*?\]\((.*?)\)'
    return re.findall(pattern, content)

print(extract(download_contents("https://raw.githubusercontent.com/missing-semester/missing-semester/refs/heads/master/_2026/development-environment.md")))

Biz dasturlash agentiga quyidagi vazifa bilan so’rov yuborib ko’rishimiz mumkin:

Turn this into a proper command-line program, with argparse for argument parsing. Add type annotations, and make sure the program passes type checking.

Agent faylni tushunish uchun uni o’qiydi, so’ngra ba’zi tahrirlarni amalga oshiradi va oxir-oqibat tur annotatsiyalari to’g’riligiga ishonch hosil qilish uchun turni tekshiruvchi dasturni ishga tushiradi. Agar u xato qilsa va turni tekshirishdan o’ta olmasa, u ehtimol buni takrorlaydi (iterate), garchi bu oddiy vazifa bo’lgani uchun bunday bo’lishi dargumon. Dasturlash agentlari zararli bo’lishi mumkin bo’lgan vositalarga kirish imkoniga ega bo’lganligi sababli, sukut bo’yicha agent harness’lari foydalanuvchidan vosita chaqiruvlarini tasdiqlashni so’raydi.

Agar dasturlash agenti xato qilsa — masalan, agar sizda $PATH orqali to’g’ridan-to’g’ri mypy binari mavjud bo’lsa, lekin agent python -m mypy ni chaqirishga harakat qilsa — unga yo’nalishni to’g’rilashga yordam berish uchun matnli fikr-mulohaza berishingiz mumkin.

Dasturlash agentlari ko’p bosqichli o’zaro aloqani qo’llab-quvvatlaydi, shuning uchun agent bilan ikki tomonlama suhbat orqali ishni takrorlashingiz mumkin. Agar agent noto’g’ri yo’ldan ketayotgan bo’lsa, uni hatto to’xtatishingiz ham mumkin. Bunga yordam beradigan aqliy model amaliyotchining (intern) menejeri modeli bo’lishi mumkin: amaliyotchi mayda-chuyda ishlarni bajaradi, lekin yo’l-yo’riq talab qiladi va vaqti-vaqti bilan noto’g’ri ish qilib, to’g’rilanishi kerak bo’ladi.

Yanada ko’rgazmaliroq misol uchun, agentdan davomi sifatida natijaviy skriptni ishga tushirishni so’rab ko’ring. Chiqishlarni kuzating va o’zgarish qilishni so’rang (masalan, faqat mutlaq yo’llarni kiritishni so’rang).

AI modellari va agentlari qanday ishlaydi

Zamonaviy yirik til modellarining (LLM) va agent harness’lari kabi infratuzilmaning ichki ishlashini to’liq tushuntirish ushbu kurs doirasidan tashqarida. Biroq, ba’zi asosiy g’oyalarni yuqori darajada tushunish ushbu eng zamonaviy texnologiyadan samarali foydalanish va uning cheklovlarini tushunish uchun foydalidir.

LLM’larga so’rov satrlari (kiritishlar) berilganda to’ldirish satrlari (chiqishlar) ehtimollik taqsimotini modellashtirish sifatida qarash mumkin. LLM inferensiyasi (masalan, suhbatdosh chat ilovasiga so’rov yuborganingizda nima sodir bo’ladi) ushbu ehtimollik taqsimotidan namuna oladi. LLM’lar qat’iy kontekst oynasiga ega, bu kiritish va chiqish satrlarining maksimal uzunligidir.

Suhbatdosh chat va dasturlash agentlari kabi AI vositalari ushbu primitiv ustida quriladi. Ko’p bosqichli o’zaro aloqalar uchun chat ilovalari va agentlar burilish belgilaridan foydalanadi va har safar yangi foydalanuvchi so’rovi bo’lganda butun suhbat tarixini so’rov satri sifatida taqdim etib, foydalanuvchi so’rovi uchun LLM inferensiyasini bir marta ishga tushiradi. Vosita chaqiradigan agentlar uchun harness ma’lum LLM chiqishlarini vositani chaqirish talablari sifatida talqin qiladi va harness vosita chaqiruvi natijalarini modelga so’rov satrining bir qismi sifatida qaytaradi (shuning uchun har safar vosita chaqiruvi/javobi bo’lganda LLM inferensiyasi qayta ishga tushadi). Vosita chaqiradigan agentlardagi asosiy tushunchalar 200 qator kodda amalga oshirilishi mumkin.

Maxfiylik

Aksariyat AI dasturlash vositalari o’zlarining standart konfiguratsiyalarida ma’lumotlaringizning ko’p qismini bulutga yuboradi. Ba’zida harness mahalliy joyda ishlaydi, LLM inferensiyasi esa bulutda ishlaydi, boshqa paytlarda dasturiy ta’minotning yana ham ko’proq qismi bulutda ishlaydi (va masalan, xizmat ko’rsatuvchi provayder butun repozitoriyni, shuningdek sizning AI vositasi bilan qilgan barcha harakatlaringiz nusxasini samarali ravishda olishi mumkin).

Juda yaxshi bo’lgan ochiq kodli AI dasturlash vositalari va ochiq kodli LLM’lar mavjud (garchi xususiy modellar kabi yaxshi bo’lmasa ham), lekin hozirgi vaqtda ko’pchilik foydalanuvchilar uchun eng yangi ochiq LLM’larni mahalliy joyda ishga tushirish apparat cheklovlari tufayli imkonsiz bo’ladi.

Foydalanish holatlari

Dasturlash agentlari turli xil vazifalar uchun foydali bo’lishi mumkin. Ba’zi misollar:

Ilg’or agentlar

Bu yerda biz dasturlash agentlarining yanada ilg’orroq foydalanish usullari va imkoniyatlari haqida qisqacha ma’lumot beramiz.

So’rovlarni yozishni talab qiladigan ko’plab ilg’or xususiyatlar (masalan, ko’nikmalar yoki subagentlar) uchun boshlashingizda LLM’lardan foydalanishingiz mumkin. Ba’zi dasturlash agentlarida buni qilish uchun o’rnatilgan qo’llab-quvvatlash ham mavjud. Masalan, Claude Code qisqa so’rovdan subagent yaratishi mumkin (/agents ni chaqiring va yangi agent yarating). Ushbu so’rov bilan subagent yaratib ko’ring:

A Python code checking agent that uses `mypy` and `ruff` to type-check, lint, and format *check* any files that have been modified from the last git commit.

Shundan so’ng, yuqori darajadagi agentdan “kodni tekshiruvchi subagentdan foydalan” kabi xabar bilan subagentni ochiq-oydin chaqirish uchun foydalanishingiz mumkin. Shuningdek, kerak bo’lganda, masalan, istalgan Python faylini o’zgartirgandan so’ng yuqori darajadagi agentga subagentni avtomatik ravishda chaqirishga ko’ndira olishingiz ham mumkin.

Nimalarga e’tibor berish kerak

AI vositalari xato qilishi mumkin. Ular ehtimollik asosida keyingi tokenni bashorat qiluvchi modellar bo’lgan LLM’larga asoslangan. Ular odamlar kabi “aqlli” emas. AI chiqishini to’g’rilik va xavfsizlik xatolariga tekshirib chiqing. Ba’zan kodni tekshirish uni o’zingiz yozishingizdan ko’ra qiyinroq bo’lishi mumkin; o’ta muhim kodlar uchun uni qo’lda yozishni o’ylab ko’ring. AI quyon teshigiga kirib ketishi va sizni chalg’itishi mumkin; debag qilish spirallaridan xabardor bo’ling. AI’dan tayanch sifatida foydalanmang va unga o’ta bog’lanib qolishdan yoki yuzaki tushunishdan ehtiyot bo’ling. AI hozir ham bajarishga qodir bo’lmagan juda katta dasturlash vazifalari mavjud. Hisoblashli fikrlash hanuzgacha qadrlidir.

Tavsiya etilgan dasturiy ta’minot

Ko’pgina IDE’lar / AI dasturlash kengaytmalari dasturlash agentlarini o’z ichiga oladi (dasturlash muhiti ma’ruzasidagi tavsiyalarni ko’ring). Boshqa mashhur dasturlash agentlariga Anthropic’ning Claude Code, OpenAI’ning Codex va opencode kabi ochiq kodli agentlari kiradi.

Mashqlar

  1. Bir xil dasturlash vazifasini to’rt marta bajarish orqali qo’lda yozish, AI avtoto’ldirish, inline chat va agentlardan foydalangan holda kod yozish tajribasini taqqoslang. Eng yaxshi nomzod - bu siz allaqachon ishlayotgan loyihadagi kichik hajmdagi xususiyat. Agar boshqa g’oyalarni qidirayotgan bo’lsangiz, GitHub’dagi ochiq kodli loyihalardagi “good first issue” uslubidagi vazifalarni yoki Advent of Code yoxud LeetCode muammolarini hal qilishni ko’rib chiqishingiz mumkin.
  2. Notanish kod bazasida harakatlanish uchun AI dasturlash agentidan foydalaning. Buni o’zingiz chindan ham g’amxo’rlik qiladigan loyihadagi nosozliklarni tuzatish yoki yangi xususiyat qo’shish istagi doirasida bajarish eng yaxshisidir. Agar xayolingizga hech narsa kelmasa, opencode agentida xavfsizlik bilan bog’liq xususiyatlar qanday ishlashini tushunish uchun AI agentidan foydalanib ko’ring.
  3. Kichik dasturni noldan vibe coding qiling. O’zingiz bir qator ham kod yozmang.
  4. O’zingiz tanlagan dasturlash agenti uchun AGENTS.md (yoki tanlagan agentingiz uchun unga o’xshash narsa, masalan, CLAUDE.md), ko’nikma (masalan, Claude Code’dagi ko’nikma yoki Codex’dagi ko’nikma) va subagentni (masalan, Claude Code’dagi subagent) yarating va test qilib ko’ring. Bularning birini boshqasidan ko’ra qachon ishlatishni xohlashingiz haqida o’ylab ko’ring. E’tibor bering, siz tanlagan dasturlash agenti ushbu funksionalliklarning ba’zilarini qo’llab-quvvatlamasligi mumkin; siz ularni o’tkazib yuborishingiz yoki ularni qo’llab-quvvatlaydigan boshqa dasturlash agentini sinab ko’rishingiz mumkin.
  5. Kod sifati ma’ruzasidagi Markdown dagi ro’yxat nuqtalari uchun regulyar ifoda mashqidagi bir xil maqsadga erishish uchun dasturlash agentidan foydalaning. U vazifalarni bevosita fayllarni tahrirlash orqali yakunlaydimi? Bunday vazifani bajarish uchun agentning bevosita faylni tahrirlashining qanday kamchiliklari va cheklovlari bor? Agentni vazifani bevosita fayllarni tahrirlash orqali bajarmasligi uchun unga qanday so’rov yuborishni o’ylab toping. Maslahat: agentdan birinchi ma’ruzada aytib o’tilgan buyruqlar satri vositalaridan birini ishlatishni so’rang.
  6. Aksariyat dasturlash agentlari qandaydir “yolo rejimini” qo’llab-quvvatlaydi (masalan, Claude Code’da, --dangerously-skip-permissions). Ushbu rejimdan bevosita foydalanish xavfsiz emas, biroq dasturlash agentini virtual mashina yoki konteyner kabi yakkalangan muhitda ishga tushirish va avtonom ishlashiga ruxsat berish maqbul bo’lishi mumkin. Ushbu sozlamani o’z mashinangizda ishga tushiring. Claude Code devkonteynerlari yoki Docker Sandboxes / Claude Code kabi hujjatlar qo’l kelishi mumkin. Buni o’rnatishning bir necha xil yo’li bor.

Sahifani tahrirlash.

CC BY-NC-SA asosida litsenziyalangan.