Agentic Coding

Coding agent များသည် ဖိုင်များ ဖတ်ခြင်း/ရေးခြင်း၊ ဝက်ဘ်ရှာဖွေခြင်းနှင့် shell command များကို စေခိုင်းခြင်း စသည့် tool များကို ရယူသုံးစွဲနိုင်သော အပြန်အလှန်ပြောဆိုနိုင်သည့် (conversational) AI model များ ဖြစ်ကြသည်။ ၎င်းတို့ကို IDE ထဲတွင်သော်လည်းကောင်း၊ သီးခြား command-line သို့မဟုတ် GUI tool များအဖြစ်သော်လည်းကောင်း အသုံးပြုနိုင်သည်။ Coding agent များသည် အလွန် ကိုယ်ပိုင်ဆုံးဖြတ်လုပ်ဆောင်နိုင်စွမ်း (autonomous) ရှိပြီး စွမ်းဆောင်ရည် ထက်မြက်သော tool များ ဖြစ်ကြသဖြင့် လုပ်ဆောင်ချက်မျိုးစုံတွင် အသုံးပြုနိုင်စေသည်။

ဤသင်ခန်းစာသည် Development Environment and Tools သင်ခန်းစာမှ AI ကိုအသုံးပြုသည့် ဖွံ့ဖြိုးတိုးတက်ရေးဆိုင်ရာ အကြောင်းအရာများပေါ်တွင် အခြေခံထားပါသည်။ အမြန် demo အနေဖြင့် AI-powered development အပိုင်းမှ ဥပမာကို ဆက်လက် လေ့လာကြည့်ကြပါစို့-

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 တစ်ခုအား အောက်ပါ task ကို 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.

Agent သည် ဖိုင်ကို နားလည်အောင် ပထမဦးစွာ ဖတ်ရှုမည်ဖြစ်ပြီး၊ ထို့နောက် ပြင်ဆင်မှုများ ပြုလုပ်ကာ နောက်ဆုံးတွင် type annotation များ မှန်ကန်ကြောင်း သေချာစေရန် type checker ကို စေခိုင်း (invoke) မည်ဖြစ်သည်။ အကယ်၍ type checking ကျရှုံးသည်အထိ အမှားပြုလုပ်မိပါက ၎င်းသည် အကြိမ်ကြိမ် ပြန်လည်ပြင်ဆင် (iterate) ပါလိမ့်မည်။ သို့သော် ဤသည်မှာ ရိုးရှင်းသော task တစ်ခုဖြစ်သဖြင့် ထိုသို့ဖြစ်နိုင်ခြေ နည်းပါးသည်။ Coding agent များသည် အန္တရာယ်ရှိနိုင်သော tool များကို ရယူသုံးစွဲနိုင်သောကြောင့် မူလအစအတိုင်း (by default) agent harness များသည် tool ခေါ်ယူမှုများကို အတည်ပြုရန် အသုံးပြုသူထံ အကြောင်းကြားမေးမြန်းလေ့ရှိသည်။

အကယ်၍ coding agent သည် အမှားပြုလုပ်မိပါက — ဥပမာ သင့်ထံတွင် mypy binary ကို $PATH တွင် တိုက်ရိုက် ရရှိနိုင်သော်လည်း agent က python -m mypy ကို ခေါ်ယူရန် ကြိုးပမ်းနေပါက — ၎င်းအား လမ်းကြောင်းမှန်သို့ ပြန်လည်ရောက်ရှိစေရန် စာသားဖြင့် feedback ပေးနိုင်သည်။

Coding agent များသည် multi-turn တုံ့ပြန်ဆက်ဆံမှုကို ထောက်ပံ့ပေးသဖြင့် agent နှင့် အပြန်အလှန် စကားပြောဆိုရင်း အလုပ်ကို ထပ်ခါတလဲလဲ ပြင်ဆင်သွားနိုင်သည်။ Agent သည် လမ်းကြောင်းမှားသို့ သွားနေပါက ကြားဖြတ်တားဆီး (interrupt) ပင် ပြုလုပ်နိုင်သည်။ သင့်တော်သော စဉ်းစားပုံစံ (mental model) တစ်ခုမှာ အလုပ်သင် (intern) တစ်ဦး၏ မန်နေဂျာကဲ့သို့ စဉ်းစားခြင်း ဖြစ်သည်- အလုပ်သင်သည် သေးငယ်စေ့စပ်သော အလုပ်များကို လုပ်ဆောင်ပေးမည်ဖြစ်သော်လည်း လမ်းညွှန်မှု လိုအပ်မည်ဖြစ်ပြီး၊ တစ်ခါတစ်ရံတွင် အမှားများ ပြုလုပ်မိသဖြင့် ပြင်ဆင်ပေးရန် လိုအပ်မည်ဖြစ်သည်။

