Agentic Coding

AI coding agent гэдэг нь чат маягийн AI загвар дээр файл унших/бичих, web search хийх, shell command ажиллуулах зэрэг tool-уудыг нэмж өгсөн систем юм. Зарим нь IDE дотор сууна, зарим нь standalone CLI эсвэл GUI app хэлбэртэй. Эдгээр агент нэлээд бие дааж ажиллаж чаддаг болсон тул олон төрлийн dev task дээр хэрэг болдог.

Энэ лекц Хөгжүүлэлтийн орчин ба хэрэгслүүд лекцийн AI-assisted development хэсгийг үргэлжлүүлнэ. Жишээ болгоод 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")))

Үүнийг coding agent-д дараах prompt-оор даалгаж болно:

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

Агент файлыг уншаад, хэрэгтэй засваруудаа хийж, төгсгөлд нь type annotation зөв эсэхийг шалгахын тулд type checker ажиллуулна. Хэрэв алдаа гаргаад type check дээр унавал дахин засаж ажиллуулна. Энэ бол агентууд сайн хийдэг харьцангуй энгийн даалгавар. Гэхдээ coding agent системд нөлөөлж болох tool ажиллуулах эрхтэй тул анхны тохиргоогоороо tool дуудах бүрт хэрэглэгчээс зөвшөөрөл авдаг.

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

Coding agent-тэй олон turn-ээр ярилцаж болдог тул ажлыг явц дунд нь чиглүүлж, сайжруулж болно. Буруу тийшээ явбал зогсоож болно. Энгийнээр хэлбэл intern удирдаж байгаа мэт: нарийн, уйтгартай ажлыг хийлгэж болно, гэхдээ чиглэл өгнө, алдахад нь засна, эцсийн хариуцлага таны дээр үлдэнэ.

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

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

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

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

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

Нууцлал

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

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

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

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

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

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

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

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.

Дараа нь та үндсэн агентаасаа “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. Өөрийн сонгосон coding agent-д зориулж AGENTS.md буюу CLAUDE.md зэрэг файл, skill (жишээлбэл, Claude Code дахь skill эсвэл Codex дахь skill), болон subagent (жишээлбэл, Claude Code дахь subagent) үүсгэж туршаарай. Эдгээрийн аль нэгийг өөр нөхцөлд хэзээ сонгож ашиглах талаар тунгаана уу. Таны ашигладаг agent зарим боломжуудыг дэмжихгүй байж болох бөгөөд энэ тохиолдолд тэдгээрийг алгасах эсвэл дэмждэг өөр agent дээр туршиж үзэж болно.
  5. Кодчиллын агентыг ашиглан Кодын чанар лекцийн Markdown жагсаалтын тэмдэглэгээ солих (regular expression ашиглах) дасгалын зорилгыг биелүүлээрэй. Агент даалгаврыг файлыг шууд засварлах замаар гүйцэтгэж байна уу? Ийм даалгаврыг файлыг шууд засварлаж шийдэхийн сул тал болон хязгаарлалтууд нь юу вэ? Агентыг файлыг шууд засварлахгүйгээр уг даалгаврыг гүйцэтгэхээр хэрхэн промпт өгч чиглүүлэх вэ? Санамж: агентаас эхний лекцээр үзсэн CLI хэрэгслүүдийн нэгийг ашиглахыг хүсээрэй.
  6. Ихэнх кодлогч агентууд “yolo mode” буюу зөвшөөрөл алгасах горимыг (тухайлбал, Claude Code-д --dangerously-skip-permissions) дэмждэг. Үүнийг шууд ажиллуулах нь аюултай бөгөөд харин виртуал машин эсвэл контейнер зэрэг тусгаарлагдсан орчинд агентыг ажиллуулж, бие даан ажиллах горимыг идэвхжүүлэх нь илүү тохиромжтой байдаг. Энэ тохиргоог өөрийн машин дээрээ бэлдэж ажиллуулаарай. Үүнд Claude Code devcontainers болон Docker Sandboxes / Claude Code зэрэг баримт бичгүүд хэрэг болж магадгүй. Үүнийг тохируулах хэд хэдэн арга бий.

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

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