Agentic Coding

Кодчиллын AI агентууд нь файл унших, бичих, вэбээс хайлт хийх, болон бүрхүүлийн (shell) тушаалуудыг ажиллуулах зэрэг хэрэгслүүд ашиглах эрх бүхий, харилцан ярианы AI загварууд юм. Тэдгээр нь IDE дотор эсвэл бие даасан командын мөр, эсвэл GUI хэрэгсэл хэлбэрээр байдаг. Кодчиллын агентууд нь маш бие даасан бөгөөд хүчирхэг тул олон төрлийн хэрэглээний тохиолдлыг шийдвэрлэх боломжийг олгодог.

Энэхүү лекц нь Хөгжүүлэлтийн орчин ба хэрэгслүүд лекцийн AI-аар дэмжигдсэн хөгжүүлэлтийн хэсэг дээр тулгуурласан болно. Жишээ болгон AI-аар дэмжигдсэн хөгжүүлэлт хэсгийн жишээг үргэлжлүүлэн авч үзье:

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")))

Бид кодчиллын агентад хандан дараах промптоор даалгавар өгч болно:

Үүнийг аргумент задлан шинжлэхэд argparse ашигладаг, командын мөрийн зөв програм
болгож хувиргаарай. Төрлийн тэмдэглэгээг нэмж, програм төрөл
шалгагчийг (type checker) амжилттай давж байгааг баталгаажуун уу.

Агент файлыг уншиж ойлгоод, тодорхой засваруудыг хийж, эцэст нь төрлийн тэмдэглэгээ зөв эсэхийг баталгаажуулахын тулд type checker-ийг ажиллуулах болно. Хэрэв тэр алдаа гаргаж төрөл шалгалтад бүдэрвэл дахин засаж ажиллуулах бөгөөд энэ нь хялбар даалгавар тул шийдэгдэх нь хялбар байх болно. Кодчиллын агентууд нь системд аюул учруулж болзошгүй хэрэгслүүдийг ашиглах эрхтэй тул анхны тохиргоогоороо агентын систем нь хэрэгсэл дуудах бүрт хэрэглэгчээс зөвшөөрөл нэхдэг.

Хэрэв кодчиллын агент алдаа гаргавал — жишээлбэл, таны $PATH дээр mypy шууд ажиллах боломжтой байхад агент python -m mypy гэж дуудахыг оролдвол — та түүнд зааж чиглүүлсэн бичвэр мэдээлэл өгч засуулж болно.

Кодчиллын агентууд нь олон үе шаттай харилцааг дэмждэг тул та агентай харилцан ярилцах явцдаа ажлыг хамтдаа сайжруулах боломжтой. Хэрэв агент буруу зүг рүү явж байвал та түүнийг дундуур нь зогсоож ч болно. Ойлгоход хялбар нэг зүйрлэл бол дадлагажигч оюутны удирдагч (менежер) байх явдал юм: дадлагажигч нь хамгийн нарийн хар ажлуудыг хийх боловч чиглүүлэг шаардаж, хааяа буруу зүйл хийвэл засуулах хэрэгтэй болдог.

Илүү тодорхой туршиж үзэхийн тулд, үүний дараа агентаас гарсан скриптийг ажиллуулахыг хүсээрэй. Гаралттай танилцаад, тодорхой өөрчлөлт оруулахыг даалгаж болно (жишээ нь, зөвхөн абсолют URL-уудыг оруулахыг даалгаж болно).

AI загварууд болон агентууд хэрхэн ажилладаг вэ

Орчин үеийн том хэлний загварууд (LLM) болон агентын системийн дотоод ажиллагааг бүрэн тайлбарлах нь энэ хичээлийн хамрах хүрээнээс гадуур юм. Гэсэн хэдий ч зарим гол санаануудыг ерөнхийд нь ойлгох нь энэхүү хамгийн сүүлийн үеийн технологийг үр дүнтэй ашиглах болон түүний хязгаарлалтуудыг ухамсарлахад тусална.

LLM-ийг өгөгдсөн промпт буюу оролт тэмдэгт мөрийн хувьд гарч болох гаралтын магадлалын тархалтыг загварчилж байгаа гэж үзэж болно. LLM инференс (жишээлбэл, харилцан ярианы чат апп руу асуулга илгээх үед болох үйл явц) нь энэхүү магадлалын тархалтаас түүвэрлэлт хийдэг. LLM-үүд нь оролт болон гаралтын тэмдэгт мөрийн хамгийн дээд хязгаар болох тогтсон контекстийн цонхтой байдаг.