ပိုမို ရှင်းလင်းသော demo တစ်ခုအတွက်၊ ထွက်ပေါ်လာသည့် script ကို run ကြည့်ရန် (run) agent ထံ ထပ်မံ မေးမြန်းကြည့်ပါ။ Output များကို လေ့လာပြီး ပြောင်းလဲမှုတစ်ခု ပြုလုပ်ပေးရန် တောင်းဆိုကြည့်ပါ (ဥပမာ absolute URL များကိုသာ ထည့်သွင်းပေးရန် တောင်းဆိုပါ)။

AI model များနှင့် agent များ မည်သို့ အလုပ်လုပ်သနည်း

ခေတ်မီ large language models (LLMs) များနှင့် agent harness များကဲ့သို့သော အခြေခံအဆောက်အအုံများ၏ အတွင်းပိုင်း အလုပ်လုပ်ပုံကို အသေးစိတ် ရှင်းလင်းပြသခြင်းသည် ဤသင်ခန်းစာ၏ နယ်ပယ်ထက် ကျော်လွန်နေပါသည်။ သို့သော်လည်း အဓိက အယူအဆအချို့ကို ခြုံငုံနားလည်ထားခြင်းသည် ဤရှေ့တန်းရောက် နည်းပညာ (bleeding edge technology) ကို ထိရောက်စွာ အသုံးပြုရန် နှင့် ယင်း၏ ကန့်သတ်ချက်များကို နားလည်ရန်အတွက် အထောက်အကူဖြစ်စေသည်။

LLM များကို prompt စာသားများ (inputs) ပေးထားသည့်အခါ completion စာသားများ (outputs) ၏ ဖြစ်တန်းခြေ ဖြန့်ကျက်မှု (probability distribution) ကို ပုံဖော်ပေးခြင်းအဖြစ် ရှုမြင်နိုင်သည်။ LLM inference (ဥပမာ စကားပြောဆိုနိုင်သော chat app တစ်ခုသို့ မေးခွန်းတစ်ခု ပေးလိုက်သည့်အခါ ဖြစ်ပျက်လာသည့်အရာ) သည် ဤ probability distribution မှ sample ရယူခြင်း ဖြစ်သည်။ LLM များတွင် သတ်မှတ်ထားသော context window ရှိပြီး၊ ၎င်းသည် input နှင့် output စာသားများ၏ အများဆုံး အရှည်ပမာဏ ဖြစ်သည်။

Conversational chat နှင့် coding agent များကဲ့သို့သော AI tool များကို ဤအခြေခံအယူအဆပေါ်တွင် တည်ဆောက်ထားခြင်းဖြစ်သည်။ Multi-turn တုံ့ပြန်ဆက်ဆံမှုများအတွက်၊ chat app များနှင့် agent များသည် turn marker များကို အသုံးပြုပြီး၊ အသုံးပြုသူထံမှ prompt အသစ်တစ်ခု ရရှိတိုင်း စကားပြောဆိုမှု သမိုင်းကြောင်း တစ်ခုလုံးကို prompt စာသားအဖြစ် ပေးပို့ကာ၊ အသုံးပြုသူ prompt တစ်ခုလျှင် LLM inference တစ်ကြိမ် စေခိုင်းသည်။ Tool-calling agent များအတွက်မူ harness သည် အချို့သော LLM output များကို tool တစ်ခုအား စေခိုင်းရန် တောင်းဆိုမှုအဖြစ် အဓိပ္ပာယ်ဖော်ယူပြီး၊ harness က tool ခေါ်ယူမှု၏ ရလဒ်များကို prompt စာသား၏ အစိတ်အပိုင်းအဖြစ် model ထံ ပြန်လည်ပေးပို့သည် (ထို့ကြောင့် tool call/response တစ်ခုစီအတွက် LLM inference ပြန်လည် run သည်)။ Tool-calling agent များ၏ အဓိက အယူအဆများကို code စာကြောင်းရေ ၂၀၀ ဖြင့် ရေးသားအကောင်အထည်ဖော်နိုင်သည်။

