Codex orchestration အတွက် open-source spec တစ်ခု- Symphony
ရေးသားသူ Alex Kotliarskyi၊ Victor Zhu နှင့် Zach Brock
လွန်ခဲ့သော ခြောက်လက၊ အတွင်းပိုင်း ထုတ်လုပ်မှုစွမ်းရည်မြှင့် ကိရိယာတစ်ခုကို လုပ်ဆောင်နေစဉ်၊ ကျွန်ုပ်တို့၏ အဖွဲ့သည် (ထိုအချိန်က) အငြင်းပွားဖွယ်ဖြစ်ခဲ့သော ဆုံးဖြတ်ချက်တစ်ခုကို ချမှတ်ခဲ့သည်- ကျွန်ုပ်တို့၏ repo ကို လူသားရေးသားထားသော ကုဒ်မပါဘဲ တည်ဆောက်မည် ဖြစ်သည်။ ကျွန်ုပ်တို့၏ ပရောဂျက် သိမ်းဆည်းရန်နေရာရှိ လိုင်းတိုင်းကို Codex က ဖန်တီးထားရန် လိုအပ်ခဲ့သည်။
ထိုအရာ အလုပ်ဖြစ်စေရန်အတွက်၊ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ အင်ဂျင်နီယာလုပ်ငန်းစဉ်ကို အခြေခံအဆင့်မှစ၍ ပြန်လည်ဒီဇိုင်းဆွဲခဲ့ပါသည်။ ကျွန်ုပ်တို့သည် အေးဂျင့်အတွက် အဆင်ပြေသော သိမ်းဆည်းရန်နေရာတစ်ခုကို တည်ဆောက်ခဲ့ပြီး၊ အလိုအလျောက် စမ်းသပ်မှုများနှင့် ကာကွယ်ရေးကန့်သတ်ချက်များတွင် အလွန်အမင်း ရင်းနှီးမြှုပ်နှံခဲ့ကာ Codex ကို အသင်းဖော်တစ်ဦးအဖြစ် သဘောထားဆက်ဆံခဲ့သည်။ ထိုခရီးစဉ်ကို ကျွန်ုပ်တို့၏ ယခင် harness engineering ဆိုင်ရာ ဘလော့ဂ်ပို့စ်တွင် မှတ်တမ်းတင်ထားခဲ့ပါသည်။
၎င်းသည် အလုပ်ဖြစ်ခဲ့ပါသည်၊ သို့သော် ထို့နောက် ကျွန်ုပ်တို့သည် နောက်ထပ် အတားအဆီးတစ်ခုနှင့် ကြုံတွေ့ခဲ့ရသည်- အကြောင်းအရာပြောင်းလဲလုပ်ဆောင်မှု။
ဤပြဿနာအသစ်ကို ဖြေရှင်းရန် ကျွန်ုပ်တို့သည် Symphony ဟုခေါ်သော စနစ်တစ်ခုကို တည်ဆောက်ခဲ့ပါသည်။ Symphony(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) သည် Linear ကဲ့သို့သော ပရောဂျက်စီမံခန့်ခွဲမှု ဘုတ်တစ်ခုကို ကုဒ်ရေးအေးဂျင့်များအတွက် control plane တစ်ခုအဖြစ် ပြောင်းလဲပေးသော အေးဂျင့် orchestrator တစ်ခုဖြစ်သည်။ ဖွင့်ထားသော လုပ်ငန်းတာဝန်တိုင်းတွင် အေးဂျင့်တစ်ခု ခန့်အပ်ပေးထားပြီး၊ အေးဂျင့်များသည် အဆက်မပြတ် လုပ်ဆောင်နေကာ လူသားများက ရလဒ်များကို ပြန်လည်သုံးသပ်သည်။
ဤပို့စ်တွင် ကျွန်ုပ်တို့ Symphony ကို မည်သို့ဖန်တီးခဲ့သည်၊ အချို့သောအဖွဲ့များတွင် ပြီးမြောက်သွားသော pull request များ 500% တိုးလာစေခဲ့ပုံ၊ နှင့် သင့်ကိုယ်ပိုင် issue tracker ကို အမြဲတမ်းလည်ပတ်နေသော အေးဂျင့် orchestrator တစ်ခုအဖြစ် ပြောင်းလဲအသုံးပြုပုံကို ရှင်းပြထားပါသည်။
အပြန်အလှန် ဆက်သွယ်နိုင်သော ကုဒ်ရေးအေးဂျင့်များ၏ အမြင့်ဆုံးအဆင့်
အသုံးပြုရ ပိုမိုလွယ်ကူလာနေသော်လည်း၊ ကုဒ်ရေးအေးဂျင့်များသည် (ဝဘ်အက်ပ်များမှတစ်ဆင့်ဖြစ်စေ၊ Command Line Interface (CLI) မှတစ်ဆင့်ဖြစ်စေ ဝင်ရောက်အသုံးပြုသည်ဖြစ်စေ) အပြန်အလှန် ဆက်သွယ်အသုံးပြုရသော ကိရိယာများအဖြစ် ဆက်လက်ရှိနေဆဲဖြစ်သည်။
OpenAI တွင် agentic လုပ်ငန်း၏ အတိုင်းအတာ တိုးလာသည်နှင့်အမျှ၊ ကျွန်ုပ်တို့သည် ဝန်ထုပ်ဝန်ပိုး အမျိုးအစားအသစ်တစ်ခုကို တွေ့ရှိခဲ့ပါသည်။ အင်ဂျင်နီယာတစ်ဦးစီသည် Codex ဆက်ရှင်အနည်းငယ်ကို ဖွင့်ကာ၊ လုပ်ငန်းတာဝန်များကို ခန့်အပ်ပြီး၊ ထွက်ရှိလာသော ရလဒ်ကို ပြန်လည်သုံးသပ်ကာ၊ အေးဂျင့်ကို လမ်းညွှန်ပြီး ထိုလုပ်ငန်းစဉ်ကို ထပ်ခါတလဲလဲ လုပ်ဆောင်လေ့ရှိသည်။ လက်တွေ့တွင် လူအများစုသည် အကြောင်းအရာပြောင်းလဲလုပ်ဆောင်မှုက ခက်ခဲပင်ပန်းလာမီ တစ်ကြိမ်တည်းတွင် ဆက်ရှင် သုံးခုမှ ငါးခုအထိကို အဆင်ပြေစွာ စီမံနိုင်ကြသည်။ ထိုအဆင့်ထက် ကျော်လွန်သွားသောအခါ လုပ်ငန်းစွမ်းဆောင်ရည် ကျဆင်းခဲ့သည်။ ကျွန်ုပ်တို့သည် မည်သည့်ဆက်ရှင်က မည်သည့်အရာကို လုပ်ဆောင်နေသည်ကို မေ့သွားတတ်ပြီး၊ အေးဂျင့်များကို လမ်းကြောင်းမှန်ပေါ် ပြန်ရောက်အောင် ကူညီညှိပေးရန် terminal များအကြား ခုန်ကူးပြောင်းရွှေ့ရလေ့ရှိကာ၊ အလယ်လောက်တွင် ရပ်တန့်သွားသော အချိန်ကြာရှည် လုပ်ဆောင်နေသည့် တာဝန်များကို debug လုပ်ရလေ့ရှိပါသည်။
အေးဂျင့်များသည် မြန်ဆန်ခဲ့သော်လည်း ကျွန်ုပ်တို့တွင် စနစ်ဆိုင်ရာ အတားအဆီးတစ်ခု ရှိခဲ့သည်- လူသား၏ အာရုံစိုက်မှု။ လက်တွေ့အားဖြင့် ကျွန်ုပ်တို့သည် အလွန်စွမ်းဆောင်ရည်မြင့်မားသော အငယ်တန်း အင်ဂျင်နီယာများပါဝင်သည့် အဖွဲ့တစ်ဖွဲ့ကို တည်ဆောက်ခဲ့ပြီးနောက် ကျွန်ုပ်တို့၏ လူသား အင်ဂျင်နီယာများကို သူတို့အား အသေးစိတ်အဆင့်ထိ စီမံကြီးကြပ်ရန် တာဝန်ပေးခဲ့သည်။ ထိုအရာသည် အတိုင်းအတာချဲ့ထွင်မှုအတွက် သင့်လျော်သော နည်းလမ်း မဟုတ်ခဲ့ပါ။
ရှုထောင့်အမြင် ပြောင်းလဲမှု
ကျွန်ုပ်တို့သည် မှားယွင်းသောအရာကို အကောင်းဆုံးဖြစ်အောင် လုပ်ဆောင်နေမိကြောင်း သိရှိခဲ့ရပါသည်။ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏စနစ်ကို ကုဒ်ရေးသားမှု ဆက်ရှင်များနှင့် merge လုပ်ပြီးသော PR များကို ဗဟိုပြု၍ ချိန်ညှိနေခဲ့သော်လည်း၊ တကယ်တမ်းတွင် PR များနှင့် ဆက်ရှင်များသည် ရည်မှန်းချက်ဆီ ရောက်ရန် နည်းလမ်းများသာ ဖြစ်ပါသည်။ ဆော့ဖ်ဝဲ လုပ်ငန်းစီးဆင်းမှုများကို အများအားဖြင့် ပေးပို့ရမည့်အရာများ- ပြဿနာများ၊ တာဝန်များ၊ ticket များ၊ မှတ်တိုင်များ ကို ဗဟိုပြု၍ ဖွဲ့စည်းထားပါသည်။
ထို့ကြောင့် ကျွန်ုပ်တို့သည် အေးဂျင့်များကို တိုက်ရိုက်ကြီးကြပ်ခြင်းကို ရပ်ဆိုင်းပြီး ၎င်းတို့အား ကျွန်ုပ်တို့၏ လုပ်ငန်းခြေရာခံစနစ်မှ အလုပ်များကို ယူဆောင်လုပ်ဆောင်စေပါက မည်သို့ဖြစ်လာမည်နည်းဟု မိမိတို့ကိုယ်ကို မေးခွန်းထုတ်ခဲ့ကြပါသည်။
ထိုအယူအဆသည် Symphony ဖြစ်လာပြီး agentic work ကို စီမံညှိနှိုင်းရန် ကြီးကြပ်သူတစ်ဦးအဖြစ် လုပ်ဆောင်သော ရေးသားထားသည့် spec တစ်ခု ဖြစ်သည်။
ကျွန်ုပ်တို့၏ issue tracker ကို အေးဂျင့် orchestrator အဖြစ် ပြောင်းလဲခြင်း
Symphony သည် ရိုးရှင်းသော အယူအဆတစ်ခုဖြင့် စတင်ခဲ့သည်- ဖွင့်ထားသော တာဝန်တိုင်းကို အေးဂျင့်တစ်ဦးက ကိုင်တွယ်ပြီး ပြီးမြောက်အောင် လုပ်ဆောင်သင့်သည်။ Codex session များကို tab များစွာတွင် စီမံခန့်ခွဲမည့်အစား ကျွန်ုပ်တို့၏ issue tracker ကို control plane အဖြစ် ပြုလုပ်ခဲ့သည်။
ဤစနစ်ပြင်ဆင်မှုတွင် ဖွင့်ထားသော Linear issue တစ်ခုစီသည် သီးသန့် အေးဂျင့် အလုပ်နေရာ တစ်ခုနှင့် ချိတ်ဆက်ထားသည်။ Symphony သည် လုပ်ငန်းတာဝန်ဘုတ်ကို အဆက်မပြတ် စောင့်ကြည့်ပြီး လက်ရှိလုပ်ဆောင်နေသော လုပ်ငန်းတာဝန်တိုင်းတွင် ပြီးဆုံးသည်အထိ loop အတွင်း လည်ပတ်နေသည့် အေးဂျင့်တစ်ခု ရှိနေစေရန် သေချာစေသည်။ အေးဂျင့်တစ်ခု ပျက်သွားခြင်း သို့မဟုတ် တန့်နေခြင်း ဖြစ်ပါက၊ Symphony က ၎င်းကို ပြန်လည်စတင်ပေးသည်။ အလုပ်အသစ် ပေါ်လာပါက Symphony က ၎င်းကို သိရှိလက်ခံပြီး အလုပ်များကို စတင်စီစဉ်ပေးသည်။
ကျွန်ုပ်တို့သည် လုပ်ငန်းတာဝန် စီမံခန့်ခွဲရေးကိရိယာ Linear ကို state machine အဖြစ် အသုံးပြုကာ ticket အခြေအနေများအပေါ် အခြေခံ၍ ကျွန်ုပ်တို့၏ လုပ်ငန်းစဉ်ကို တည်ဆောက်ခဲ့ပါသည်။
လက်တွေ့တွင် Symphony သည် အလုပ်ကို ဆက်ရှင်များနှင့် pull request များမှ ခွဲထုတ်ထားသည်။ အချို့သော ပြဿနာများသည် repo များအနှံ့ PR များစွာကို ဖြစ်ပေါ်စေသော်လည်း၊ အခြားအချို့မှာ ကုဒ်ဘေ့စ်ကို လုံးဝ မထိတွေ့သော စုံစမ်းစစ်ဆေးမှု သို့မဟုတ် ခွဲခြမ်းစိတ်ဖြာမှု သက်သက်ဖြစ်သည်။
လုပ်ငန်းကို ဤနည်းဖြင့် အကျဉ်းချုပ် အယူအဆအဖြစ် ခွဲထုတ်ဖော်ပြပြီးပါက၊ ticket များသည် ပိုမိုကြီးမားသော လုပ်ငန်းယူနစ်များကို ကိုယ်စားပြုနိုင်သည်။
ကျွန်ုပ်တို့သည် ရှုပ်ထွေးသော feature များနှင့် အခြေခံစနစ် ပြောင်းရွှေ့မှုများကို ညှိနှိုင်းစီမံရန် Symphony ကို ပုံမှန်အသုံးပြုပါသည်။ ဥပမာအားဖြင့်၊ ကုဒ်ဘေ့စ်၊ Slack သို့မဟုတ် Notion ကို ခွဲခြမ်းစိတ်ဖြာပြီး အကောင်အထည်ဖော်မှု အစီအစဉ်တစ်ခု ထုတ်ပေးရန် အေးဂျင့်အား တောင်းဆိုသည့် လုပ်ငန်းတာဝန်တစ်ခုကို ကျွန်ုပ်တို့ တင်သွင်းနိုင်သည်။ အစီအစဉ်ကို ကျွန်ုပ်တို့ ကျေနပ်သွားသည်နှင့် အေးဂျင့်သည် လုပ်ငန်းတာဝန်များ၏ tree ဖွဲ့စည်းပုံတစ်ခုကို ထုတ်ပေးပြီး၊ လုပ်ငန်းကို အဆင့်များအဖြစ် ခွဲခြားကာ လုပ်ငန်းတာဝန်များအကြား မှီခိုဆက်နွယ်မှုများကို သတ်မှတ်ပေးသည်။
အေးဂျင့်များသည် ပိတ်ဆို့မထားသော လုပ်ငန်းတာဝန်များပေါ်တွင်သာ စတင်လုပ်ဆောင်ကြသောကြောင့်၊ ဤ DAG (ဆောင်ရွက်မှုအဆင့်များ၏ အစီအစဉ်တစ်ခု) အတွက် ဆောင်ရွက်မှုသည် သဘာဝကျပြီး အကောင်းဆုံးပုံစံဖြင့် အပြိုင် ဆောင်ရွက်သွားပါသည်။ ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့သည် React အဆင့်မြှင့်တင်မှုကို Vite သို့ ပြောင်းရွှေ့မှုအပေါ် မူတည်၍ ပိတ်ဆို့နေသည်ဟု မှတ်သားခဲ့သည်။ မျှော်လင့်ထားသည့်အတိုင်း၊ အေးဂျင့်များသည် Vite သို့ ပြောင်းရွှေ့မှု ပြီးစီးပြီးမှသာ React ကို အဆင့်မြှင့်တင်ခြင်း စတင်ခဲ့သည်။
အေးဂျင့်များသည် လုပ်ငန်းများကို ကိုယ်တိုင်လည်း ဖန်တီးနိုင်သည်။ အကောင်အထည်ဖော်ခြင်း သို့မဟုတ် ပြန်လည်သုံးသပ်ခြင်း ကာလအတွင်း၊ ၎င်းတို့သည် လက်ရှိတာဝန်၏ နယ်ပယ်အပြင်ဘက်တွင် ကျရောက်သည့် တိုးတက်ကောင်းမွန်စေနိုင်မည့် အချက်များကို မကြာခဏ သတိပြုမိကြသည်- စွမ်းဆောင်ရည်ဆိုင်ရာ ပြဿနာတစ်ခု၊ ပြန်လည်ဖွဲ့စည်းရန် အခွင့်အလမ်းတစ်ခု သို့မဟုတ် ပိုမိုကောင်းမွန်သော စနစ်ဗိသုကာတစ်ခု။ ထိုသို့ဖြစ်လာသောအခါ၊ သူတို့သည် ကျွန်ုပ်တို့က နောက်ပိုင်းတွင် အကဲဖြတ်ပြီး အချိန်ဇယားဆွဲသတ်မှတ်နိုင်မည့် issue အသစ်တစ်ခုကို ရိုးရိုးတင်သွင်းလိုက်သည်၊ ဤနောက်ဆက်တွဲလုပ်ငန်းများအများအပြားကိုလည်း အေးဂျင့်များက ကိုင်တွယ်ဆောင်ရွက်လေ့ရှိသည်။ ကျွန်ုပ်တို့က ဤလုပ်ငန်းစဉ်ကို ကြီးကြပ်နေစဉ် အေးဂျင့်များသည် စနစ်တကျ လုပ်ဆောင်နေပြီး လုပ်ငန်းကို ဆက်လက် ရှေ့ဆက်စေပါသည်။
ဤအလုပ်လုပ်နည်းသည် မရေရာသော လုပ်ငန်းများကို စတင်ရာတွင် ဖြစ်ပေါ်နိုင်သည့် စိတ်ပိုင်းဆိုင်ရာ ဝန်ထုပ်ဝန်ပိုးကို သိသိသာသာ လျှော့ချပေးသည်။ အေးဂျင့်က တစ်ခုခု မှားယွင်းသွားပါကလည်း၊ ၎င်းသည် အသုံးဝင်သော အချက်အလက်အဖြစ် ရှိနေဆဲဖြစ်ပြီး ကျွန်ုပ်တို့အတွက် ကုန်ကျစရိတ်မှာ သုညနီးပါးသာ ဖြစ်ပါသည်။ ကျွန်ုပ်တို့သည် အေးဂျင့်အား ChatGPT Go ပုံစံငယ်များ တည်ဆောက်ပြီး စူးစမ်းလေ့လာရန် ticket များကို အလွန်သက်သာသော ကုန်ကျစရိတ်ဖြင့် တင်နိုင်ပြီး၊ မိမိတို့ မကြိုက်သော စူးစမ်းလေ့လာမှုများကိုလည်း စွန့်ပစ်နိုင်သည်။
orchestrator သည် devboxes များပေါ်တွင် လည်ပတ်ပြီး ဘယ်တော့မှ ရပ်နားမနေသောကြောင့်၊ ကျွန်ုပ်တို့သည် မည်သည့်နေရာမှမဆို လုပ်ငန်းတာဝန်များကို ထည့်သွင်းနိုင်ပြီး အေးဂျင့်တစ်ခုက ၎င်းတို့ကို လက်ခံဆောင်ရွက်မည်ဖြစ်ကြောင်း သိနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့အဖွဲ့မှ အင်ဂျင်နီယာတစ်ဦးသည် အရည်အသွေးမကောင်းသော Wi‑Fi ရှိသည့် သက်တောင့်သက်သာရှိသော တောအိမ်ငယ်တစ်ခုမှ သူ၏ဖုန်းပေါ်ရှိ Linear အက်ပ်ကို အသုံးပြု၍ အရေးကြီးသော ပြောင်းလဲမှုသုံးခု ပြုလုပ်ခဲ့သည်။
ဤနည်းလမ်းဖြင့် အလုပ်လုပ်ခြင်းကြောင့် လေ့လာစုံစမ်းမှု တိုးလာခြင်း
Symphony နှင့် အလုပ်လုပ်ခြင်း၏ အကျိုးသက်ရောက်မှုများကို လေ့လာကြည့်သောအခါ၊ အထင်ရှားဆုံး ပြောင်းလဲမှုမှာ ထွက်ရှိမှုဖြစ်သည်။ OpenAI ရှိ အချို့သောအဖွဲ့များတွင် ပထမ သုံးပတ်အတွင်း ပေါင်းစည်းပြီးသော PR များ အရေအတွက် 500% တိုးလာသည်ကို ကျွန်ုပ်တို့ တွေ့မြင်ခဲ့ရသည်။ OpenAI ပြင်ပတွင် Linear တည်ထောင်သူ Karri Saarinen က ကျွန်ုပ်တို့ Symphony ကို ထုတ်ပြန်ချိန်တွင် ဖန်တီးထားသည့် အလုပ်နေရာများ ရုတ်တရက် မြင့်တက်လာမှု(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) ကို မီးမောင်းထိုးပြခဲ့သည်။ သို့သော် ပိုမိုနက်ရှိုင်းသော ပြောင်းလဲမှုမှာ အဖွဲ့များက အလုပ်အပေါ် စဉ်းစားပုံ ဖြစ်သည်။
ကျွန်ုပ်တို့၏ အင်ဂျင်နီယာများသည် Codex ဆက်ရှင်များကို စောင့်ကြည့်ကြီးကြပ်ရန် အချိန်မကုန်တော့သည့်အခါ၊ ကုဒ်ရေးခြင်း၏ စီးပွားရေးတွက်ချက်ပုံသည် လုံးဝပြောင်းလဲသွားပါသည်။ အပြောင်းအလဲတစ်ခုစီအတွက် ယူဆထားသော ကုန်ကျစရိတ်သည် လျော့ကျသွားပါသည်၊ အကြောင်းမှာ ကျွန်ုပ်တို့သည် အကောင်အထည်ဖော်မှုကိုယ်တိုင်ကို ဦးဆောင်မောင်းနှင်ဆောင်ရွက်ရန် လူသားအားထုတ်မှုကို မရင်းနှီးမြှုပ်နှံတော့သောကြောင့် ဖြစ်ပါသည်။
ထိုအရာက ကျွန်ုပ်တို့၏ အပြုအမူကို ပြောင်းလဲစေခဲ့သည်။ Symphony တွင် အစမ်းသဘောဆောင်သော အလုပ်များကို မြန်မြန်ဆန်ဆန် စတင်ဖန်တီးရန် အလွန်လွယ်ကူလာပါပြီ။ အကြံဉာဏ်တစ်ခုကို စမ်းကြည့်ပါ၊ refactor တစ်ခုကို စူးစမ်းလေ့လာပါ၊ အယူခံချက်တစ်ခုကို စမ်းသပ်ပါ၊ ပြီးလျှင် အလားအလာကောင်းပုံရသော ရလဒ်များကိုသာ သိမ်းထားပါ။
၎င်းသည် လုပ်ငန်းကို စတင်နိုင်သူများ၏ အတိုင်းအတာကိုလည်း ကျယ်ပြန့်စေပါသည်။ ကျွန်ုပ်တို့၏ ထုတ်ကုန်မန်နေဂျာနှင့် ဒီဇိုင်နာတို့သည် ယခုအခါ လုပ်ဆောင်ချက် တောင်းဆိုချက်များကို Symphony ထဲသို့ တိုက်ရိုက် တင်သွင်းနိုင်သည်။ ၎င်းတို့အနေဖြင့် repo ကို check out လုပ်ရန် သို့မဟုတ် Codex session တစ်ခုကို စီမံခန့်ခွဲရန် မလိုအပ်ပါ။ ၎င်းတို့သည် အင်္ဂါရပ်ကို ဖော်ပြပြီး၊ ထုတ်ကုန်အမှန်တကယ်အတွင်း ထိုအင်္ဂါရပ် လုပ်ဆောင်နေသည်ကို ဗီဒီယိုလမ်းညွှန်ဖြင့် ပြသထားသော ပြန်လည်သုံးသပ်မှု ပက်ကေ့ဂျ်တစ်ခုကို ပြန်လည်ရရှိပါသည်။
Symphony သည် OpenAI တွင် ကျွန်ုပ်တို့ရှိသည့်အရာကဲ့သို့သော ကြီးမားသော monorepo များတွင်လည်း ထူးချွန်စွာ လုပ်ဆောင်နိုင်ပြီး၊ ထိုနေရာများတွင် PR တစ်ခုကို အပြီးသတ်ပေါင်းထည့်ရန် နောက်ဆုံးအဆင့်သည် နှေးကွေးပြီး ပျက်လွယ်သည်။ စနစ်သည် CI ကို စောင့်ကြည့်ပြီး လိုအပ်သည့်အခါ rebase ပြုလုပ်ကာ ပဋိပက္ခများကို ဖြေရှင်းပြီး မတည်ငြိမ်သော စစ်ဆေးမှုများကို ထပ်မံလုပ်ဆောင်ကာ ယေဘုယျအားဖြင့် ပြောင်းလဲချက်များကို ပိုက်လိုင်းတစ်လျှောက် ဖြတ်သန်းနိုင်အောင် ဦးဆောင်ထိန်းကျောင်းပေးသည်။ Ticket တစ်ခုသည် Merging အဆင့်သို့ ရောက်လာသည့်အချိန်တွင်၊ ထိုပြောင်းလဲချက်သည် လူသား၏ အနီးကပ်ကြီးကြပ်မှု မလိုဘဲ အဓိက branch ထဲသို့ အောင်မြင်စွာ ပေါင်းစည်းဝင်ရောက်မည်ဟု ကျွန်ုပ်တို့ မြင့်မားစွာ ယုံကြည်ထားပါသည်။
Symphony ကို အကောင်အထည်ဖော်ပြီးနောက် ကျွန်ုပ်တို့သည် အလုပ်များကို အေးဂျင့်များထံ ပိုမိုလွှဲအပ်ပြီး၊ ပိုမိုခက်ခဲပြီး ပိုမိုစူးစမ်းလေ့လာမှုလိုအပ်သော လုပ်ငန်းတာဝန်များကို အာရုံစိုက်လုပ်ဆောင်ပါသည်။
တိုးတက်မှုနှင့်အတူ အသစ်ဖြစ်ပြီး ကွဲပြားသော ပြဿနာများ ပါလာသည်
ဤအဆင့်တွင် လည်ပတ်ပါက အလျှော့အတင်းပြုရမည့် အချက်များ ရှိသည်။ ကျွန်ုပ်တို့သည် အေးဂျင့်များကို အပြန်အလှန်တုံ့ပြန်စွာ လမ်းညွှန်ထိန်းကျောင်းခြင်းမှ ticket အဆင့်တွင် ၎င်းတို့အား အလုပ်တာဝန်များ သတ်မှတ်ပေးခြင်းသို့ ပြောင်းလဲလိုက်သောအခါ၊ ၎င်းတို့ လုပ်ဆောင်နေစဉ်အတွင်း အမြဲတမ်း အနည်းငယ်တိုက်တွန်းညွှန်ပြပေးနိုင်မှုနှင့် လိုအပ်သည့်အခါ လမ်းကြောင်းပြန်လည်ပြင်ဆင်ပေးနိုင်မှုကို ကျွန်ုပ်တို့ ဆုံးရှုံးသွားခဲ့သည်။ တစ်ခါတစ်ရံတွင် အေးဂျင့်သည် ရည်မှန်းချက်ကို လုံးဝလွဲချော်သည့် ရလဒ်တစ်ခုကို ထုတ်ပေးခဲ့သည်။ ထိုအရာသည် အသုံးဝင်ခဲ့ပါသည်၊ ထိုမအောင်မြင်မှုများက စနစ်အတွင်းရှိ ကွာဟချက်များကို ဖော်ထုတ်ပေးပြီး ၎င်းကို ပိုမိုခံနိုင်ရည်ရှိစေရန် ကျွန်ုပ်တို့ကို ကူညီပေးခဲ့ပါသည်။
ရလဒ်ကို ကိုယ်တိုင် patching ပြုလုပ်ခြင်းအစား၊ အေးဂျင့်များသည် နောက်တစ်ကြိမ်တွင် အောင်မြင်နိုင်ရန် ကျွန်ုပ်တို့သည် guardrails နှင့် skills များကို ထည့်သွင်းခဲ့ပါသည်။ အချိန်ကြာလာသည်နှင့်အမျှ၊ ၎င်းကြောင့် ကျွန်ုပ်တို့၏ harness တွင် end-to-end စမ်းသပ်မှုများကို လုပ်ဆောင်ခြင်း၊ Chrome DevTools မှတစ်ဆင့် အက်ပ်ကို ထိန်းချုပ်မောင်းနှင်ခြင်းနှင့် QA smoke စမ်းသပ်မှုများကို စီမံခန့်ခွဲခြင်းကဲ့သို့သော လုပ်ဆောင်နိုင်စွမ်းအသစ်များကို ထည့်သွင်းလာခဲ့ပါသည်။ ကျွန်ုပ်တို့၏ စာရွက်စာတမ်းများကို သိသိသာသာ တိုးတက်ကောင်းမွန်အောင် ပြုလုပ်ခဲ့ပြီး၊ ကောင်းမွန်သည်ဟူသည် မည်သို့ပုံစံဖြစ်သင့်ကြောင်း ပိုမိုရှင်းလင်းစွာ သတ်မှတ်ခဲ့ပါသည်။
လုပ်ငန်းဆောင်တာတိုင်းသည် Symphony ၏ အလုပ်လုပ်ပုံစံနှင့် ကိုက်ညီသည်မဟုတ်ပါ။ ပြဿနာအချို့သည် အင်ဂျင်နီယာများက အပြန်အလှန်တုံ့ပြန်နိုင်သော Codex session များနှင့် တိုက်ရိုက်လုပ်ဆောင်ရန် လိုအပ်နေဆဲဖြစ်သည်၊ အထူးသဖြင့် မရေရာသော ပြဿနာများ သို့မဟုတ် ခိုင်မာသော ဆုံးဖြတ်နိုင်စွမ်းနှင့် ကျွမ်းကျင်မှု လိုအပ်သော အလုပ်များဖြစ်သည်။ လက်တွေ့တွင် ဤလုပ်ငန်းများသည် ကျွန်ုပ်တို့၏ အင်ဂျင်နီယာများ အချိန်ပေးလုပ်ဆောင်ရန် အများအားဖြင့် စိတ်ဝင်စားဖွယ်အကောင်းဆုံးနှင့် ပျော်ရွှင်ဖွယ်အကောင်းဆုံး လုပ်ငန်းများ ဖြစ်ပါသည်။
ကွာခြားချက်မှာ Symphony သည် ပုံမှန် အကောင်အထည်ဖော်ရေးလုပ်ငန်းအများစုကို ကိုင်တွယ်လုပ်ဆောင်နိုင်ခြင်းဖြစ်သည်။ ၎င်းသည် အင်ဂျင်နီယာများအား သေးငယ်သော လုပ်ငန်းတာဝန်များအကြား အမြဲတစေ အကြောင်းအရာပြောင်းလဲလုပ်ဆောင်နေရမည့်အစား တစ်ကြိမ်လျှင် ခက်ခဲသော ပြဿနာတစ်ခုတည်းကို အာရုံစိုက်နိုင်စေသည်။
အေးဂျင့်များကို state machine တစ်ခုအတွင်းရှိ တင်းကျပ်သော ဆုံမှတ်များအဖြစ် သတ်မှတ်ဆက်ဆံခြင်းသည် ကောင်းစွာ အလုပ်မဖြစ်ကြောင်းကိုလည်း ကျွန်ုပ်တို့ သိရှိလာခဲ့သည်။ မော်ဒယ်များသည် ပိုမိုဉာဏ်ကောင်းလာပြီး ကျွန်ုပ်တို့က ၎င်းတို့ကို ကန့်သတ်ထည့်သွင်းရန် ကြိုးစားသည့် ဘောင်ထက် ပိုမိုကြီးမားသော ပြဿနာများကို ဖြေရှင်းနိုင်လာသည်။ ကျွန်ုပ်တို့၏ agentic work အစောပိုင်းဗားရှင်းများမှာ Codex အား တာဝန်ကို အကောင်အထည်ဖော်ရန်သာ တောင်းဆိုခြင်းဖြစ်ခဲ့သည်။ ထိုချဉ်းကပ်ပုံသည် ကန့်သတ်မှုများလွန်းကြောင်း တွေ့ရှိခဲ့ရသည်။ Codex သည် PR များစွာကို ဖန်တီးနိုင်သည့်အပြင် ပြန်လည်သုံးသပ်ချက် တုံ့ပြန်ချက်များကို ဖတ်ရှုပြီး ၎င်းတို့ကို ကိုင်တွယ်ဖြေရှင်းနိုင်စွမ်းလည်း အပြည့်အဝရှိသည်။ ထို့ကြောင့် ကျွန်ုပ်တို့သည် ၎င်းကို tools များ (gh CLI၊ CI logs ကို ဖတ်နိုင်သော skills စသည်တို့) ပေးခဲ့ပြီး၊ ယခုအခါ Codex ကို PR အဟောင်းများ ပိတ်ခြင်း သို့မဟုတ် ပြီးစီးထားသောအလုပ်များနှင့် စွန့်လွှတ်ထားသောအလုပ်များကို နှိုင်းယှဉ်သော reports များ ထုတ်ယူခြင်းကဲ့သို့ ပိုမိုများပြားသောအလုပ်များကို လုပ်ခိုင်းနိုင်ပါပြီ။ ဤတာဝန် အမျိုးအစားများသည် ကနဦးလုပ်ဆောင်ချက် အကောင်အထည်ဖော်ရေး ဘောင်အပြင်ဘက်သို့ အလွန်ကျော်လွန်နေခဲ့သည်။
ထို့ကြောင့် နောက်ဆုံးတွင် ကျွန်ုပ်တို့သည် အေးဂျင့်များအား တင်းကျပ်သော အကူးအပြောင်းများအစား ရည်မှန်းချက်များ ပေးအပ်ခြင်းဘက်သို့ ရွေ့လျားခဲ့ကြသည်။ ၎င်းမှာ မန်နေဂျာကောင်းတစ်ဦးက မိမိအသင်းရှိ တိုက်ရိုက်လက်အောက်ခံဝန်ထမ်းတစ်ဦးအား ရည်မှန်းချက်တစ်ခု သတ်မှတ်ပေးသကဲ့သို့ပင် ဖြစ်သည်။ မော်ဒယ်များ၏ စွမ်းအားသည် ၎င်းတို့၏ ကျိုးကြောင်းသင့်စွာ စဉ်းစားနိုင်စွမ်းမှ လာသည်။ ထို့ကြောင့် ၎င်းတို့အား ကိရိယာများနှင့် context ကို ပေးပြီး လွတ်လပ်စွာ ဆောင်ရွက်ခွင့်ပြုပါ။
Symphony ကို တည်ဆောက်ရန် Symphony ကို အသုံးပြုခြင်း
Symphony သိမ်းဆည်းရန်နေရာကို(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) သင်ဖွင့်လိုက်သောအခါ ပထမဆုံး သတိထားမိမည့်အရာမှာ Symphony သည် နည်းပညာအရ SPEC.md ဖိုင်တစ်ခုသာ ဖြစ်သည်၊ ပြဿနာနှင့် ရည်ရွယ်ထားသော ဖြေရှင်းချက်ကို အဓိပ္ပာယ်ဖွင့်ဆိုထားခြင်းဖြစ်သည်။ ရှုပ်ထွေးသော ကြီးကြပ်ရေးစနစ်တစ်ခုကို တည်ဆောက်မည့်အစား၊ ကျွန်ုပ်တို့သည် ပြဿနာနှင့် ရည်ရွယ်ထားသော ဖြေရှင်းနည်းများကို သတ်မှတ်ဖော်ပြပြီး အေးဂျင့်များအား အဆင့်မြင့် ဦးတည်လမ်းညွှန်မှု ပေးခဲ့သည်။
ကိုးကားအကောင်အထည်ဖော်မှုကို Elixir ဖြင့် ရေးသားထားသည်၊ အဘယ်ကြောင့်ဆိုသော် ကုဒ်သည် လက်တွေ့အားဖြင့် အခမဲ့နီးပါး ဖြစ်လာသောအခါ၊ Elixir ၏ တစ်ပြိုင်နက်လုပ်ဆောင်နိုင်စွမ်းကဲ့သို့ ၎င်းတို့၏ အားသာချက်များအရ ဘာသာစကားများကို နောက်ဆုံးတော့ ရွေးချယ်နိုင်သောကြောင့်ဖြစ်သည်၊ သို့သော် အဓိကအယူအဆကို ရိုးရှင်းသော Markdown စာရွက်စာတမ်းတစ်ခုတွင် ဖော်ပြနိုင်သည်။ သင်အနှစ်သက်ဆုံး ကုဒ်ရေး အေးဂျင့်ကို spec ကို အခြေခံစေပြီး ၎င်း၏ ကိုယ်ပိုင်ဗားရှင်းကို အကောင်အထည်ဖော်စေရန် ကျွန်ုပ်တို့ သင့်ကို အားပေးပါသည်။
Symphony ၏ ပထမဆုံးဗားရှင်းသည် tmux ထဲတွင် လည်ပတ်နေသည့် Codex session တစ်ခုသာဖြစ်ပြီး Linear ကို polling လုပ်ကာ လုပ်ငန်းတာဝန်အသစ်များအတွက် အောက်ခံအေးဂျင့်များကို ဖန်တီးနေခြင်းဖြစ်သည်။ ၎င်းသည် အလုပ်ဖြစ်ခဲ့သော်လည်း အထူးတလည် ယုံကြည်စိတ်ချရမှုတော့ မရှိခဲ့ပါ။ ဒုတိယဗားရှင်းသည် အေးဂျင့်များကို စဉ်းစားထည့်သွင်း၍ တည်ဆောက်ထားသည့် ကျွန်ုပ်တို့၏ အဓိက ပရောဂျက် သိမ်းဆည်းရန်နေရာအတွင်းတွင် ရှိနေခဲ့သည်။ ကျွန်ုပ်တို့သည် ဤ repo တွင် အရည်အသွေးမြင့် လုပ်ငန်းများ လုပ်ဆောင်နိုင်ရန် အေးဂျင့်များအား လိုအပ်သော ကျွမ်းကျင်မှုများနှင့် context ကို ပေးနိုင်သည့် အေးဂျင့် harness ကို ယခင်ကတည်းက တည်ဆောက်ထားပြီးဖြစ်သောကြောင့် Symphony သည် ၎င်းအားလုံးကို ရိုးရိုးရှင်းရှင်း ချိတ်ဆက်ပေးခြင်းသာ ဖြစ်သည်။
အခြေခံ လုပ်ဆောင်ချက်များ ရှိလာသည်နှင့် ကျွန်ုပ်တို့သည် Symphony ကို သုံးပြီး Symphony ကို တည်ဆောက်ခဲ့ပါသည်။
ကျွန်ုပ်တို့သည် လုပ်ငန်းတာဝန်များကို စီမံခန့်ခွဲပြီး ၎င်း၏ လုပ်ဆောင်မှုအထောက်အထား ဗီဒီယိုကို ပူးတွဲတင်ပြသည့် စနစ်ကို အတွင်းပိုင်းတွင် သရုပ်ပြခဲ့သောအခါ တုံ့ပြန်မှုမှာ အလွန်ကောင်းမွန်ခဲ့သည်- ကျွန်ုပ်တို့၏ Symphony ပရောဂျက်ချန်နယ်သည် တိုးချဲ့လာခဲ့ပြီး အဖွဲ့အစည်းတစ်လျှောက်ရှိ အဖွဲ့များက ၎င်းကို သဘာဝကျကျ စတင်အသုံးပြုလာကြသည်။ OpenAI တွင် ပြင်ပသို့ စတင်မိတ်ဆက်ရန်အတွက် အတွင်းပိုင်း ထုတ်ကုန်-စျေးကွက် ကိုက်ညီမှုသည် ကြိုတင်လိုအပ်ချက်တစ်ခုဖြစ်သည်။ OpenAI တွင် ကျွန်ုပ်တို့ မြင်တွေ့ခဲ့ရသော အသုံးပြုမှုအပေါ် အခြေခံ၍ Symphony ကို ကုမ္ပဏီအတွင်းသာမက ပြင်ပသို့ပါ မျှဝေသင့်ကြောင်း ရှင်းလင်းလာခဲ့သည်။
ထို့ကြောင့် ကျွန်ုပ်တို့သည် အိုင်ဒီယာကို သီးခြား SPEC.md အဖြစ် ထုတ်ယူပြီး Codex အား ၎င်းကို အကောင်အထည်ဖော်ရန် တောင်းဆိုခဲ့သည်။ ကိုးကားအကောင်အထည်ဖော်မှုအတွက်၊ ကျွန်ုပ်တို့သည် တစ်ပြိုင်နက်တည်း လုပ်ငန်းစဉ်များကို ညှိနှိုင်းစီမံခြင်းနှင့် ကြီးကြပ်ခြင်းအတွက် အလွန်ကောင်းမွန်သော အခြေခံလုပ်ဆောင်ချက်များ ပါရှိသည့်၊ အတော်လေး အထူးနယ်ပယ်ကျသော ဘာသာစကားတစ်ခုဖြစ်သော Elixir ကို ရွေးချယ်ခဲ့သည်။ Codex သည် Elixir အကောင်အထည်ဖော်မှုကို တစ်ခေါက်တည်းဖြင့် တည်ဆောက်ခဲ့ပြီး ထိုအဆင့်မှစ၍ ကျွန်ုပ်တို့သည် သတ်မှတ်ချက်နှင့် အကောင်အထည်ဖော်မှု နှစ်ခုလုံးကို ဆက်လက် ပြင်ဆင်မွမ်းမံခဲ့သည်။ သတ်မှတ်ချက်ကို ပိုမိုချောမွေ့အောင် မွမ်းမံရန်အတွက်၊ ကျွန်ုပ်တို့သည် Codex အား ၎င်းကို အခြား ပရိုဂရမ်းမင်းဘာသာစကားများစွာ (TypeScript, Go, Rust, Java, Python) ဖြင့်ပင် အကောင်အထည်ဖော်ခိုင်းပြီး ထွက်လာသည့်ရလဒ်များကို မရေရာမှုများ ဖော်ထုတ်ရန်နှင့် စနစ်ကို ပိုမိုရိုးရှင်းစေရန် အသုံးပြုခဲ့သည်။ ၎င်းသည် ဘာသာစကားတိုင်းတွင် အောင်မြင်ခဲ့သည်။
Symphony ကို တည်ဆောက်သည့် လုပ်ငန်းစဉ်တစ်လျှောက်တွင် သတ်မှတ်ထားသော သိမ်းဆည်းရန်နေရာများ သို့မဟုတ် Linear MCP အပေါ် မှီခိုမှုများကဲ့သို့သော မရည်ရွယ်ဘဲ ဖြစ်ပေါ်လာသော ရှုပ်ထွေးမှုများစွာကို ကျွန်ုပ်တို့ ဖယ်ရှားခဲ့သည်။ Symphony သည် ယခုအခါ ကျွန်ုပ်တို့၏ အတွင်းပိုင်း သိမ်းဆည်းရန်နေရာများ သို့မဟုတ် လုပ်ငန်းစဉ်များအပေါ် မမှီခိုတော့ပါ။ အဓိက ချဉ်းကပ်ပုံသည် ရိုးရှင်းလာခဲ့သည်-
ဖွင့်ထားသော တာဝန်တိုင်းအတွက် အေးဂျင့်တစ်ခုသည် ၎င်း၏ကိုယ်ပိုင် အလုပ်နေရာတွင် လုပ်ဆောင်နေကြောင်း သေချာစေပါ။
လက်ရှိလုပ်ဆောင်နေသော အလုပ်ကို ကူညီပေးခြင်းအပြင်၊ ဖန်တီးတည်ဆောက်ရေး လုပ်ငန်းစဉ်ကိုလည်း ယခုအခါ အေးဂျင့်များက သိရှိပြီး လိုက်နာဆောင်ရွက်နိုင်ပါသည်။ ဖန်တီးတည်ဆောက်ရေး လုပ်ငန်းစဉ် (issue တစ်ခုအပေါ် လုပ်ဆောင်ခြင်း၊ repo တစ်ခုကို check out လုပ်ခြင်း၊ PM က ၎င်းကို လုပ်ဆောင်နေကြောင်း သိနိုင်ရန် in progress ထားခြင်း၊ PR ထည့်ခြင်း၊ Review အခြေအနေသို့ ရွှေ့ခြင်း၊ ဗီဒီယိုများ ပူးတွဲခြင်း စသည်တို့) ကို ယခုအခါ ရိုးရှင်းသော WORKFLOW.md ဖိုင်တစ်ခုတွင် မှတ်တမ်းတင်ထားပါသည်။ ဤအရာအားလုံးသည် လူသားများ လိုက်နာဆောင်ရွက်ခဲ့သော လုပ်ငန်းစဉ်တစ်ခု ဖြစ်သော်လည်း မည်သည့်အခါမှ မှတ်တမ်းတင်ထားခြင်း မရှိခဲ့ပါ။ ဤသို့ တိကျစွာ ဖော်ပြမထားသော လုပ်ငန်းစဉ်အဆင့်များအပေါ် မှီခိုနေခြင်းထက်၊ ယခုအခါ ကျွန်ုပ်တို့သည် ၎င်းကို မှတ်တမ်းတင်ထားပြီး အေးဂျင့်များက ၎င်းကို လိုက်နာကြောင်း Symphony မှ သေချာစေပါသည်။ ဤအရာသည် ကျွန်ုပ်တို့နှင့်အတူ တွဲဖက်အလုပ်လုပ်နိုင်သော အေးဂျင့်များကို တည်ဆောက်နိုင်စေပါသည်။ အေးဂျင့်များသည် ပြီးစီးပြီးသော လုပ်ငန်းတွင် မိမိကိုယ်ကို ပြန်လည်သုံးသပ်ချက်ကိုလည်း ပူးတွဲထည့်သွင်းသင့်သည်ဟု ကျွန်ုပ်တို့ ဆုံးဖြတ်ပါက၊ ၎င်းကို WORKFLOW.md တွင် ထည့်သွင်းပါမည်၊ ထို့နောက် Symphony သည် အေးဂျင့်များအား ထိုအဆင့်သို့ လမ်းညွှန်ပေးပါမည်။
ကျွန်ုပ်တို့သည် Codex အတွက် ထည့်သွင်းပါရှိပြီးသား headless မုဒ်ဖြစ်သော app server mode(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) တွင်လည်း Codex ကို အသုံးပြုနိုင်ခဲ့ပါသည်။ ဤမုဒ်သည် thread တစ်ခု စတင်ခြင်း သို့မဟုတ် စကားပြောအလှည့်များကို တုံ့ပြန်ခြင်းတို့ကဲ့သို့သော အရာများအတွက် စာရွက်စာတမ်းပြည့်စုံစွာ ပြုစုထားသည့် JSON-RPC API မှတစ်ဆင့် Codex ကို လည်ပတ်စေပြီး ၎င်းနှင့် ပရိုဂရမ်နည်းဖြင့် ဆက်သွယ်နိုင်စေခဲ့သည်။ CLI သို့မဟုတ် live tmux session များမှတစ်ဆင့် Codex နှင့် အပြန်အလှန်ဆက်သွယ်ရန် ကြိုးစားခြင်းထက် ၎င်းသည် ပိုမိုအဆင်ပြေပြီး ချဲ့ထွင်နိုင်စွမ်းလည်း ပိုရှိပါသည်။
Codex App Server သည် ကျွန်ုပ်တို့၏ အသုံးပြုမှုပုံစံအတွက် အပြည့်အဝ ကိုက်ညီခဲ့သည်- Codex က ပေးထားသော harness ကို အကျိုးရှိစွာ အသုံးချနိုင်သလို ချိတ်ဆက်အသုံးပြုနိုင်သော hook များနှင့် ချိန်ညှိနိုင်သော ရွေးချယ်စရာများလည်း ရှိပါသည်။ ဥပမာအားဖြင့်၊ Linear access တိုကင်ကို subagent များထံသို့ ဖော်ထုတ်မိခြင်းမှ ရှောင်ရှားရန်၊ ကျွန်ုပ်တို့သည် dynamic tool calls(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) ကို အသုံးပြု၍ MCP ကို မှီခိုရန်မလိုအပ်ဘဲ သို့မဟုတ် access တိုကင် ကို container များထံသို့ ဖော်ထုတ်ရန်မလိုအပ်ဘဲ Linear အပေါ် မည်သည့်တောင်းဆိုချက်မဆို လုပ်ဆောင်နိုင်သော မူရင်း linear_graphql function ကို ဖွင့်ပေးထားပါသည်။
နောက်တစ်ဆင့်က ဘာလဲ
Symphony သည် ရည်ရွယ်ချက်ရှိရှိ အနည်းဆုံးသာ ထားရှိထားသော orchestration အလွှာတစ်ခုဖြစ်သည်။ Linear ကဲ့သို့သော မတူညီသည့် workflow ကိရိယာများနှင့် တွဲဖက်အသုံးပြုသည့်အခါ Codex App Server ၏ အစွမ်းထက်မှုကို ပြသရန် ၎င်းကို open source အဖြစ် ထုတ်ဖော်ပေးနေပါသည်။ ထို့ကြောင့် Symphony ကို သီးခြားထုတ်ကုန်တစ်ခုအဖြစ် ဆက်လက်ထိန်းသိမ်းရန် ကျွန်ုပ်တို့ အစီအစဉ်မရှိပါ။ ၎င်းကို ကိုးကားစရာ အကောင်အထည်ဖော်မှုတစ်ခုအဖြစ် စဉ်းစားပါ။ Developer အများအပြားက ၎င်းတို့၏ ကုဒ်ရေးအေးဂျင့်များကို harness engineering ပို့စ်ထံ ညွှန်ပြပြီး ၎င်းတို့၏ သိမ်းဆည်းရန်နေရာများအတွက် အခြေခံဖွဲ့စည်းပုံကို ဖန်တီးခဲ့သကဲ့သို့၊ သင့်ပတ်ဝန်းကျင်များနှင့် ကိုက်ညီအောင် ပြင်ဆင်ထားသည့် သင့်ကိုယ်ပိုင်ဗားရှင်းများကို တည်ဆောက်ရန် သင်အနှစ်သက်ဆုံး ကုဒ်ရေးအေးဂျင့်ကို Symphony သတ်မှတ်ချက်(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) နှင့် သိမ်းဆည်းရန်နေရာ(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) ထံ ညွှန်ပြရန် ကျွန်ုပ်တို့ မျှော်လင့်ပါသည်။
စွမ်ဆောင်ရည်သည် Codex နှင့် ၎င်း၏ app server မှ လာခြင်း ဖြစ်သည်။ Symphony သည် ကျွန်ုပ်တို့ အသုံးပြုနေကျဖြစ်သည့် Codex နှင့် Linear နှစ်ခုကို အလုပ်စီမံခန့်ခွဲမှု ပြဿနာဖြေရှင်းရန်အတွက် ချိတ်ဆက်ပေးသည့် နည်းလမ်းတစ်ခု ဖြစ်သည်။ ကုဒ်ရေးအေးဂျင့်များသည် ကျိုးကြောင်းသင့်လျော်စွာ စဉ််းစားပေးခြင်းနှင့် ညွှန်ကြားချက်များကို လိုက်နာခြင်းတွင် ပိုမိုကောင်းမွန်လာသည်နှင့်အမျှ၊ အခြားကုမ္ပဏီများတွင်လည်း အဟန့်အတားဖြစ်သော အချက်သည် ကုဒ်ရေးသားခြင်းမှ agentic work များကို စီမံခန့်ခွဲခြင်းဘက်သို့ ပြောင်းလဲသွားမည်ဟု ကျွန်ုပ်တို့ ယူဆပါသည်။ စိတ်လှုပ်ရှားစရာကောင်းသည့်အချက်မှာ ယခုအခါ ဤကုဒ်ရေးအေးဂျင့် စနစ်များကို စမ်းသပ်ကြည့်ရန် အတားအဆီးမှာ အံ့အားသင့်စရာကောင်းလောက်အောင် နည်းပါးလာခြင်းဖြစ်သည်။ Codex ဖြင့် အရာများစွာကို ရိုးရှင်းစွာ တည်ဆောက်နိုင်ပါသည်။
အသိုင်းအဝိုင်းမှ အသိအမှတ်ပြု ချီးကျူးမှုများ
ဖြန့်ချိပြီးနောက် အပတ်အနည်းငယ်အတွင်း အင်ဂျင်နီယာအသိုင်းအဝိုင်းက Symphony ကို အသုံးပြုနေကြသည်ကို မြင်ရသည့်အတွက် ကျွန်ုပ်တို့ အလွန်ဝမ်းမြောက်ပါသည်။ ဧပြီ ၂၃ ရက်အထိ GitHub ကြယ်ပွင့် 15K(ဝင်းဒိုးအသစ်တွင် ဖွင့်မည်) ကျော် ရရှိထားပါသည်။