AI хэрэгслүүд болох харилцан ярианы чат болон кодчиллын агент зэрэг нь энэхүү суурь зарчим дээр тулгуурладаг. Олон үе шаттай харилцан ярианы хувьд чат апп болон агентууд нь ярианы хил заагчийг ашиглаж, шинээр хэрэглэгчийн оролт ирэх бүрт ярианы түүхийг бүхэлд нь промпт болгон илгээж, хэрэглэгчийн асуулт бүрт нэг удаа LLM инференсийг дууддаг. Хэрэгсэл дууддаг (tool call хийдэг) агентуудын хувьд систем нь LLM-ийн зарим гаралтыг хэрэгсэл дуудах хүсэлт гэж тайлбарлан ажиллуулаад, үр дүнг нь промпт дотор буцаан загварт өгдөг (ингэснээр хэрэгсэл дуудах, хариулах бүрт LLM дахин ажилладаг). Хэрэгсэл ашигладаг агентуудын үндсэн концепцыг 200 мөр кодонд хэрэгжүүлэх боломжтой.

Нууцлал

Хиймэл оюунаар ажилладаг ихэнх кодчиллын хэрэгслүүд үндсэн тохиргоогоороо таны өгөгдлийг үүлэн сервер рүү илгээдэг. Заримдаа агентын удирдлагын програм локал орчинд ажиллаж, LLM inference нь үүлэн дээр ажилладаг бол бусад тохиолдолд програмын ихэнх хэсэг үүлэн орчинд ажиллах ба ингэснээр үйлчилгээ үзүүлэгч нь таны репозиторын хуулбар болон AI хэрэгсэлтэй харилцсан бүх яриаг авах боломжтой болдог.

Хэдийгээр хангалттай сайн ажилладаг нээлттэй эхийн AI кодчиллын хэрэгслүүд болон нээлттэй эхийн LLM-үүд байдаг ч тэдгээр нь хаалттай загварууд шиг сайн биш бөгөөд өнөөгийн байдлаар ихэнх хэрэглэгчийн хувьд хамгийн сүүлийн үеийн нээлттэй LLM-ийг өөрийн компьютер дээр локал ажиллуулах нь техник хангамжийн хязгаарлалтаас болоод боломжгүй байдаг.

Хэрэглээний тохиолдлууд

Кодчиллын агентууд маш олон төрлийн даалгавруудад тусалж чаддаг. Зарим жишээнээс дурдвал:

Нарийвчилсан агентууд

Энд бид кодчиллын агентуудын зарим нарийн төвөгтэй хэрэглээний загварууд болон чадамжуудын талаар товч тойм хүргэж байна.

Промпт бичих шаардлагатай нарийн төвөгтэй функцуудын (ур чадвар, дэд агентууд) хувьд та LLM-ийг ашиглан эхний хувилбараа бэлдэж болно. Зарим агентууд үүнийг дотроо шууд дэмждэг. Жишээлбэл, Claude Code нь богино промптоос дэд агентыг үүсгэж чадна (үүнийг /agents тушаалаар хийнэ). Дараах промптоор дэд агент үүсгэж үзээрэй:

Хамгийн сүүлийн git коммитоос хойш өөрчлөгдсөн файлуудыг type-check шалгах, линт хийх,
болон формат шалгахад `mypy` ба `ruff`-ийг ашигладаг Python код шалгагч агент.

Дараа нь та үндсэн агентаасаа “use the code checker subagent” гэж хэлэн дэд агентыг дуудаж болно. Мөн тодорхой нөхцөлд (жишээлбэл, ямар нэгэн Python файл өөрчлөгдсөний дараа) дэд агентыг автоматаар ажиллуулахаар үндсэн агентаа тохируулж болно.

Юунаас болгоомжлох вэ

AI хэрэгслүүд алдаа гаргаж болно. Тэд дараагийн тэмдэгтийг магадлалаар таамагладаг LLM дээр суурилсан. Тэд хүнтэй адил хэмжээний “ухаантай” биш юм. AI-ийн гаргасан үр дүнг зөв эсэх болон аюулгүй байдлын алдаа байгаа эсэхийг байнга хянаж байх хэрэгтэй. Заримдаа кодын зөв эсэхийг шалгах нь өөрөө бичихээс ч илүү хэцүү байдаг тул маш чухал кодуудыг гараар бичихийг бодоорой. AI нь мухардалд орж, таныг төөрөгдүүлж болно. Дибаг хийх явцад мухардалд орохоос (debugging spirals) болгоомжил. AI-ийг зөвхөн туслах хэрэгсэл болгон ашиглаж, хэт хамааралтай болох эсвэл өнгөц ойлголттой үлдэхээс сэргийл. AI-ийн одоог хүртэл хийж чадахгүй байгаа маш олон төрлийн програмчлалын даалгаврууд бий. Компьютер сэтгэлгээ үнэ цэнэтэй хэвээр байна.