သီးသန့်လုံခြုံမှု (Privacy)

AI coding tool အများစုသည် ၎င်းတို့၏ ပုံမှန် configuration တွင် သင့်ဒေတာ အများအပြားကို cloud ထံ ပေးပို့ကြသည်။ အချို့အခါများတွင် harness သည် Local တွင် run ပြီး LLM inference က cloud တွင် run သော်လည်း၊ အချို့အခါများတွင် ဆော့ဖ်ဝဲလ်၏ ပိုမိုများပြားသော အစိတ်အပိုင်းများက cloud တွင် run နေလေ့ရှိသည် (ဥပမာ ဝန်ဆောင်မှုပေးသူသည် သင့် repository တစ်ခုလုံး၏ မိတ္တူနှင့် AI tool နှင့် ပြုလုပ်ခဲ့သမျှ တုံ့ပြန်ဆောင်ရွက်မှု အားလုံးကို ရရှိသွားနိုင်ပါသည်)။

တော်တော်လေး ကောင်းမွန်သည့် open-source AI coding tool များနှင့် open-source LLM များ ရှိကြသော်လည်း (proprietary model များလောက်တော့ ကောင်းမွန်ခြင်း မရှိသေးပါ)၊ လက်ရှိအချိန်တွင် အသုံးပြုသူ အများစုအတွက် ရှေ့တန်းရောက် open LLM များကို Local တွင် run ရန်မှာ ဟာဒ်ဝဲလ် ကန့်သတ်ချက်များကြောင့် ဖြစ်နိုင်ခြေ မရှိသေးပါ။

အသုံးပြုနိုင်သည့် အခြေအနေများ (Use cases)

Coding agent များကို လုပ်ဆောင်ချက် အမျိုးအစားများစွာအတွက် အသုံးဝင်စွာ အသုံးပြုနိုင်ပါသည်။ ဥပမာအချို့မှာ-

အဆင့်မြင့် Agent များ (Advanced agents)

ဤနေရာတွင် ကျွန်ုပ်တို့သည် coding agent များကို ပိုမို အဆင့်မြင့်စွာ အသုံးပြုသည့် ပုံစံများနှင့် စွမ်းဆောင်ရည်များကို အကျဉ်းချုပ် ဖော်ပြပေးသွားမည်ဖြစ်သည်။

Prompt များကို ရေးသားရန် လိုအပ်သည့် အဆင့်မြင့် feature အများအပြားအတွက် (ဥပမာ skills သို့မဟုတ် subagents)၊ စတင်နိုင်ရန် LLM များကို အသုံးပြုနိုင်သည်။ အချို့သော coding agent များတွင် ဤသို့ ပြုလုပ်နိုင်သည့် တည်ဆောက်ပြီးသား support ပင် ပါဝင်သည်။ ဥပမာ Claude Code သည် တိုတောင်းသော prompt တစ်ခုမှ subagent တစ်ခုကို ထုတ်လုပ်ပေးနိုင်သည် (/agents ကို ခေါ်ယူပြီး agent အသစ်တစ်ခု ဖန်တီးပါ)။ အောက်ပါ prompt ဖြင့် subagent တစ်ခု ဖန်တီးကြည့်ပါ-

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.

ထို့နောက် သင်သည် top-level agent အား “use the code checker subagent” ကဲ့သို့သော စာသားဖြင့် subagent အား တိုက်ရိုက် စေခိုင်းရန် အသုံးပြုနိုင်သည်။ သို့မဟုတ် သင့်တော်သည့်အခါတွင် top-level agent ကို subagent ထံ အလိုအလျောက် စေခိုင်းစေနိုင်သည်၊ ဥပမာ Python ဖိုင်များကို ပြင်ဆင်ပြီးနောက် မျိုး ဖြစ်သည်။

သတိပြုရမည့် အချက်များ (What to watch out for)

