Codex ഓർക്കസ്ട്രേഷനായുള്ള ഒരു ഓപ്പൺ സോഴ്സ് സ്പെസിഫിക്കേഷൻ: Symphony
തയ്യാറാക്കിയത്: Alex Kotliarskyi, Victor Zhu, Zach Brock
ആറ് മാസം മുമ്പ്, ഒരു ആഭ്യന്തര ഉൽപ്പാദനക്ഷമത ടൂളിൽ പ്രവർത്തിക്കുമ്പോൾ, ഞങ്ങളുടെ ടീം (അന്നത്തെ സാഹചര്യത്തിൽ) വിവാദമായ ഒരു തീരുമാനം എടുത്തു: ഞങ്ങളുടെ റിപ്പോസിറ്ററിയിൽ മനുഷ്യൻ എഴുതിയ കോഡുകൾ ഒന്നുംതന്നെ ഉണ്ടാവില്ല എന്നതായിരുന്നു അത്. ഞങ്ങളുടെ പ്രോജക്ട് റിപ്പോസിറ്ററിയിലെ ഓരോ വരിയും Codex സൃഷ്ടിച്ചതായിരിക്കണം.
അത് പ്രവർത്തനക്ഷമമാക്കാൻ, എഞ്ചിനീയറിംഗ് പ്രവർത്തനരീതി ഞങ്ങൾ അടിമുടി പുനർരൂപകൽപ്പന ചെയ്തു. ഏജന്റുകൾക്ക് എളുപ്പത്തിൽ ഉപയോഗിക്കാവുന്ന തരത്തിലുള്ള ഒരു റിപ്പോസിറ്ററി ഞങ്ങൾ നിർമ്മിക്കുകയും, ഓട്ടോമേറ്റഡ് ടെസ്റ്റുകളിലും സുരക്ഷാ മാനദണ്ഡങ്ങളിലും വലിയ ശ്രദ്ധ ചെലുത്തുകയും Codex-നെ ഒരു പൂർണ്ണ അംഗത്തെപ്പോലെ ടീമിൽ ഉൾപ്പെടുത്തുകയും ചെയ്തു. ആ യാത്ര harness engineering സംബന്ധിച്ച ബ്ലോഗ് പോസ്റ്റിൽ ഞങ്ങൾ മുമ്പ് രേഖപ്പെടുത്തിയിട്ടുണ്ട്.
അത് വിജയകരമായിരുന്നെങ്കിലും ഞങ്ങൾ അടുത്തൊരു പ്രശ്നം അഭിമുഖീകരിച്ചു: കോൺടെക്സ്റ്റ് സ്വിച്ചിംഗ് ആയിരുന്നു അത്.
ഈ പുതിയ പ്രശ്നം പരിഹരിക്കാൻ, Symphony എന്നൊരു സിസ്റ്റം ഞങ്ങൾ നിർമ്മിച്ചു. Symphony(പുതിയ വിൻഡോയിൽ തുറക്കുന്നു) Linear പോലുള്ള പ്രോജക്ട് മാനേജ്മെന്റ് ബോർഡുകളെ കോഡിംഗ് ഏജന്റുകൾക്കായുള്ള ഒരു കൺട്രോൾ പ്ലെയിനായി മാറ്റുന്ന ഒരു ഏജന്റ് ഓർക്കസ്ട്രേറ്ററാണ്. തീർപ്പുകൽപ്പിക്കാത്ത ഓരോ ടാസ്ക്കിനും ഓരോ ഏജന്റിനെ വീതം ലഭിക്കുന്നു, ഈ ഏജന്റുകൾ തുടർച്ചയായി പ്രവർത്തിക്കുകയും മനുഷ്യർ അവയുടെ ഫലങ്ങൾ വിലയിരുത്തുകയും ചെയ്യുന്നു.
ഈ പോസ്റ്റ് Symphony ഞങ്ങൾ എങ്ങനെ നിർമ്മിച്ചുവെന്നും —ഇതിലൂടെ ചില ടീമുകളിൽ ലാൻഡഡ് pull request-കളിൽ 500% വർദ്ധനവ് ഉണ്ടായതെങ്ങനെയെന്നും—നിങ്ങളുടെ സ്വന്തം ഇഷ്യൂ ട്രാക്കറിനെ എപ്പോഴും പ്രവർത്തിക്കുന്ന ഒരു ഏജന്റ് ഓർക്കസ്ട്രേറ്ററാക്കി എങ്ങനെ മാറ്റാമെന്നും വിശദീകരിക്കുന്നു.
ഇന്ററാക്ടീവ് കോഡിംഗ് ഏജന്റുകളുടെ പരിമിതി
കൂടുതൽ എളുപ്പത്തിൽ ഉപയോഗിക്കാൻ സാധിക്കുമെങ്കിലും—വെബ് ആപ്പുകൾ വഴിയോ CLI വഴിയോ ഉപയോഗിക്കുന്ന കോഡിംഗ് ഏജന്റുകൾ—ഇപ്പോഴും ഒരു ഇൻ്ററാക്ടീവ് ടൂൾ മാത്രമാണ്.
OpenAI-യിൽ ഏജന്റുകൾ വഴിയുള്ള ജോലികൾ വർദ്ധിച്ചതോടെ, ഞങ്ങൾ പുതിയൊരു വെല്ലുവിളി നേരിട്ടു. ഓരോ എഞ്ചിനീയറും ഒരേസമയം നിരവധി Codex സെഷനുകൾ തുറക്കുകയും, ടാസ്ക്കുകൾ നൽകുകയും, അവയുടെ ഫലങ്ങൾ പരിശോധിക്കുകയും, ഏജന്റുകൾക്ക് നിർദ്ദേശങ്ങൾ നൽകി നിയന്ത്രിക്കുകയും ചെയ്യേണ്ടി വന്നു. പ്രായോഗികമായി പറഞ്ഞാൽ, ഒരേസമയം മൂന്ന് മുതൽ അഞ്ച് വരെ സെഷനുകൾ മാത്രമേ ഒരാൾക്ക് സുഗമമായി കൈകാര്യം ചെയ്യാൻ സാധിച്ചിരുന്നുള്ളൂ അതിലധികമായാൽ കോൺടെക്സ്റ്റ് സ്വിച്ചിംഗ് പ്രയാസകരമായി മാറുന്നു. അതിൽ കൂടുതലാകുമ്പോൾ ഉല്പാദനക്ഷമതയും കുറഞ്ഞു. ഏത് സെഷനിൽ എന്ത് ജോലിയാണ് നടക്കുന്നതെന്ന് ഞങ്ങൾ മറന്നുപോകുകയും, ഏജന്റുകളെ ശരിയായ ദിശയിലേക്ക് കൊണ്ടുവരാൻ ഓരോ ടെർമിനലുകൾക്കിടയിൽ മാറിമാറി പ്രവർത്തിക്കേണ്ടിയും വന്നു. കൂടാതെ, പകുതിവഴിയിൽ തടസ്സപ്പെട്ടുപോയ ദീർഘനേര ടാസ്ക്കുകൾ ശരിയാക്കിയെടുക്കുന്നതും വലിയൊരു ജോലിയായി മാറി..
ഏജന്റുകൾ വേഗതയുള്ളവരായിരുന്നു, എന്നാൽ ഞങ്ങളുടെ സിസ്റ്റത്തിന് ഒരു തടസ്സമുണ്ടായിരുന്നു: മനുഷ്യരുടെ ശ്രദ്ധ. ഫലത്തിൽ, അങ്ങേയറ്റം കഴിവുള്ള ജൂനിയർ എഞ്ചിനീയർമാരുടെ ഒരു ടീമിനെ ഞങ്ങൾ രൂപീകരിക്കുകയും, അവരെ മൈക്രോമാനേജ് ചെയ്യാൻ ഞങ്ങളുടെ മനുഷ്യ എഞ്ചിനീയർമാരെ ചുമതലപ്പെടുത്തുകയും ചെയ്തതുപോലെയായിരുന്നു അത്. ആ രീതിക്ക് വിചാരിച്ച പോലെ മുന്നോട്ട് പോകാൻ സാധിക്കില്ലായിരുന്നു.
കാഴ്ചപ്പാടിലെ മാറ്റം
ഞങ്ങൾ തെറ്റായ കാര്യമാണ് മെച്ചപ്പെടുത്താൻ ശ്രമിക്കുന്നതെന്ന് ഞങ്ങൾക്ക് ബോധ്യപ്പെട്ടു. PR-കളും സെഷനുകളും ലക്ഷ്യത്തിലേക്കുള്ള മാർഗങ്ങൾ മാത്രമായിരുന്നിട്ടും, ഞങ്ങളുടെ സിസ്റ്റത്തെ ഞങ്ങൾ PR-കൾക്കും കോഡിംഗ് സെഷനുകളും ചുറ്റുമാണ് ക്രമീകരിച്ചിരുന്നത്. സോഫ്റ്റ്വെയർ പ്രവർത്തനരീതികൾ പൊതുവെ ലക്ഷ്യങ്ങളെ മുൻനിർത്തിയാണ് സംഘടിപ്പിക്കാറുള്ളത്: ഇഷ്യൂകൾ, ടാസ്ക്കുകൾ, ടിക്കറ്റുകൾ, മൈൽസ്റ്റോണുകൾ
അതുകൊണ്ട്, ഏജന്റുകളെ നിരീക്ഷിക്കുന്നത് അവസാനിപ്പിച്ച് ഞങ്ങളുടെ ടാസ്ക് ട്രാക്കറിൽ നിന്ന് ജോലികൾ സ്വയം ഏറ്റെടുക്കാൻ അവരെ അനുവദിച്ചാൽ എന്ത് സംഭവിക്കുമെന്ന് ഞങ്ങൾ ചിന്തിച്ചു.
ആ ആശയം പിന്നീട് Symphony ആയി മാറി; ഏജന്റുകളുടെ പ്രവർത്തനങ്ങൾ ഏകോപിപ്പിക്കാൻ ഒരു സൂപ്പർവൈസറായി പ്രവർത്തിക്കുന്ന ഒരു ലിഖിത നിർദ്ദേശമാണ് ഇത്.
ഞങ്ങളുടെ ഇഷ്യൂ ട്രാക്കറിനെ ഒരു ഏജന്റ് ഓർക്കസ്ട്രേറ്ററാക്കി മാറ്റി
ഒരു ലളിതമായ ആശയത്തിൽ നിന്നാണ് Symphony ആരംഭിച്ചത്: തുറന്നു കിടക്കുന്ന ഏത് ടാസ്ക്കും ഒരു ഏജന്റ് ഏറ്റെടുക്കുകയും അത് പൂർത്തിയാക്കുകയും വേണം. ഒന്നിലധികം ടാബുകളിൽ Codex സെഷനുകൾ കൈകാര്യം ചെയ്യുന്നതിന് പകരം, ഞങ്ങളുടെ ഇഷ്യൂ ട്രാക്കറിനെ ഞങ്ങൾ ഒരു കൺട്രോൾ പ്ലെയിനായി മാറ്റി..
ഈ സജ്ജീകരണത്തിൽ, തീർപ്പുകല്പിക്കാത്ത ഓരോ Linear ഇഷ്യൂവും ഒരു പ്രത്യേക ഏജന്റ് വർക്ക്സ്പേസുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. Symphony നിരന്തരം ടാസ്ക് ബോർഡ് നിരീക്ഷിക്കുകയും സജീവമായ ഓരോ ടാസ്ക്കിനും അത് പൂർത്തിയാകുന്നതു വരെ ഒരു ഏജന്റ് പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുകയും ചെയ്യുന്നു. ഏതെങ്കിലും ഏജന്റ് പ്രവർത്തനം നിർത്തുകയോ തടസ്സപ്പെടുകയോ ചെയ്താൽ Symphony അത് വീണ്ടും പ്രവർത്തിപ്പിക്കും. പുതിയ ജോലികൾ വന്നാൽ Symphony അവ ഏറ്റെടുക്കുകയും പ്രവർത്തനങ്ങൾ ക്രമീകരിക്കാൻ തുടങ്ങുകയും ചെയ്യുന്നു.
ഓരോ ടിക്കറ്റുകളുടെയും സ്റ്റാറ്റസ് അടിസ്ഥാനമാക്കിയാണ് ഞങ്ങൾ പ്രവർത്തനരീതി തയ്യാറാക്കിയത്, ഇതിനായി Linear എന്ന ടാസ്ക് മാനേജറെ ഒരു സ്റ്റേറ്റ് മെഷീനായി ഞങ്ങൾ ഉപയോഗിച്ചു..
പ്രായോഗികമായി പറഞ്ഞാൽ, Symphony ജോലിയെ സെഷനുകളിൽ നിന്നും pull request-കളിൽ നിന്നും സ്വതന്ത്രമാക്കുന്നു. ചില ഇഷ്യൂകൾ വിവിധ റിപ്പോസിറ്ററികളിലായി ഒന്നിലധികം PR സൃഷ്ടിക്കുന്നു; എന്നാൽ മറ്റു ചിലവ കേവലം അന്വേഷണമോ വിശകലനമോ മാത്രമാണ്, അവ കോഡ്ബേസിനെ ഒരു തരത്തിലും ബാധിക്കാറില്ല.
ജോലികൾ ഇത്തരത്തിൽ ലളിതമായി വേർതിരിച്ചുകഴിഞ്ഞാൽ, ടിക്കറ്റുകൾക്ക് കൂടുതൽ വലിയ ജോലികളെ പ്രതിനിധീകരിക്കാൻ സാധിക്കും.
സങ്കീർണ്ണമായ ഫീച്ചറുകൾ നിർമ്മിക്കുന്നതിനും ഇൻഫ്രാസ്ട്രക്ചർ മൈഗ്രേഷനുകൾ നടത്തുന്നതിനും ഞങ്ങൾ പതിവായി Symphony ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, കോഡ്ബേസ്, Slack അല്ലെങ്കിൽ Notion എന്നിവ വിശകലനം ചെയ്ത് ഒരു ഇംപ്ലിമെന്റേഷൻ പ്ലാൻ തയ്യാറാക്കാൻ ഞങ്ങൾ ഏജന്റിനോട് ആവശ്യപ്പെടാറുണ്ട്. ആ പ്ലാനിൽ ഞങ്ങൾ സംതൃപ്തരായാൽ ഏജന്റ് തന്നെ ജോലികളെ വിവിധ ഘട്ടങ്ങളായി തിരിക്കുകയും അവ തമ്മിലുള്ള ബന്ധങ്ങൾ നിശ്ചയിച്ചുകൊണ്ട് ടാസ്ക്കുകളുടെ ഒരു ഘടന തയ്യാറാക്കുകയും ചെയ്യുന്നു.
തടസ്സങ്ങളില്ലാത്ത ടാസ്ക്കുകളിൽ മാത്രമേ ഏജന്റുകൾ ജോലി ആരംഭിക്കുകയുള്ളൂ. അതിനാൽ ഈ DAG (എക്സിക്യൂഷൻ സ്റ്റെപ്പുകളുടെ ക്രമം) അനുസരിച്ച് ജോലികൾ സ്വാഭാവികമായും സമാന്തരമായും നടക്കുന്നു. താഴെ നൽകിയിരിക്കുന്ന ഉദാഹരണത്തിൽ, React upgrade എന്ന ടാസ്ക്കിന് Vite മൈഗ്രേഷൻ പൂർത്തിയാകുന്നത് വരെ തടസ്സമുള്ളതായി ഞങ്ങൾ അടയാളപ്പെടുത്തി. പ്രതീക്ഷിച്ചതുപോലെ തന്നെ Vite മൈഗ്രേഷൻ പൂർത്തിയായതിന് ശേഷം മാത്രമാണ് ഏജന്റുകൾ React അപ്ഗ്രേഡ് ചെയ്യാൻ തുടങ്ങിയത്..
ഏജന്റുകൾക്ക് സ്വന്തമായി പുതിയ ടാസ്ക്കുകൾ സൃഷ്ടിക്കാനും സാധിക്കും. ഇംപ്ലിമെന്റേഷൻ വേളയിലോ പരിശോധനയിലോ നിലവിലെ ടാസ്ക്കിന് പുറത്തുള്ള മെച്ചപ്പെടുത്തലുകൾ അവർ ശ്രദ്ധിക്കാറുണ്ട്. പെർഫോമൻസ് മെച്ചപ്പെടുത്താനുള്ള വഴികൾ, റീഫാക്ടറിംഗ് സാധ്യതകൾ അല്ലെങ്കിൽ മികച്ചൊരു ആർക്കിടെക്ചർ എന്നിവ ഇതിന് ഉദാഹരണങ്ങളാണ്. അത്തരം സന്ദർഭങ്ങളിൽ അവർ പുതിയൊരു ഇഷ്യൂ ഫയൽ ചെയ്യുന്നു. ഇത് പിന്നീട് വിലയിരുത്തി ഷെഡ്യൂൾ ചെയ്യാൻ ഞങ്ങൾക്ക് സാധിക്കും —ഇത്തരം ഫോളോ അപ്പ് ടാസ്ക്കുകളിൽ പലതും പിന്നീട് ഏജന്റുകൾ തന്നെ ഏറ്റെടുത്ത് പൂർത്തിയാക്കാറുണ്ട്. ഞങ്ങൾ ഈ പ്രക്രിയയ്ക്ക് മേൽനോട്ടം വഹിക്കുമ്പോൾ തന്നെ ഏജന്റുകൾ കാര്യങ്ങൾ കൃത്യമായി ക്രമീകരിക്കുകയും ജോലികൾ മുന്നോട്ട് കൊണ്ടുപോവുകയും ചെയ്യുന്നു.
ഈ രീതിയിലുള്ള പ്രവർത്തന ശൈലി അവ്യക്തമായ ജോലികൾ ആരംഭിക്കുന്നതിലെ കൊഗ്നിറ്റീവ് കോസ്റ്റ് വളരെയധികം കുറയ്ക്കുന്നു. ഏജന്റിന് എന്തെങ്കിലും തെറ്റ് സംഭവിച്ചാൽ പോലും അതൊരു ഉപയോഗപ്രദമായ അറിവായി മാറുന്നു, മാത്രമല്ല ഇതിൽ നമുക്കുണ്ടാകുന്ന നഷ്ടം പൂജ്യത്തിന് അടുത്താണ്. പ്രോട്ടോടൈപ്പുകൾ തയ്യാറാക്കുന്നതിനും പുതിയ കാര്യങ്ങൾ പരീക്ഷിച്ചു നോക്കുന്നതിനുമായി വളരെ എളുപ്പത്തിൽ ഏജന്റുകൾക്ക് ടിക്കറ്റുകൾ നൽകാൻ നമുക്ക് സാധിക്കും. അത്തരം പരീക്ഷണങ്ങളിൽ ഇഷ്ടപ്പെടാത്തവ നമുക്ക് ഒഴിവാക്കുകയും ചെയ്യാം.
ഈ ഓർക്കസ്ട്രേറ്റർ ഡെവ്ബോക്സുകളിൽ പ്രവർത്തിക്കുന്നതിനാലും ഒരിക്കലും നിശ്ചലമാകാത്തതിനാലും, നമുക്ക് എവിടെനിന്നും ടാസ്ക്കുകൾ നൽകാൻ സാധിക്കും; ഒരു ഏജന്റ് അത് ഏറ്റെടുക്കുമെന്ന് നമുക്ക് ഉറപ്പിക്കാം. ഉദാഹരണത്തിന്, ഞങ്ങളുടെ ടീമിലെ ഒരു എഞ്ചിനീയർ തന്റെ ഫോണിലെ Linear ആപ്പ് ഉപയോഗിച്ച്, വളരെ മോശം വൈഫൈ മാത്രമുള്ള ഒരു ഉൾനാടൻ പ്രദേശത്തെ ക്യാബിനിൽ ഇരുന്നുപോലും മൂന്ന് പ്രധാന മാറ്റങ്ങൾ വരുത്തുകയുണ്ടായി.
ഈ രീതിയിലുള്ള പ്രവർത്തന ശൈലി അന്വേഷണ അവസരങ്ങൾ വർദ്ധിപ്പിക്കുന്നു
Symphony ഉപയോഗിച്ച് പ്രവർത്തിച്ചപ്പോൾ ഉണ്ടായ ഫലങ്ങൾ നിരീക്ഷിച്ചതിൽ നിന്ന് ഏറ്റവും പ്രകടമായ മാറ്റം ഉൽപ്പാദനക്ഷമതയിലായിരുന്നു. OpenAI-യിലെ ചില ടീമുകൾക്കിടയിൽ ആദ്യ മൂന്ന് ആഴ്ചകൾക്കുള്ളിൽ തന്നെ പൂർത്തിയാക്കിയ PR-കളുടെ എണ്ണത്തിൽ ആറിരട്ടി വർദ്ധനവ് ഞങ്ങൾ കണ്ടു. OpenAI-ക്ക് പുറത്ത്, Symphony പുറത്തിറക്കിയതോടെ വർക്ക്സ്പേസുകളുടെ എണ്ണത്തിലുണ്ടായ വൻ വർദ്ധനവിനെ(പുതിയ വിൻഡോയിൽ തുറക്കുന്നു) Linear സ്ഥാപകൻ കാരി സാരിനൻ (Karri Saarinen) എടുത്തുപറഞ്ഞു. എന്നിരുന്നാലും, ടീമുകൾ ജോലിയെ കാണുന്ന രീതിയിലുണ്ടായ ആഴത്തിലുള്ള മാറ്റമാണ് ഇതിനേക്കാൾ ശ്രദ്ധേയം.
ഞങ്ങളുടെ എഞ്ചിനീയർമാർ Codex സെഷനുകൾ മേൽനോട്ടം വഹിക്കാൻ സമയം ചെലവഴിക്കേണ്ടി വരാത്ത സാഹചര്യത്തിൽ, കോഡ് മാറ്റങ്ങളുടെ സാമ്പത്തിക വശം പൂർണ്ണമായും മാറുന്നു. ഓരോ മാറ്റത്തിനുമുള്ള ചിലവ് കുറഞ്ഞതായി അനുഭവപ്പെടുന്നു, കാരണം ആ മാറ്റങ്ങൾ നടപ്പിലാക്കുന്നതിനായി മനുഷ്യ അധ്വാനം നേരിട്ട് നിക്ഷേപിക്കേണ്ടി വരുന്നില്ല.
അത് ഞങ്ങളുടെ പ്രവർത്തനരീതിയെ മാറ്റിമറിച്ചു. Symphony-യിൽ പരീക്ഷണാടിസ്ഥാനത്തിലുള്ള ടാസ്ക്കുകൾ ആരംഭിക്കുന്നത് ഇപ്പോൾ വളരെ ലളിതമായ ഒരു കാര്യമായി മാറിയിരിക്കുന്നു. ഒരു പുതിയ ആശയം പരീക്ഷിച്ചു നോക്കുകയോ, ഒരു റീഫാക്ടറിംഗ് സാധ്യത പരിശോധിക്കുകയോ, അല്ലെങ്കിൽ ഒരു നിഗമനം ശരിയാണോ എന്ന് പരീക്ഷിക്കുകയോ ചെയ്ത ശേഷം അതിൽ പ്രതീക്ഷ നൽകുന്ന ഫലങ്ങൾ മാത്രം നിലനിർത്താൻ ഞങ്ങൾക്ക് സാധിക്കുന്നു.
ജോലികൾ ആരംഭിക്കാൻ ആർക്കൊക്കെ സാധിക്കും എന്നതിന്റെ വ്യാപ്തിയും ഇത് വർദ്ധിപ്പിക്കുന്നു. ഞങ്ങളുടെ പ്രോഡക്റ്റ് മാനേജർക്കും ഡിസൈനർക്കും ഇപ്പോൾ ഫീച്ചർ റിക്വസ്റ്റുകൾ നേരിട്ട് Symphony-ലേക്ക് സമർപ്പിക്കാൻ സാധിക്കും. അവർക്ക് കോഡ് റിപ്പോസിറ്ററികൾ പരിശോധിക്കുകയോ Codex സെഷനുകൾ കൈകാര്യം ചെയ്യുകയോ വേണ്ട. അവർക്ക് വേണ്ട ഫീച്ചറുകൾ വിവരിക്കുക മാത്രം ചെയ്താൽ മതി; മറുപടിയായി ആ ഫീച്ചർ യഥാർത്ഥ പ്രോഡക്റ്റിൽ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് കാണിക്കുന്ന വീഡിയോ സഹിതമുള്ള ഒരു റിവ്യൂ പാക്കറ്റ് അവർക്ക് ലഭിക്കും.
വലിയ മോണോറെപ്പോകളിൽ (OpenAI-യിലുള്ളതുപോലുള്ള) പ്രവർത്തിക്കുമ്പോൾ Symphony-യുടെ മികവ് ഏറെ പ്രകടമാണ്. അവിടെ ഒരു PR പൂർത്തിയാക്കുന്നതിന്റെ അവസാന ഘട്ടങ്ങൾ പലപ്പോഴും മന്ദഗതിയിലുള്ളതും പിഴവുകൾക്ക് സാധ്യതയുള്ളതുമാണ്. ഈ സിസ്റ്റം സിഐ നിരീക്ഷിക്കുകയും ആവശ്യമുള്ളപ്പോൾ റീബേസ് ചെയ്യുകയും കോൺഫ്ലിക്റ്റുകൾ പരിഹരിക്കുകയും ചെയ്യുന്നു. കൂടാതെ പരാജയപ്പെട്ട ചെക്കുകൾ വീണ്ടും പരീക്ഷിക്കുകയും പൈപ്പ്ലൈനിലൂടെ മാറ്റങ്ങൾ കൃത്യമായി കടന്നുപോകുന്നുവെന്ന് ഉറപ്പാക്കുകയും ചെയ്യുന്നു. ഒരു ടിക്കറ്റ് മെർജിംഗ്ഘട്ടത്തിൽ എത്തുമ്പോഴേക്കും മനുഷ്യസഹായമില്ലാതെ തന്നെ ആ മാറ്റം മെയിൻ ബ്രാഞ്ചിൽ ഉൾപ്പെടുമെന്ന് നമുക്ക് പൂർണ്ണ വിശ്വാസമുണ്ടാകും.
Symphony ഇംപ്ലിമെന്റ് ചെയ്തതിന് ശേഷം, കൂടുതൽ ജോലികൾ ഞങ്ങൾ ഏജന്റുകളെ ഏൽപിക്കുകയും കൂടുതൽ ദുഷ്കരവും പര്യവേഷണ സ്വഭാവമുള്ളതുമായ കാര്യങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുകയും ചെയ്യുന്നു.
പുരോഗതിയോടൊപ്പം പുതിയതും വ്യത്യസ്തവുമായ വെല്ലുവിളികളും വരും
ഈ തലത്തിൽ പ്രവർത്തിക്കുന്നത് ചില വിട്ടുവീഴ്ചകൾ ആവശ്യപ്പെടുന്നു. ഏജന്റുകളെ ഓരോ ഘട്ടത്തിലും നേരിട്ട് നിയന്ത്രിക്കുന്നതിന് പകരം ടിക്കറ്റ് അടിസ്ഥാനത്തിൽ ജോലികൾ ഏൽപ്പിച്ചു തുടങ്ങിയപ്പോൾ, അവയുടെ പ്രവർത്തനത്തിനിടയിൽ ഇടപെട്ട് ആവശ്യമായ തിരുത്തലുകൾ വരുത്താനുള്ള അവസരം ഞങ്ങൾക്ക് നഷ്ടമായി. ചില സന്ദർഭങ്ങളിൽ ഏജന്റുകൾ തയ്യാറാക്കിയ ഫലങ്ങൾ ഞങ്ങൾ ഉദ്ദേശിച്ചതിൽ നിന്നും തികച്ചും വ്യത്യസ്തമായിരുന്നു. എന്നാൽ അത് പ്രയോജനകരമായിരുന്നു—അത്തരം പരാജയങ്ങൾ സിസ്റ്റത്തിലെ പോരായ്മകൾ വെളിപ്പെടുത്തുകയും അതിനെ കൂടുതൽ കരുത്തുറ്റതാക്കാൻ ഞങ്ങളെ സഹായിക്കുകയും ചെയ്തു.
ഫലങ്ങൾ മാനുവലായി തിരുത്തുന്നതിന് പകരം, അടുത്ത തവണ ഏജന്റുകൾക്ക് വിജയിക്കാൻ സാധിക്കുന്ന രീതിയിലുള്ള നിയന്ത്രണങ്ങളും നൈപുണ്യങ്ങളും ഞങ്ങൾ കൂട്ടിച്ചേർത്തു. കാലക്രമേണ, എൻഡ്-ടു-എൻഡ് ടെസ്റ്റുകൾ നടത്തുക, ക്രോം ഡെവലപ്പർ ടൂൾസ് വഴി ആപ്പ് പ്രവർത്തിപ്പിക്കുക, ക്യുഎ സ്മോക്ക് ടെസ്റ്റുകൾ നിയന്ത്രിക്കുക തുടങ്ങിയ പുതിയ കഴിവുകൾ ഞങ്ങളുടെ സിസ്റ്റത്തിൽ ഉൾപ്പെടുത്താൻ ഇത് കാരണമായി. ഞങ്ങൾ ഡോക്യുമെന്റേഷൻ ഗണ്യമായി മെച്ചപ്പെടുത്തുകയും മികച്ച പ്രകടനം എന്നാൽ എന്താണെന്ന് കൂടുതൽ വ്യക്തമാക്കുകയും ചെയ്തു.
എല്ലാ ജോലികളും Symphony രീതിയിലുള്ള പ്രവർത്തന ശൈലിക്ക് അനുയോജ്യമല്ല. അവ്യക്തമായ പ്രശ്നങ്ങളോ ശക്തമായ വിവേചനബുദ്ധിയും വൈദഗ്ധ്യവും ആവശ്യമായ ജോലികളോ കൈകാര്യം ചെയ്യാൻ എഞ്ചിനീയർമാർ ഇപ്പോഴും Codex സെഷനുകൾ നേരിട്ട് ഉപയോഗിക്കേണ്ടതുണ്ട്. പ്രായോഗികമായി നോക്കുമ്പോൾ, ഞങ്ങളുടെ എഞ്ചിനീയർമാർ സമയം ചെലവഴിക്കാൻ ഏറ്റവും താൽപ്പര്യപ്പെടുന്ന ആസ്വാദ്യകരവുമായ ജോലികൾ ഇത്തരം കാര്യങ്ങളാണ്.
സാധാരണയായി ചെയ്യേണ്ടി വരുന്ന ഭൂരിഭാഗം ഇംപ്ലിമെന്റേഷൻ ജോലികളും കൈകാര്യം ചെയ്യാൻ Symphony-ക്ക് സാധിക്കും എന്നതാണ് ഇതിലെ പ്രധാന വ്യത്യാസം. ഇത് ചെറിയ ജോലികൾക്കിടയിലുള്ള നിരന്തരമായ ശ്രദ്ധ മാറ്റം ഒഴിവാക്കാനും ഒരു സങ്കീർണ്ണ പ്രശ്നത്തിൽ കൃത്യമായി ശ്രദ്ധ കേന്ദ്രീകരിക്കാനും എഞ്ചിനീയർമാരെ സഹായിക്കുന്നു..
ഏജന്റുകളെ ഒരു സ്റ്റേറ്റ് മെഷീനിലെ മാറ്റാൻ കഴിയാത്ത നോഡുകളായി മാത്രം കണക്കാക്കുന്നത് ശരിയായ രീതിയല്ലെന്നും ഞങ്ങൾ മനസ്സിലാക്കി. നമ്മൾ നിശ്ചയിക്കുന്ന പരിധികൾക്കപ്പുറമുള്ള വലിയ പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ തക്കവണ്ണം മോഡലുകൾ കൂടുതൽ മിടുക്കുള്ളവരായി മാറുന്നുണ്ട്. ഉദാഹരണത്തിന് ആദ്യകാല പതിപ്പുകളിൽ GitHub ഇന്റഗ്രേഷനുകൾ പൂർണ്ണമായും പുറത്തുള്ള ഒരു സംവിധാനത്തിന്റെ ഭാഗമായിരുന്നു—അതായത് കോഡ് മാറ്റങ്ങൾ വരുത്താൻ മാത്രം Codex ഉപയോഗിക്കുകയും ബാക്കി കാര്യങ്ങൾ (മാറ്റങ്ങൾ സമർപ്പിക്കുന്നതും ടെസ്റ്റുകൾ നടത്തുന്നതുമെല്ലാം) പ്രത്യേക കോഡ് വഴി നടപ്പിലാക്കുകയുമായിരുന്നു ചെയ്തിരുന്നത്. തുടക്കത്തിൽ ജോലികൾ നടപ്പിലാക്കാൻ ആവശ്യപ്പെടുക മാത്രമായിരുന്നു ഞങ്ങൾ Codex വഴി ചെയ്തിരുന്നത്.എന്നാൽ ആ സമീപനം വളരെയധികം പരിമിതികൾ നിറഞ്ഞതാണെന്ന് തെളിഞ്ഞു. ഒന്നിലധികം PR-കൾ സൃഷ്ടിക്കാനും റിവ്യൂ ഫീഡ്ബാക്കുകൾ വായിച്ച് അവ പരിഹരിക്കാനും Codex ന് വളരെ എളുപ്പത്തിൽ സാധിക്കുമെന്ന് ഞങ്ങൾ കണ്ടു.— അതിനാൽ ഞങ്ങൾ അതിന് gh CLI, CI ലോഗുകൾ വായിക്കാനുള്ള കഴിവുകളും നൽകി. ഇപ്പോൾ പഴയ PR-കൾ അവസാനിപ്പിക്കാനോ പൂർത്തിയാക്കിയതും ഉപേക്ഷിച്ചതുമായ ജോലികളുടെ റിപ്പോർട്ടുകൾ തയ്യാറാക്കാനോ ഉള്ള കൂടുതൽ വലിയ കാര്യങ്ങൾ ചെയ്യാൻ Codex നോട് ആവശ്യപ്പെടാൻ ഞങ്ങൾക്ക് സാധിക്കുന്നു. ഇത്തരം ജോലികൾ തുടക്കത്തിൽ ഞങ്ങൾ നിശ്ചയിച്ചിരുന്ന ഫീച്ചർ ഇംപ്ലിമെന്റേഷൻ പരിധിക്കും പുറത്തായിരുന്നു
അതുകൊണ്ട് ഒടുവിൽ ഏജന്റുകൾക്ക് കർശനമായ നിർദ്ദേശങ്ങൾ നൽകുന്നതിന് പകരം നിശ്ചിത ലക്ഷ്യങ്ങൾനൽകുന്ന രീതിയിലേക്ക് ഞങ്ങൾ മാറി. ഒരു മികച്ച മാനേജർ തന്റെ ടീമിലെ അംഗത്തിന് ഒരു ലക്ഷ്യം നിശ്ചയിച്ചു നൽകുന്നതിന് സമാനമാണിത്. കാര്യങ്ങൾ യുക്തിസഹമായി ചിന്തിച്ചു ചെയ്യാനുള്ള കഴിവിലാണ് മോഡലുകളുടെ യഥാർത്ഥ കരുത്ത് ഇരിക്കുന്നത്. അതിനാൽ അവയ്ക്ക് ആവശ്യമായ ടൂളുകളും പശ്ചാത്തല വിവരങ്ങളും നൽകി സ്വതന്ത്രമായി പ്രവർത്തിക്കാൻ അനുവദിക്കുക.
Symphony ഉപയോഗിച്ച് Symphony നിർമ്മിക്കൽ
Symphony റിപ്പോസിറ്ററി തുറക്കുമ്പോൾ നിങ്ങൾ ആദ്യം ശ്രദ്ധിക്കുന്നത്, സാങ്കേതികമായി Symphony ഒരു SPEC.md ഫയൽ മാത്രമാണെന്നതാണ്—പ്രശ്നത്തിന്റെയും ലക്ഷ്യമിട്ട പരിഹാരത്തിന്റെയും ഒരു നിർവചനം. സങ്കീർണ്ണമായ ഒരു മേൽനോട്ട സംവിധാനം നിർമ്മിക്കുന്നതിന് പകരം, പ്രശ്നവും ഞങ്ങൾ ലക്ഷ്യമാക്കുന്ന പരിഹാരങ്ങളും കൃത്യമായി നിർവചിച്ചുകൊണ്ട് ഏജന്റുകൾക്ക് ഹൈ ലെവൽ മാർഗ്ഗനിർദ്ദേശം നൽകുകയാണ് ഞങ്ങൾ ചെയ്തത്.
റഫറൻസ് ഇംപ്ലിമെന്റേഷൻ Elixir-ലാണ് എഴുതിയിരിക്കുന്നത്—കോഡിംഗിന് പ്രായോഗികമായി ചിലവ് ഇല്ലാതാകുമ്പോൾ, ഓരോ ഭാഷയുടെയും പ്രത്യേക കഴിവുകൾ, ഉദാഹരണത്തിന് Elixir-ലെ കോൺകറൻസി നോക്കി. നമുക്ക് അവ തിരഞ്ഞെടുക്കാം—എന്നാൽ ഇതിന്റെ പ്രധാന ആശയം ലളിതമായ ഒരു Markdown ഡോക്യുമെന്റിലൂടെയും അവതരിപ്പിക്കാൻ സാധിക്കും. നിങ്ങളുടെ ഇഷ്ടപ്പെട്ട കോഡിംഗ് ഏജന്റിനെ spec-ലേക്ക് നൽകി അതിന്റെ പുതിയൊരു പതിപ്പ് വികസിപ്പിച്ചെടുക്കാൻ ഞങ്ങൾ നിങ്ങളെ പ്രോത്സാഹിപ്പിക്കുന്നു.
Symphonyയുടെ ആദ്യ വേർഷൻ tmux-ൽ പ്രവർത്തിക്കുന്ന ഒരു Codex സെഷൻ മാത്രമായിരുന്നു; ഇത് Linear-ലെ വിവരങ്ങൾ പരിശോധിക്കുകയും പുതിയ ജോലികൾക്കായി sub-agent-കളെ സൃഷ്ടിക്കുകയും ചെയ്തിരുന്നു. അത് പ്രവർത്തിച്ചിരുന്നെങ്കിലും അത്ര വിശ്വസനീയമായിരുന്നില്ല. എന്നാൽ രണ്ടാമത്തെ പതിപ്പ് ഞങ്ങളുടെ പ്രധാന പ്രോജക്ട് റിപ്പോസിറ്ററിക്കുള്ളിലാണ് സജ്ജീകരിച്ചിരിക്കുന്നത്, അത് ഏജന്റുകളുടെ പ്രവർത്തനം മുൻകൂട്ടി കണ്ടുകൊണ്ടാണ് ഇത് നിർമ്മിച്ചിരിക്കുന്നത്. ഈ റിപ്പോസിറ്ററിയിൽ മികച്ച രീതിയിൽ പ്രവർത്തിക്കാനാവശ്യമായ നൈപുണ്യങ്ങളും സാഹചര്യങ്ങളും ഏജന്റുകൾക്ക് നൽകുന്നതിനായി ഞങ്ങൾ നേരത്തെ തന്നെ ഒരു 'ഏജന്റ് ഹാർനെസ്സ്' തയ്യാറാക്കിയിരുന്നു; Symphony ഇവയെ തമ്മിൽ ബന്ധിപ്പിക്കുക മാത്രമാണ് ചെയ്യുന്നത്.
അടിസ്ഥാന പ്രവർത്തനക്ഷമത കൈവരിച്ചതോടെ, Symphony ഉപയോഗിച്ച് തന്നെ ഞങ്ങൾ Symphony നിർമ്മിച്ചു.
ടാസ്ക്കുകൾ കൈകാര്യം ചെയ്യുന്നതും അവയുടെ proof-of-work വീഡിയോകൾ അറ്റാച്ച് ചെയ്യുന്നതുമായ ഈ സിസ്റ്റം ഞങ്ങൾ കമ്പനിക്കുള്ളിൽ അവതരിപ്പിച്ചപ്പോൾ വലിയ സ്വീകാര്യതയാണ് ലഭിച്ചത്: ഞങ്ങളുടെ Symphony പ്രോജക്ട് ചാനലിലെ അംഗങ്ങളുടെ എണ്ണം വർദ്ധിക്കുകയും, ഓർഗനൈസേഷനിലെ വിവിധ ടീമുകൾ സ്വാഭാവികമായി തന്നെ ഇത് ഉപയോഗിക്കാൻ തുടങ്ങുകയും ചെയ്തു. ഒരു ഉൽപ്പന്നം പുറത്തിറക്കുന്നതിന് മുൻപ്, അത് കമ്പനിക്കുള്ളിൽ എത്രത്തോളം പ്രായോഗികമാണെന്ന് ഉറപ്പുവരുത്തേണ്ടത് OpenAI-യിൽ അത്യാവശ്യമാണ്. OpenAI-ജീവനക്കാർക്കിടയിൽ ഇതിനു ലഭിച്ച വലിയ പിന്തുണ കണ്ടപ്പോൾ, Symphony കമ്പനിക്ക് പുറത്തുള്ളവരുമായും പങ്കുവെക്കേണ്ട സമയമായെന്ന് ഞങ്ങൾക്ക് ബോധ്യപ്പെട്ടു..
അതിനാൽ ഈ ആശയം ഒരു സ്വതന്ത്ര SPEC.md-ലേക്ക് ഞങ്ങൾ മാറ്റുകയും അത് ഇംപ്ലിമെന്റ് ചെയ്യാൻ Codex-നോട് ആവശ്യപ്പെടുകയും ചെയ്തു. ഇതിന്റെ റെഫറൻസ് ഇംപ്ലിമെന്റേഷനായി ഞങ്ങൾ തിരഞ്ഞെടുത്തത് Elixir ആണ്. കോൺകറന്റ് പ്രോസസ്സുകളെ നിയന്ത്രിക്കാനും മേൽനോട്ടം വഹിക്കാനും മികച്ച സംവിധാനങ്ങളുള്ള, എന്നാൽ അധികം ആളുകൾ ഉപയോഗിക്കാത്ത ഒരു ഭാഷയാണിത്. Codex വൺ-ഷോട്ടിൽ Elixir ഇംപ്ലിമെന്റേഷൻ തയ്യാറാക്കി; അവിടെ നിന്നങ്ങോട്ട് സ്പെസിഫിക്കേഷനിലും ഇംപ്ലിമെന്റേഷനിലും ഞങ്ങൾ മാറ്റങ്ങൾ വരുത്തിക്കൊണ്ടിരുന്നു. സ്പെസിഫിക്കേഷൻ കൂടുതൽ കൃത്യമാക്കുന്നതിനായി —TypeScript, Go, Rust, Java, Python— തുടങ്ങി വിവിധ ഭാഷകളിൽ ഇത് നിർമ്മിക്കാൻ ഞങ്ങൾ Codex-നോട് ആവശ്യപ്പെട്ടു. ഇതിലൂടെ സിസ്റ്റത്തിലെ അവ്യക്തതകൾ കണ്ടെത്താനും അത് ലളിതമാക്കാനും ഞങ്ങൾക്ക് സാധിച്ചു. എല്ലാ ഭാഷകളിലും ഇത് വിജയകരമായി പൂർത്തിയാക്കാൻ കഴിഞ്ഞു.
Codex നിർമ്മിക്കുന്ന പ്രക്രിയയിലൂടെ, പ്രത്യേക റിപ്പോസിറ്ററികളെയോ Linear MCP-യെയോ ആശ്രയിക്കുന്നത് പോലുള്ള അനാവശ്യ സങ്കീർണ്ണതകൾ ഞങ്ങൾ ഒഴിവാക്കി. Symphony ഇപ്പോൾ ഞങ്ങളുടെ ആന്തരിക റിപ്പോസിറ്ററികളെയോ പ്രവർത്തനരീതികളെയോ ആശ്രയിക്കുന്നില്ല. ഇതിന്റെ അടിസ്ഥാന സമീപനം ഇപ്പോൾ ലളിതമായി മാറി:
തീർപ്പുകല്പിക്കാത്ത ഓരോ ടാസ്ക്കിനും ഒരു ഏജന്റ് അതിന്റെ സ്വന്തം വർക്ക്സ്പേസിൽ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുക.
നിലവിലുള്ള ജോലികളിൽ സഹായിക്കുന്നതിന് പുറമെ ഡെവലപ്മെന്റ് വർക്ക്ഫ്ലോ ഇപ്പോൾ ഏജന്റുകൾക്ക് അറിയാവുന്നതും അവർ പിന്തുടരുന്നതുമായ ഒന്നായി മാറിയിരിക്കുന്നു. —ഒരു ഇഷ്യുവിൽ പ്രവർത്തിക്കുക, റിപ്പോ എടുക്കുക, PM ന് അറിയാനായി അത് ഇൻ പ്രോഗ്രസ്സ് ആയി മാറ്റുക, Pull Request ചേർക്കുക, റിവ്യൂ സ്റ്റാറ്റസിലേക്ക് മാറ്റുക, വീഡിയോകൾ ഉൾപ്പെടുത്തുക— തുടങ്ങിയ ഡെവലപ്മെന്റ് വർക്ക്ഫ്ലോയുമായി ബന്ധപ്പെട്ട കാര്യങ്ങളെല്ലാം ഇപ്പോൾ ലളിതമായ ഒരു WORKFLOW.md ഫയലിൽ രേഖപ്പെടുത്തിയിട്ടുണ്ട്. ഇതെല്ലാം മനുഷ്യർ പിന്തുടർന്നിരുന്ന ഒരു പ്രക്രിയയായിരുന്നുവെങ്കിലും അവയൊന്നും ഒരിടത്തും കൃത്യമായി ഡോക്യുമെന്റ് ചെയ്തിരുന്നില്ല.വ്യക്തമായി രേഖപ്പെടുത്താത്ത ഇത്തരം ഘട്ടങ്ങളെ ആശ്രയിക്കുന്നതിന് പകരം ഞങ്ങൾ ഇപ്പോൾ അവ കൃത്യമായി ഡോക്യുമെന്റ് ചെയ്യുന്നു. കൂടാതെ ഏജന്റുകൾ അത് പിന്തുടരുന്നുണ്ടെന്ന് Symphony ഉറപ്പാക്കുകയും ചെയ്യുന്നു. ഞങ്ങളോടൊപ്പം ചേർന്ന് പ്രവർത്തിക്കാൻ കഴിയുന്ന ഏജന്റുകളെ സൃഷ്ടിക്കാൻ ഇത് ഞങ്ങളെ സഹായിക്കുന്നു. പൂർത്തിയാക്കിയ ജോലികൾക്കൊപ്പം ഏജന്റുകൾ സെൽഫ് റിഫ്ലെക്ഷൻ കൂടി ഉൾപ്പെടുത്തണമെന്ന് ഞങ്ങൾ തീരുമാനിക്കുകയാണെങ്കിൽ, അത് WORKFLOW.md ഫയലിലേക്ക് ചേർത്താൽ മതിയാകും. ആ പുതിയ ഘട്ടത്തിലേക്ക് ഏജന്റുകളെ നയിക്കാൻ Symphony സഹായിക്കും.
Codex-ന്റെ ഭാഗമായുള്ള ഒരു ഹെഡ്ലെസ്സ് മോഡ് ആയ ആപ്പ് സെർവർ മോഡിൽ(പുതിയ വിൻഡോയിൽ തുറക്കുന്നു) Codex ഉപയോഗിക്കാനും ഞങ്ങൾക്ക് സാധിച്ചു. ഒരു ത്രെഡ് ആരംഭിക്കുക അല്ലെങ്കിൽ ടേണുകളോട് പ്രതികരിക്കുക തുടങ്ങിയ കാര്യങ്ങൾക്കായി വ്യക്തമായി ഡോക്യുമെന്റ് ചെയ്തിട്ടുള്ള JSON-RPC API വഴി Codex പ്രവർത്തിപ്പിക്കാനും പ്രോഗ്രാമാറ്റിക് ആയി അതിനോട് ആശയവിനിമയം നടത്താനും ഈ മോഡ് ഞങ്ങളെ സഹായിച്ചു. CLI അല്ലെങ്കിൽ ലൈവ് tmux സെഷനുകൾ വഴി Codex-മായി ആശയവിനിമയം നടത്താൻ ശ്രമിക്കുന്നതിനേക്കാൾ വളരെ സൗകര്യപ്രദവും കൂടുതൽ വിപുലീകരിക്കാൻ കഴിയുന്നതുമായ ഒരു രീതിയാണിത്.
ഞങ്ങളുടെ ആവശ്യങ്ങൾക്ക് Codex App Server തികച്ചും അനുയോജ്യമായിരുന്നു: Codex നൽകുന്ന സംവിധാനങ്ങൾ പ്രയോജനപ്പെടുത്തുന്നതിനൊപ്പം തന്നെ, അതിൽ ആവശ്യമായ മാറ്റങ്ങൾ വരുത്താനും കൂട്ടിച്ചേർക്കലുകൾ നടത്താനുമുള്ള സൗകര്യവും ഇതിലൂടെ ഞങ്ങൾക്ക് ലഭിക്കുന്നു. ഉദാഹരണത്തിന്, സബ് ഏജന്റുകൾക്ക് Linear ആക്സസ് ടോക്കൺ വെളിപ്പെടുത്താതിരിക്കാൻ, Linear-ലേക്ക് ആവശ്യമായ റിക്വസ്റ്റുകൾ അയക്കുന്ന റോ linear_graphql ഫംഗ്ഷൻ ലഭ്യമാക്കുന്നതിനായി ഞങ്ങൾ ഡൈനാമിക് ടൂൾ കോളുകൾ (പുതിയ വിൻഡോയിൽ തുറക്കുന്നു)ഉപയോഗിക്കുന്നു. ഇതിനായി MCP-യെ ആശ്രയിക്കുകയോ കണ്ടെയ്നറുകൾക്ക് ആക്സസ് ടോക്കൺ നൽകുകയോ ചെയ്യേണ്ടതില്ല.
അടുത്തത് എന്ത്
Symphony ബോധപൂർവം വളരെ ലളിതമായി രൂപകൽപ്പന ചെയ്തിട്ടുള്ള ഒരു ഓർക്കസ്ട്രേഷൻ ലെയറാണ്. Linear പോലെയുള്ള വ്യത്യസ്ത വർക്ക്ഫ്ലോ ടൂളുകളുമായി ചേർന്ന് പ്രവർത്തിക്കുമ്പോൾ Codex App Server-ന്റെ കരുത്ത് എത്രത്തോളമുണ്ടെന്ന് വ്യക്തമാക്കാനാണ് ഞങ്ങൾ ഇതിനെ ഓപ്പൺ സോഴ്സ് ആക്കുന്നത്. അതിനാൽ തന്നെ, Symphony-യെ ഒരു സ്വതന്ത്ര ഉൽപ്പന്നമായി നിലനിർത്താൻ ഞങ്ങൾ ഉദ്ദേശിക്കുന്നില്ല. ഇതിനെ ഒരു റഫറൻസ് ഇംപ്ലിമെന്റേഷൻ ആയി മാത്രം കണക്കാക്കുക.സ്വന്തം റെപ്പോസിറ്ററികൾക്ക് രൂപം നൽകാൻ പല ഡെവലപ്പർമാരും ഹാർനെസ്സ് എഞ്ചിനീയറിംഗ് പോസ്റ്റിന്റെ സഹായത്തോടെ തങ്ങളുടെ കോഡിംഗ് ഏജന്റുകളെ ഉപയോഗിച്ചതുപോലെ, നിങ്ങളുടെ പരിതസ്ഥിതികൾക്ക് അനുയോജ്യമായ സ്വന്തം പതിപ്പുകൾ നിർമ്മിക്കുന്നതിനായി Symphony സ്പെക്കിലേക്കും(പുതിയ വിൻഡോയിൽ തുറക്കുന്നു) റിപ്പോസിറ്ററിയിലേക്കും(പുതിയ വിൻഡോയിൽ തുറക്കുന്നു) നിങ്ങളുടെ പ്രിയപ്പെട്ട കോഡിംഗ് ഏജന്റിനെ നിങ്ങൾ ഉപയോഗപ്പെടുത്തുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.
Codex-ൽ നിന്നും അതിന്റെ ആപ്പ് സെർവറിൽ നിന്നുമാണ് ഇതിന് കരുത്ത് ലഭിക്കുന്നത്. വർക്ക് മാനേജ്മെന്റുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾ പരിഹരിക്കാനായി, ഞങ്ങൾ ഇതിനകം തന്നെ ഉപയോഗിച്ചിരുന്ന Codex, Linear എന്നിവയെ തമ്മിൽ ബന്ധിപ്പിക്കുന്നതിനുള്ള ഒരു മാർഗമായിരുന്നു Symphony. കാര്യങ്ങൾ റീസണിംഗ് ആയി മനസ്സിലാക്കുന്നതിലും നിർദ്ദേശങ്ങൾ പാലിക്കുന്നതിലും കോഡിംഗ് ഏജന്റുകൾ കൂടുതൽ മികച്ചതായി മാറുന്നതിനനുസരിച്ച്, മറ്റ് കമ്പനികളിലെ പ്രധാന തടസ്സങ്ങൾ കോഡ് എഴുതുന്നതിൽ നിന്ന് ഏജന്റുകളുടെ പ്രവർത്തനങ്ങൾ നിയന്ത്രിക്കുന്നതിലേക്ക് മാറുമെന്ന് ഞങ്ങൾ കരുതുന്നു. ഇത്തരം കോഡിംഗ് ഏജന്റ് സിസ്റ്റങ്ങൾ പരീക്ഷിക്കുന്നതിനുള്ള തടസ്സങ്ങൾ ഇപ്പോൾ വളരെ കുറഞ്ഞിരിക്കുന്നു എന്നതാണ് ഇതിലെ ഏറ്റവും ആവേശകരമായ കാര്യം. നിങ്ങൾക്ക് Codex ഉപയോഗിച്ച് കാര്യങ്ങൾ എളുപ്പത്തിൽ നിർമ്മിക്കാൻ സാധിക്കും.
കമ്മ്യൂണിറ്റി അഭിനന്ദനങ്ങൾ
പുറത്തിറങ്ങി ആഴ്ചകൾക്കുള്ളിൽ തന്നെ എൻജിനീയറിങ് കമ്മ്യൂണിറ്റി Symphony ഏറ്റെടുത്തതിൽ ഞങ്ങൾക്ക് വലിയ സന്തോഷമുണ്ട്. ഏപ്രിൽ 23 വരെയുള്ള കണക്കനുസരിച്ച് 1GitHub-ൽ 15,000-ലധികം സ്റ്റാറുകൾ(പുതിയ വിൻഡോയിൽ തുറക്കുന്നു) നേടാൻ ഇതിന് സാധിച്ചു.