Санал болгох програм хангамж

Маш олон IDE болон AI кодчиллын өргөтгөлүүд кодчиллын агентуудыг агуулж байдаг (дэлгэрэнгүйг Хөгжүүлэлтийн орчин лекцээс харна уу). Бусад түгээмэл кодчиллын агентуудад Anthropic-ийн Claude Code, OpenAI-ийн Codex, болон нээлттэй эхийн opencode зэрэг багтдаг.

Дасгал ажил

  1. Нэг ижил програмчлалын даалгаврыг дөрвөн удаа гүйцэтгэх замаар гараар код бичих, хиймэл оюуны автомат гүйцээгч ашиглах, мөрийн чат, болон агентууд ашиглах туршлагуудыг өөр хооронд нь харьцуулж үзээрэй. Үүнд өөрийн ажиллаж буй төслийн жижиг хэмжээний функц хамгийн тохиромжтой. Хэрэв өөр санаа хайж байвал GitHub дээрх нээлттэй эхийн төслүүдийн “good first issue” маягийн даалгаврууд эсвэл Advent of Code болон LeetCode бодлогуудыг бодож болно.
  2. Танил бус кодын санг судалж ойлгоход хиймэл оюуны кодлогч агентыг ашиглаарай. Үүнийг өөрийн анхаардаг төслийнхөө алдааг засах эсвэл шинэ боломж нэмэх хүрээнд хийвэл хамгийн сайн үр дүнтэй. Хэрэв тохирох төсөл байхгүй бол opencode агент дотор аюулгүй байдалтай холбоотой функцууд хэрхэн ажилладагийг ойлгохын тулд агентыг ашиглаарай.
  3. Гараар нэг ч мөр код бичихгүйгээр жижиг аппликейшныг бүхэлд нь вайб-кодчилж үүсгээрэй.
  4. Өөрийн сонгосон кодлогч агентад зориулж AGENTS.md буюу CLAUDE.md зэрэг файл, ур чадвар (жишээлбэл, Claude Code дэх skill эсвэл Codex дахь skill), болон дэд агент (жишээлбэл, Claude Code дэх subagent) үүсгэж туршаарай. Эдгээрийн аль нэгийг өөр нөхцөлд хэзээ сонгож ашиглах талаар тунгаана уу. Таны ашигладаг агент зарим боломжуудыг дэмжихгүй байж болох бөгөөд энэ тохиолдолд тэдгээりを алгасах эсвэл дэмждэг өөр агент дээр туршиж үзэж болно.
  5. Кодчиллын агентыг ашиглан Кодын чанар лекцийн Markdown жагсаалтын тэмдэглэгээ солих (regular expression ашиглах) дасгалын зорилгыг биелүүлээрэй. Агент даалгаврыг файлыг шууд засварлах замаар гүйцэтгэж байна уу? Ийм даалгаврыг файлыг шууд засварлаж шийдэхийн сул тал болон хязгаарлалтууд нь юу вэ? Агентыг файлыг шууд засварлахгүйгээр уг даалгаврыг гүйцэтгэхээр хэрхэн промпт өгч чиглүүлэх вэ? Санамж: агентаас эхний лекцээр үзсэн командын мөрийн хэрэгслүүдийн нэгийг ашиглахыг хүсээрэй.
  6. Ихэнх кодлогч агентууд “yolo mode” буюу зөвшөөрөл алгасах горимыг (тухайлбал, Claude Code-д --dangerously-skip-permissions) дэмждэг. Үүнийг шууд ажиллуулах нь аюултай бөгөөд харин виртуал машин эсвэл контейнер зэрэг тусгаарлагдсан орчинд агентыг ажиллуулж, бие даан ажиллах горимыг идэвхжүүлэх нь илүү тохиромжтой байдаг. Энэхүү тохиргоог өөрийн машин дээрээ бэлдэж ажиллуулаарай. Үүнд Claude Code devcontainers болон Docker Sandboxes / Claude Code зэрэг баримт бичгүүд хэрэг болж магадгүй. Үүнийг тохируулах хэд хэдэн арга бий.

Энэ хуудсыг засварлах.

Лиценз: CC BY-NC-SA.