AI tool များသည် အမှားများ ပြုလုပ်နိုင်သည်။ ၎င်းတို့သည် နောက်လာမည့် token ကို ဖြစ်တန်းခြေအပေါ် မူတည်၍ ခန့်မှန်းပေးသည့် model အဖြစ်သာ တည်ဆောက်ထားသော LLM များပေါ်တွင် အခြေခံထားသည်။ ၎င်းတို့သည် လူသားများကဲ့သို့ “ဉာဏ်ရည်ထက်မြက်” သည် မဟုတ်ပါ။ မှန်ကန်မှုရှိမရှိနှင့် လုံခြုံရေးဆိုင်ရာ အမှားများ (security bugs) ရှိမရှိအတွက် AI ၏ output များကို စစ်ဆေးပါ။ အချို့အခါများတွင် code ကို စစ်ဆေးခြင်းသည် code ကို ကိုယ်တိုင် ရေးသားခြင်းထက် ပိုမို ခက်ခဲနိုင်သည်- အရေးကြီးသော code များအတွက် သင့်ကိုယ်တိုင် လက်ဖြင့် ရေးသားရန် စဉ်းစားပါ။ AI သည် လမ်းလွဲများသို့ ရောက်ရှိသွားနိုင်ပြီး သင့်အား မျက်စိလည်အောင် (gaslight) ကြိုးပမ်းနိုင်သည်- debugging သံသရာ (spirals) ထဲ ရောက်မသွားစေရန် သတိပြုပါ။ AI ကို အမှီသဟဲပြုစရာအဖြစ် မသုံးပါနှင့်၊ အလွန်အမင်း မှီခိုခြင်း သို့မဟုတ် အပေါ်ယံသာ နားလည်ခြင်းတို့ကို သတိထားပါ။ AI မပြုလုပ်နိုင်သေးသည့် ပရိုဂရမ်းမင်း task အမြောက်အမြား ရှိနေပါသေးသည်။ တွက်ချက်မှုဆိုင်ရာ စဉ်းစားတွေးခေါ်မှု (Computational thinking) သည် တန်ဖိုးရှိနေဆဲ ဖြစ်သည်။

အကြံပြုထားသော ဆော့ဖ်ဝဲလ်များ (Recommended software)

IDE များနှင့် AI coding extension အများအပြားတွင် coding agent များ ပါဝင်ကြသည် (development environment သင်ခန်းစာ မှ အကြံပြုချက်များကို ကြည့်ပါ)။ အခြား လူကြိုက်များသော coding agent များတွင် Anthropic ၏ Claude Code၊ OpenAI ၏ Codex နှင့် opencode ကဲ့သို့သော open-source agent များ ပါဝင်သည်။

လေ့ကျင့်ခန်းများ (Exercises)

  1. ပရိုဂရမ်းမင်း task တစ်ခုတည်းကို လေးကြိမ် ပြုလုပ်ခြင်းဖြင့် ကိုယ်တိုင် လက်ဖြင့် ကုဒ်ရေးခြင်း၊ AI autocomplete အသုံးပြုခြင်း၊ inline chat အသုံးပြုခြင်းနှင့် agent များ အသုံးပြုခြင်းတို့၏ အတွေ့အကြုံများကို နှိုင်းယှဉ်ကြည့်ပါ။ အကောင်းဆုံး ရွေးချယ်မှုမှာ သင် လုပ်ဆောင်နေဆဲဖြစ်သော project မှ သေးငယ်သော feature တစ်ခု ဖြစ်သည်။ အကယ်၍ အခြား အိုင်ဒီယာများကို ရှာဖွေနေပါက GitHub ရှိ open-source project များမှ “good first issue” ပုံစံ task များကို ပြီးမြောက်အောင် လုပ်ဆောင်ခြင်း သို့မဟုတ် Advent of Code သို့မဟုတ် LeetCode ပုစ္ဆာများကို ဖြေရှင်းခြင်းဖြင့် စဉ်းစားနိုင်သည်။
  2. မရင်းနှီးသေးသော codebase တစ်ခုကို လေ့လာစူးစမ်းရန် AI coding agent တစ်ခုကို အသုံးပြုပါ။ ဤသည်ကို သင် အမှန်တကယ် စိတ်ဝင်စားသော project တစ်ခုတွင် debug ပြုလုပ်လိုခြင်း သို့မဟုတ် feature အသစ်တစ်ခု ထည့်သွင်းလိုခြင်း အခြေအနေတွင် အကောင်းဆုံး ပြုလုပ်နိုင်သည်။ အကယ်၍ စိတ်ထဲတွင် မရှိပါက opencode agent တွင် လုံခြုံရေးဆိုင်ရာ feature များ မည်သို့ အလုပ်လုပ်သည်ကို နားလည်ရန် AI agent တစ်ခုကို အသုံးပြုကြည့်ပါ။
  3. အစမှစ၍ သေးငယ်သော app တစ်ခုကို vibe code ပြုလုပ်ကြည့်ပါ။ သင့်ကိုယ်တိုင် လက်ဖြင့် code စာကြောင်းတစ်ကြောင်းမျှ မရေးပါနှင့်။
  4. သင် ရွေးချယ်ထားသော coding agent အတွက် AGENTS.md (သို့မဟုတ် သင့် agent ၏ ဆင်တူရာ ဥပမာ CLAUDE.md)၊ skill တစ်ခု (ဥပမာ skill in Claude Code သို့မဟုတ် skill in Codex)၊ နှင့် subagent တစ်ခု (ဥပမာ subagent in Claude Code) တို့ကို ဖန်တီး၍ စမ်းသပ်ပါ။ ၎င်းတို့ထဲမှ တစ်ခုကို အခြားတစ်ခုအစား မည်သည့်အချိန်တွင် အသုံးပြုချင်မည်နည်းဆိုသည်ကို စဉ်းစားပါ။ သင် ရွေးချယ်ထားသော coding agent သည် ဤ လုပ်ဆောင်ချက်အချို့ကို ထောက်ပံ့မည် မဟုတ်သည်ကို သတိပြုပါ- ၎င်းတို့ကို ကျော်လွန်သွားနိုင်သည် သို့မဟုတ် ထောက်ပံ့မှုပေးသော အခြား coding agent တစ်ခုကို စမ်းသပ်ကြည့်နိုင်သည်။
  5. Code Quality သင်ခန်းစာ မှ Markdown bullet point များ regex လေ့ကျင့်ခန်းအတိုင်း တူညီသော ရည်မှန်းချက် ပြည့်မြောက်စေရန် coding agent တစ်ခုကို အသုံးပြုပါ။ ၎င်းသည် ဖိုင်ကို တိုက်ရိုက် ပြင်ဆင်ခြင်းဖြင့် task များကို ပြီးမြောက်စေသလား။ ဤကဲ့သို့သော task မျိုးကို ပြီးမြောက်ရန် ဖိုင်ကို Agent က တိုက်ရိုက် ပြင်ဆင်ခြင်း၏ အားနည်းချက်များနှင့် ကန့်သတ်ချက်များမှာ မည်သည်တို့နည်း။ ဖိုင်အား တိုက်ရိုက် ပြင်ဆင်ခြင်း မဟုတ်ဘဲ ပြီးမြောက်အောင် လုပ်ဆောင်နိုင်ရန် Agent ထံ မည်သို့ prompt ပေးရမည်နည်းဆိုသည်ကို ရှာဖွေပါ။ အကူအညီ- ပထမဦးဆုံး သင်ခန်းစာ တွင် ဖော်ပြခဲ့သော command-line tool များထဲမှ တစ်ခုကို အသုံးပြုရန် agent ထံ တောင်းဆိုပါ။
  6. Coding agent အများစုသည် “yolo mode” ပုံစံကို ထောက်ပံ့ပေးကြသည် (ဥပမာ Claude Code တွင် --dangerously-skip-permissions)။ ဤ mode ကို တိုက်ရိုက် အသုံးပြုခြင်းသည် လုံခြုံမှုမရှိသော်လည်း virtual machine သို့မဟုတ် container ကဲ့သို့ သီးခြားခွဲထုတ်ထားသော ဝန်းကျင် (isolated environment) တွင် coding agent တစ်ခုကို run ပြီး ကိုယ်ပိုင် လုပ်ဆောင်မှု (autonomous operation) ကို ဖွင့်ပေးခြင်းသည် လက်ခံနိုင်ဖွယ် ရှိသည်။ သင့် စက်ပေါ်တွင် ဤ setup ကို run နိုင်အောင် ပြုလုပ်ပါ။ Claude Code devcontainers သို့မဟုတ် Docker Sandboxes / Claude Code ကဲ့သို့သော documentation များသည် အသုံးဝင်နိုင်ပါသည်။ ဤ setup ကို တည်ဆောက်ရန် နည်းလမ်းတစ်မျိုးထက်မက ရှိပါသည်။

Edit this page.

Licensed under CC BY-NC-SA.