የOpenAI የኮድ ወኪል Codex በብዙ የተለያዩ ገጽታዎች ላይ ይገኛል፦ የድር መተግበሪያ(በአዲስ መስኮት ውስጥ ይክፈታል)፣ CLI(በአዲስ መስኮት ውስጥ ይክፈታል)፣ የIDE ቅጥያ(በአዲስ መስኮት ውስጥ ይክፈታል) እና አዲሱ የCodex ማክሮስ መተግበሪያ። በኮፍያ ስር፣ ሁሉም በተመሳሳይ የCodex ማሠሪያ የተጎላበቱ ናቸው—ይህም የሁሉም የCodex ልምዶች መሰረት የሆነው የወኪል ዑደት እና አመክንዮ ነው። በመካከላቸው ያለው ወሳኝ ግንኙነት? የCodex መተግበሪያ አገልጋይ(በአዲስ መስኮት ውስጥ ይክፈታል)፣ ለደንበኛ ተስማሚ፣ ባለሁለት አቅጣጫ JSON-RPC1 API።
በዚህ ጽሑፍ ውስጥ Codex መተግበሪያ አገልጋይን እናስተዋውቃለን፤ ተጠቃሚዎችዎ የሥራ ፍሰታቸውን በከፍተኛ ሁኔታ እንዲያጠናቅቁ የCodexን ችሎታዎች ወደ ምርትዎ ለማምጣት ስለሚረዱ ምርጥ መንገዶች እስካሁን የተማርናቸውን ትምህርቶች እናካፍላለን። የመተግበሪያ አገልጋይን አርክቴክቸር እና ፕሮቶኮል እና ከተለያዩ የCodex ገጽታዎች ጋር እንዴት እንደሚዋሃድ፣ እንዲሁም Codexን የኮድ ገምጋሚ፣ የSRE ወኪል ወይም የኮድ ረዳት ለማድረግ ቢፈልጉ Codexን ስለመጠቀም ጠቃሚ ምክሮችን እንሸፍናለን።
ወደ አርክቴክቸር ከመግባትዎ በፊት የመተግበሪያ አገልጋዩን የኋላ ታሪክ ማወቅ ጠቃሚ ነው። መጀመሪያ ላይ፣ የመተግበሪያ አገልጋይ ቀስ በቀስ ወደ መደበኛ ፕሮቶኮላችን የተሸጋገሩ የCodex ማሠሪያን በተለያዩ ምርቶች ላይ እንደገና ለመጠቀም ተግባራዊ መንገድ ነበር።
Codex CLI እንደ TUI (ተርሚናል የተጠቃሚ በይነገጽ) ተጀምሯል፣ ይህም ማለት Codex በተርሚናል በኩል ይገኛል ማለት ነው። የVS ኮድ ቅጥያ (ከCodex ወኪሎች ጋር ለመግባባት የበለጠ ተስማሚ የሆነ የIDE መንገድ) ስንገነባ፣ ተመሳሳይ የወኪል ዑደትን ከIDE UI እንደገና ሳይተገብር ለማስኬድ ተመሳሳይ ማሠሪያን የምንጠቀምበት መንገድ ያስፈልገን ነበር። ይህም ማለት የሥራ ቦታውን ማሰስ፣ የወኪል ምክንያቶችን በዥረት መልቀቅ እና ልዩነቶችን ማስወጣት ያሉ ከጥያቄ/ምላሽ በላይ የበለጸጉ የመስተጋብር ዘይቤዎችን መደገፍ ማለት ነው። Codexን እንደ MCP አገልጋይ(በአዲስ መስኮት ውስጥ ይክፈታል) ለማጋለጥ ለመጀመሪያ ጊዜ ሞክረናል፣ ነገር ግን የMCP ትርጉሞችን ለVS Code ትርጉም ባለው መንገድ ማቆየት አስቸጋሪ ሆኖብናል። በምትኩ፣ የTUI ዑደትን የሚያንፀባርቅ የJSON-RPC ፕሮቶኮል አስተዋውቀናል፣ ይህም የመተግበሪያ አገልጋይ ኦፊሴላዊ ያልሆነው የመጀመሪያ ስሪት(በአዲስ መስኮት ውስጥ ይክፈታል) ሆነ። በወቅቱ፣ ሌሎች ደንበኞች በመተግበሪያ አገልጋይ ላይ ጥገኛ እንዲሆኑ አልጠበቅንም ነበር፣ ስለዚህ እንደ የተረጋጋ API የተነደፈ አልነበረም።
በሚቀጥሉት ጥቂት ወራት ውስጥ የCodex ተቀባይነት እያደገ ሲሄድ፣ የውስጥ ቡድኖች እና የውጭ አጋሮች የተጠቃሚዎቻቸውን የሶፍትዌር ልማት የሥራ ፍሰቶች ለማፋጠን ተመሳሳይ ማሠሪያ በራሳቸው ምርቶች ውስጥ የመክተት ችሎታ ፈለጉ። ለምሳሌ፣ ጄትብራይንስ እና ኤክስኮድ የIDE-ደረጃ ወኪል ተሞክሮ ፈልገው ነበር፣ የCodex ዴስክቶፕ መተግበሪያ ደግሞ ብዙ የCodex ወኪሎችን በትይዩ ማቀናበር አስፈልጎት ነበር። እነዚህ ፍላጎቶች ምርቶቻችንም ሆኑ የአጋሮቻችን ውህደቶች በጊዜ ሂደት ደኅንነቱ በተጠበቀ ሁኔታ ሊተማመኑበት የሚችል የመድረክ ወለል እንድንነድፍ ገፋፍተውናል። ለማዋሃድ ቀላል እና ወደ ኋላ የሚስማማ መሆን ነበረበት፣ ይህም ማለት ነባር ደንበኞችን ሳናቋርጥ ፕሮቶኮሉን ማሻሻል እንችላለን ማለት ነው።
ቀጥሎ፣ የተለያዩ ደንበኞች ተመሳሳይ ማሠሪያ እንዲጠቀሙ አርክቴክቸሩን እና ፕሮቶኮሉን እንዴት እንደነደፍን እንመለከታለን።
በመጀመሪያ፣ በCodex ማሠሪያ ውስጥ ያለውን እና የCodex መተግበሪያ አገልጋይ ለደንበኞች እንዴት እንደሚያጋልጠው እንመልከት። ባለፈው የCodex ጦማራችን ላይ፣ በተጠቃሚው፣ በሞዴሉ እና በመሣሪያዎቹ መካከል ያለውን መስተጋብር የሚያቀናጅ የኮር ወኪል ዑደትን ዘርዝረናል። ይህ የCodex ማሠሪያ ዋና አመክንዮ ነው፣ ነገር ግን ለሙሉ ወኪል ተሞክሮ ተጨማሪ ነገር አለ፦
1. የክር የህይወት ዑደት እና ጽናት። ክር ማለት በተጠቃሚ እና በወኪል መካከል የሚደረግ የCodex ውይይት ነው። Codex ክሮችን ይፈጥራል፣ የሥራ ልምድ ያካሂዳል፣ ሹካዎችን እና መዝገብ ቤቶችን ያስቀምጣል፣ እና ደንበኞች እንደገና እንዲገናኙ እና ወጥ የሆነ የጊዜ መስመር እንዲያሳዩ የክስተቱን ታሪክ ይቀጥላል።
2. ማዋቀር እና ማረጋገጫ። Codex ውቅረትን ይጭናል፣ ነባሪዎችን ያስተዳድራል፣ እና እንደ «በChatGPT ይግቡ» ያሉ የማረጋገጫ ፍሰቶችን ያሂዳል፣ ይህም የማረጋገጫ ሁኔታን ጨምሮ።
3. የመሣሪያ አፈፃፀም እና ቅጥያዎች። Codex የሼል/ፋይል መሣሪያዎችን በአሸዋ ሳጥን ውስጥ ያስኬዳል እና እንደ MCP አገልጋዮች እና ክህሎቶች ያሉ ውህደቶችን በማገናኘት ወጥ በሆነ የፖሊሲ ሞዴል ስር በተወካይ ዑደት ውስጥ እንዲሳተፉ ያደርጋል።
እዚህ የጠቀስናቸው ሁሉም የወኪል አመክንዮዎች፣ የኮር ወኪል ዑደትን ጨምሮ፣ በCodex CLI ኮድቤዝ ውስጥ «Codex ኮር(በአዲስ መስኮት ውስጥ ይክፈታል)» በሚባል ክፍል ውስጥ ይኖራሉ። Codex core ሁሉም የወኪል ኮድ የሚገኝበት ላይብረሪ እና የወኪል ሊቅድ ለማስኬድ እና አንድ Codex ክር (ውይይት) የማቆያነትን ለማስተዳደር ሊነሳ የሚችል የሩጫ አካባቢ ነው።
ጠቃሚ እንዲሆን የCodex ማሠሪያው ለደንበኞች ተደራሽ መሆን አለበት። የመተግበሪያ አገልጋዩ የሚመጣው እዚህ ጋር ነው።
የመተግበሪያ አገልጋይ በደንበኛው እና በአገልጋዩ መካከል ያለው የJSON-RPC ፕሮቶኮል እና የCodex ኮር ክሮችን የሚያስተናግድ ረጅም ጊዜ የሚቆይ ሂደት ነው። ከላይ ካለው ዲያግራም እንደምንመለከተው፣ የመተግበሪያ አገልጋይ ሂደት አራት ዋና ዋና ክፍሎች አሉት፦ እነሱም የstdio አንባቢ፣ የCodex መልእክት ፕሮሰሰር፣ የክር አስተዳዳሪ እና የኮር ክሮች ናቸው። የክር አስተዳዳሪው ለእያንዳንዱ ክር አንድ ዋና ክፍለ ጊዜ ያዘጋጃል፣ እና የCodex መልእክት ማቀነባበሪያው የደንበኛ ጥያቄዎችን ለማቅረብ እና ዝማኔዎችን ለመቀበል ከእያንዳንዱ ዋና ክፍለ ጊዜ ጋር በቀጥታ ይገናኛል።
አንድ የደንበኛ ጥያቄ ብዙ የክስተት ዝማኔዎችን ሊያስከትል ይችላል፣ እና እነዚህ ዝርዝር ክስተቶች በመተግበሪያ አገልጋዩ ላይ በመሠረት ባለጠጋ UI እንድንገነባ የሚያስችሉን ናቸው። በተጨማሪም፣ የስታዲዮ አንባቢ እና የCodex መልእክት ማቀነባበሪያ በደንበኛው እና በCodex ኮር ክሮች መካከል እንደ የትርጉም ንብርብር ሆነው ያገለግላሉ። የደንበኛ JSON-RPC ጥያቄዎችን ወደ Codex ኮር ኦፕሬሽኖች ይተረጉማሉ፣ የCodex ኮር ውስጣዊ የክስተት ዥረትን ያዳምጣሉ፣ ከዚያም እነዚያን ዝቅተኛ ደረጃ ያላቸውን ክስተቶች ወደ አነስተኛ የተረጋጋ፣ ለተጠቃሚ በይነገጽ ዝግጁ የሆነ የJSON-RPC ማሳወቂያዎች ይቀይሯቸዋል።
በደንበኛው እና በመተግበሪያ አገልጋዩ መካከል ያለው የJSON-RPC ፕሮቶኮል ሙሉ በሙሉ ባለሁለት አቅጣጫ ነው። የተለመደው ክር የደንበኛ ጥያቄ እና ብዙ የአገልጋይ ማሳወቂያዎች አሉት። በተጨማሪም፣ አገልጋዩ ወኪሉ እንደ ማጽደቅ ግብዓት ሲፈልግ ጥያቄዎችን ማስጀመር እና ከዚያም ደንበኛው ምላሽ እስኪሰጥ ድረስ መዞሩን ማቆም ይችላል።
ቀጥሎ፣ የውይይት ቀዳሚ ነገሮችን፣ የመተግበሪያ አገልጋይ ፕሮቶኮልን የግንባታ ብሎኮች እንከፋፍላለን። ለወኪል ዑደት API መንደፍ አስቸጋሪ ነው ምክንያቱም የተጠቃሚ/ወኪል መስተጋብር ቀላል ጥያቄ/ምላሽ አይደለም። አንድ የተጠቃሚ ጥያቄ ደንበኛው በታማኝነት ሊወክለው ወደሚገባው የተዋቀረ የድርጊት ቅደም ተከተል ሊዘረጋ ይችላል፦ የተጠቃሚው ግብዓት፣ የወኪሉ ጭማሪ እድገት፣ በመንገዱ ላይ የተፈጠሩ ቅርሶች (ለምሳሌ፣ ልዩነቶች)። ያንን የመስተጋብራዊ ዥረት በቀላሉ ለማዋሃድ እና በተጠቃሚ በይነገጽ UIዎች ላይ ጠንካራ ለማድረግ፣ ግልፅ የሆኑ ወሰኖች እና የህይወት ዑደቶች ያሏቸው ሦስት ዋና ዋና ቀዳሚዎችን አግኝተናል፦
1. እቃ፦ አንድ እቃ በCodex ውስጥ የግብዓት/ውጤት አቶሚክ አሃድ ነው። እቃዎች የተተየቡ ናቸው (ለምሳሌ፣ የተጠቃሚ መልእክት፣ የወኪል መልእክት፣ የመሣሪያ አፈፃፀም፣ የማጽደቂያ ጥያቄ፣ ልዩነት) እና እያንዳንዱ ግልፅ የሆነ የህይወት ዑደት አለው፦
እቃ/ተጀምሯልእቃው ሲጀምር በመጀመሪያ- አማራጭ
እቃ/*/deltaክስተቶች እንደ የይዘት ዥረቶች (ለዥረት ንጥል ዓይነቶች) - እቃው በተርሚናል ክፍያው ሲጠናቀቅ
እቃ/ተጠናቋል
ይህ የህይወት ዑደት ደንበኞች ተጀምሯል ወዲያውኑ ማሳየት እንዲጀምሩ፣ delta ላይ ተጨማሪ ዝመናዎችን እንዲያስተላልፉ እና ተጠናቋል እንዲያጠናቅቁ ያስችላቸዋል።
2. ዙር፦ ዙር በተጠቃሚ ግቤት የሚጀመር የወኪል ሥራ አካል ነው። ደንበኛው ግብዓት ሲያቀርብ (ለምሳሌ፣ «ሙከራዎችን አሂድ እና ውድቀቶችን ጠቅለል አድርገህ አቅርብ») ይጀምራል እና ወኪሉ ለዚያ ግብዓት ውጤቶችን ማምረቱን ሲያጠናቅቅ ያበቃል። አንድ ዙር በመንገዱ ላይ የሚመነጩትን መካከለኛ ደረጃዎች እና ውጤቶች የሚወክሉ የንጥሎች ቅደም ተከተል ይይዛል።
3. ክር፦ ክር በተጠቃሚ እና በወኪል መካከል ለሚደረግ ቀጣይነት ያለው የCodex ክፍለ ጊዜ ዘላቂ መያዣ ነው። በርካታ ዙሮችን ይዟል። ክሮች ሊፈጠሩ፣ እንደገና ሊጀመሩ፣ ሊቀረጹ እና ሊቀመጡ ይችላሉ። የክር ታሪክ ተጠብቆ እንዲቆይ ተደርጓል፣ ስለዚህ ደንበኞች እንደገና መገናኘት እና ወጥ የሆነ የጊዜ መስመር ማቅረብ ይችላሉ።
አሁን፣ በደንበኛ እና በተወካዩ መካከል ያለውን ቀለል ያለ ውይይት እንመለከታለን፣ ውይይቱ በቀዳሚዎች የሚወከልበት፦
በውይይቱ መጀመሪያ ላይ ደንበኛው እና አገልጋዩ initialize እጅ መጨባበጥን ማቋቋም አለባቸው። ደንበኛው ከሌላ ዘዴ በፊት አንድ initialize ጥያቄ መላክ አለበት፣ እና አገልጋዩ ምላሽ በመስጠት እውቅና ይሰጣል። ይህ አገልጋዩ ችሎታዎችን የማስተዋወቅ እድል ይሰጠዋል እና እውነተኛው ሥራ ከመጀመሩ በፊት ሁለቱም ወገኖች በፕሮቶኮል ሥሪት፣ በባህሪ ባንዲራዎች እና በነባሪነት እንዲስማሙ ያስችላቸዋል። ከOpenAI የVS ኮድ ቅጥያ የክፍያ ጭነት ምሳሌ እነሆ፦
አገልጋዩ የሚመልሰው ይህ ነው፦
አንድ ደንበኛ አዲስ ጥያቄ ሲያቀርብ፣ መጀመሪያ ክር ይፈጥራል ከዚያም ተራ ይፈጥራል። አገልጋዩ ስለ እድገት ማሳወቂያዎችን ይልካል (ክር/ተጀምሯል እና ዙር/ተጀምሯል)። እንዲሁም እንደ እዚህ የተጠቃሚ መልእክት ያሉ እንደ እቃዎች የተመዘገበባቸውን ግብዓቶች ይመልሳል።
የመሣሪያ ጥሪዎችም እንደ እቃዎች ወደ ደንበኛው ይላካሉ። በተጨማሪም፣ አገልጋዩ የአገልጋይ ጥያቄ በመላክ እርምጃ ከመውሰዱ በፊት የደንበኛውን ፈቃድ ሊጠይቅ ይችላል። ደንበኛው «ፍቀድ» ወይም «ውድቅ» የሚል ምላሽ እስኪሰጥ ድረስ ማጽደቁ መዞሩን ያቆማል። በVS ኮድ ቅጥያ ውስጥ የማፅደቂያ ፍሰቱ ይህ ይመስላል፦

በመጨረሻም፣ አገልጋዩ የወኪል መልእክት ይልካል እና ከዚያም መዞሩን ዙር/ተጠናቋል ያበቃል። የወኪል መልእክት ዴልታ ክስተቶች መልእክቱ በእቃ እቃ/ተጠናቋል እስኪጠናቀቅ ድረስ የመልእክቱን ክፍሎች መልሰው ያሰራጫሉ።
በዲያግራሙ ውስጥ ያሉት መልእክቶች ለማንበብ ቀላል ናቸው። JSONን ሙሉ በሙሉ ለማየት ከፈለጉ፣ የሙከራ ደንበኛውን ከCodex CLI ማከማቻ ማስኬድ ይችላሉ፦
አሁን፣ የተለያዩ የደንበኛ ገጽታዎች Codexን በመተግበሪያ አገልጋይ በኩል እንዴት እንደሚያካትቱ እንመልከት። ሦስት ቅጦችን እንሸፍናለን፦ የአካባቢ መተግበሪያዎች እና IDEዎች፣ የCodex የድር ጊዜ እና TUI።
በሦስቱም መካከል፣ መጓጓዣው በስታዲዮ (JSONL) ላይ JSON-RPC ነው። JSON-RPC የደንበኛ ትስስርን በመረጡት ቋንቋ መገንባትን ቀላል ያደርገዋል። የCodex ገጽታዎች እና የአጋር ውህደቶች እንደ Go፣ Python፣ TypeScript፣ Swift እና Kotlin ባሉ ቋንቋዎች የመተግበሪያ አገልጋይ ደንበኞችን ተግባራዊ አድርገዋል። ለTypeScript፣ የሚከተሉትን በማሄድ በቀጥታ ከሩስት ፕሮቶኮል ፍቺዎችን ማመንጨት ይችላሉ፦
ለሌሎች ቋንቋዎች፣ የJSONእቅድ ማውጣት ጥቅል መፍጠር እና ወደሚመርጡት የኮድ ጀነሬተር ማስገባት ይችላሉ፦

የአካባቢ ደንበኞች በተለምዶ መድረክ-ተኮር የሆነ የመተግበሪያ አገልጋይ ሁለትዮሽ ጥቅል ያዋህዳሉ ወይም ያመጣሉ፣ እንደ ረጅም ጊዜ የሚቆይ የህፃናት ሂደት ያስጀምራሉ፣ እና ለJSON-RPC ባለሁለት አቅጣጫዊ የስታዲዮ ቻናል ክፍት ያደርጋቸዋል። ለምሳሌ፣ በVS ኮድ ቅጥያችን እና በዴስክቶፕ መተግበሪያችን ውስጥ፣ የተላከው ቅርስ የመድረክ-ተኮር የCodex ሁለትዮሽ ያካትታል እና ደንበኛው ሁልጊዜ ያረጋገጥናቸውን ትክክለኛ ቢት እንዲያሄድ ከተሞከረው ሥሪት ጋር ተያይዟል።
እያንዳንዱ ውህደት የደንበኛ ዝመናዎችን በተደጋጋሚ መላክ አይችልም። አንዳንድ አጋሮች ደንበኛውን የተረጋጋ በማድረግ እና አስፈላጊ በሚሆንበት ጊዜ ወደ አዲሱ የመተግበሪያ አገልጋይ ሁለትዮሽ እንዲያመለክት በመፍቀድ የXcode ዲኮውፕ መልቀቅ ዑደቶችን ይወዳሉ። በዚህ መንገድ የአገልጋይ-ጎን ማሻሻያዎችን (ለምሳሌ፣ በCodex ኮር ወይም አዲስ የተደገፉ የውቅር ቁልፎች ውስጥ የተሻለ ራስ-ሰር-ኮምፓክት) ሊቀበሉ እና የደንበኛ መልቀቂያ ሳይጠብቁ የሳንካ ጥገናዎችን ማስኬድ ይችላሉ። የመተግበሪያ አገልጋይ JSON-RPC ወለል ወደ ኋላ ተኳሃኝ እንዲሆን የተነደፈ ነው፣ ስለዚህ አዛውንት ደንበኞች ከአዳዲስ አገልጋዮች ጋር ደኅንነቱ በተጠበቀ ሁኔታ መነጋገር ይችላሉ።

Codex ድር የCodex ማሠሪያን ይጠቀማል፣ ነገር ግን በኮንቴይነር አካባቢ ውስጥ ያስኬደዋል። አንድ ሠራተኛ አንድ ኮንቴይነር ከተቆለፈበት የሥራ ቦታ ጋር ያቀርባል፣ በውስጡም የመተግበሪያ አገልጋይ ሁለትዮሽ ያስጀምራል፣ እና ለረጅም ጊዜ የሚቆይ JSON-RPC በstdio2 ቻናል ላይ ያቆያል። የድር መተግበሪያው (በተጠቃሚው የአሳሽ ትር ውስጥ የሚሄድ) በHTTP እና SSE በኩል ከCodex ጀርባ ጋር ይገናኛል፣ ይህም በሠራተኛው የተፈጠሩ የተግባር ዝግጅቶችን ያስተላልፋል። ይህ በአሳሽ-በኩል ያለውን UI ቀላል ያደርገዋል፣ እንዲሁም በዴስክቶፕ እና በድር ላይ ወጥ የሆነ የሩጫ ጊዜ እንዲኖረን ያደርጋል።
የድር ክፍለ ጊዜዎች ለአጭር ጊዜ የሚቆዩ ስለሆኑ (ትሮች ይዘጋሉ፣ አውታረ መረቦች ይወድቃሉ)፣ የድር መተግበሪያው ለረጅም ጊዜ ለሚሠሩ ተግባራት የእውነት ምንጭ ሊሆን አይችልም። ሁኔታውን እና እድገትን በአገልጋዩ ላይ ማቆየት ማለት ትሩ ቢጠፋም እንኳን ሥራው ይቀጥላል ማለት ነው። የዥረት ፕሮቶኮሉ እና የተቀመጡ የክር ክፍለ ጊዜዎች አዲስ ክፍለ ጊዜ እንደገና እንዲገናኝ፣ ካቆመበት እንዲቀጥል እና በደንበኛው ውስጥ ያለውን ሁኔታ እንደገና ሳይገነባ እንዲገናኝ ቀላል ያደርጉታል።

ከታሪክ አኳያ፣ TUI እንደ ወኪል ዑደት በተመሳሳይ ሂደት ውስጥ የሚሄድ እና ከመተግበሪያ-አገልጋይ ፕሮቶኮል ይልቅ ከRust ኮር ዓይነቶች ጋር በቀጥታ የሚነጋገር «ተወላጅ» ደንበኛ ነበር። ይህ ቀደም ብሎ ድግግሞሹን ፈጣን አድርጎታል፣ ነገር ግን TUIን ልዩ ገጽታም አድርጎታል።
አሁን የመተግበሪያ አገልጋይ ስላለ፣ እንደሌሎች ደንበኛዎች እንዲሠራ TUIን እንደገና(በአዲስ መስኮት ውስጥ ይክፈታል) ለመጠቀም አቅደናል፦ የመተግበሪያ አገልጋይ የልጅ ሂደትን ያስጀምሩ፣ በstdio ላይ JSON-RPC ይናገሩ እና ተመሳሳይ የዥረት ዝግጅቶችን እና ማጽደቆችን ያቅርቡ። ይህ TUI በርቀት ማሽን ላይ ከሚሠራ የCodex አገልጋይ ጋር መገናኘት የሚችልበትን የሥራ ፍሰቶችን ይከፍታል፣ ወኪሉ ለማስላት ቅርብ ሆኖ እንዲቆይ እና ላፕቶፑ ቢተኛም ወይም ቢቋረጥም እንኳን ሥራውን እንዲቀጥል ያደርጋል፣ እንዲሁም በአካባቢው የቀጥታ ዝመናዎችን እና መቆጣጠሪያዎችን እያቀረበ ነው።
የCodex መተግበሪያ አገልጋይ ወደፊት የምንጠብቀው የመጀመሪያው ደረጃ የውህደት ዘዴ ይሆናል፣ ነገር ግን የበለጠ ውስን ተግባር ያላቸው ሌሎች ዘዴዎችም አሉ። በነባሪነት፣ ደንበኞች ከCodex ጋር ለማዋሃድ የCodex መተግበሪያ አገልጋይን እንዲጠቀሙ እንመክራለን፣ ነገር ግን የተለያዩ የውህደት ዘዴዎችን መመልከት እና ጥቅሞቻቸውን እና ጉዳቶቻቸውን መረዳት ጠቃሚ ነው። Codexን ለማሽከርከር በጣም የተለመዱ መንገዶች እና እያንዳንዳቸው መቼ ተስማሚ ሊሆኑ እንደሚችሉ ከዚህ በታች ተዘርዝረዋል።
codex mcp-server(በአዲስ መስኮት ውስጥ ይክፈታል) ያሂዱ እና የstdio አገልጋዮችን ከሚደግፍ ከማንኛውም የMCP ደንበኛ ጋር ይገናኙ (ለምሳሌ፣ OpenAI ወኪሎች SDK(በአዲስ መስኮት ውስጥ ይክፈታል))። አስቀድመው በMCP ላይ የተመሰረተ የሥራ ፍሰት ካለዎት እና Codexን እንደ ሊጠራ የሚችል መሣሪያ መጠቀም ከፈለጉ ይህ ተስማሚ ነው። ጉዳቱ የሚያገኙት MCP የሚያጋልጠውን ብቻ ነው፣ ስለዚህ በበለጸጉ የክፍለ ጊዜ ትርጉሞች (ለምሳሌ፣ የልዩነት ዝመናዎች) ላይ የተመሰረቱ የCodex-ተኮር መስተጋብሮች በMCP የመጨረሻ ነጥቦች በኩል በንጽህና ላይታዩ ይችላሉ።
አንዳንድ ሥነ-ምህዳሮች በርካታ የሞዴል አቅራቢዎችን እና የሥራ ጊዜዎችን ኢላማ ማድረግ የሚችል ተንቀሳቃሽ በይነገጽ ያቀርባሉ። ብዙ ወኪሎችን የሚያስተባብር አንድ ረቂቅ ነገር ከፈለጉ ይህ ተስማሚ ሊሆን ይችላል። ዋናው ውዝግብ እነዚህ ፕሮቶኮሎች ብዙውን ጊዜ ከተለመዱት የአቅም ንዑስ ስብስብ ጋር ይገናኛሉ፣ ይህም በተለይ በአቅራቢው ላይ የተወሰነ መሣሪያ እና የክፍለ ጊዜ ትርጉሞች አስፈላጊ ሲሆኑ የበለጠ የበለጸጉ መስተጋብሮችን ለመወከል አስቸጋሪ ሊያደርግ ይችላል። ይህ ቦታ በፍጥነት እየተሻሻለ ነው፣ እና የእውነተኛ ዓለም ወኪል የሥራ ፍሰቶችን የሚወክሉ ምርጥ የመጀመሪያ ደረጃዎችን ስናገኝ የበለጠ የተለመዱ መመዘኛዎች እንደሚወጡ እንጠብቃለን (ክህሎቶች(በአዲስ መስኮት ውስጥ ይክፈታል) ለዚህ ጥሩ ምሳሌ ናቸው)።
ሙሉው Codex ማሠሪያ እንደ የተረጋጋ፣ ለUI ተስማሚ የክስተት ዥረት እንዲታይ ሲፈልጉ የመተግበሪያ አገልጋይን ይምረጡ። የወኪል ዑደትን ሙሉ ተግባር እና እንደ በChatGPT ይግቡ፣ የሞዴል ግኝት እና የውቅር አስተዳደር ያሉ ሌሎች የድጋፍ ባህሪያትን ያገኛሉ። ዋናው ወጪ የውህደት ሥራ ነው፣ ምክንያቱም በቋንቋዎ ውስጥ የደንበኛ-ወገን JSON-RPC ትስስር መገንባት ስለሚያስፈልግዎ። በተግባር ግን፣ Codex የJSON እቅድ ማውጣት እና ሰነድ ካቀረቡለት ብዙ ከባድ ሥራዎችን ማከናወን ይችላል። አብረን የሠራናቸው ብዙ ቡድኖች Codexን በመጠቀም በፍጥነት ወደ ሥራ ውህደት መፍጠር ችለዋል።
ለአንድ ጊዜ ለሚደረጉ ተግባራት እና ለCI ሥራዎች ቀላል ክብደት ያለው፣ ሊጻፍ የሚችል የCLI ሁነታ። ለአውቶሜሽን እና ለቧንቧ መስመሮች ተስማሚ ነው፣ አንድ ትዕዛዝ በይነተገናኝ ባልሆነ መንገድ እንዲጠናቀቅ፣ ለምዝግብ ማስታወሻዎች የተዋቀረ ውጤት እንዲለቀቅ እና ግልፅ የሆነ የስኬት ወይም የውድቀት ምልክት እንዲወጣ ይፈልጋሉ።
ከራስዎ መተግበሪያ ውስጥ ሆነው የአካባቢውን የCodex ወኪሎችን በፕሮግራማዊ መንገድ ለመቆጣጠር የሚያስችል የTypeScript ቤተ-መጽሐፍት። የተለየ የJSON-RPC ደንበኛ ሳይገነቡ ለአገልጋይ-ጎን መሣሪያዎች እና የሥራ ፍሰቶች ቤተኛ የቤተ-መጽሐፍት በይነገጽ ሲፈልጉ በጣም ጥሩ ነው። ከመተግበሪያ አገልጋይ ቀደም ብሎ ስለተላከ፣ በአሁኑ ጊዜ ጥቂት ቋንቋዎችን እና አነስተኛ የወለል ስፋትን ይደግፋል። የገንቢ ፍላጎት ካለ፣ ቡድኖች የJSON-RPC ማያያዣዎችን ሳይጽፉ ተጨማሪ የገመድ ወለልን መሸፈን እንዲችሉ የመተግበሪያ አገልጋይ ፕሮቶኮልን የሚያጠቃልሉ ተጨማሪ SDKዎችን ልናክል እንችላለን።
በዚህ ጽሑፍ ውስጥ፣ ከወኪሎች ጋር ለመግባባት አዲስ መስፈርት እንዴት እንደምናዘጋጅ እና የCodexን ማሠሪያ ወደ የተረጋጋ፣ ለደንበኛ ተስማሚ ፕሮቶኮል እንዴት መቀየር እንደምንችል አጋርተናል። የመተግበሪያ አገልጋይ የCodex ኮርን እንዴት እንደሚያጋልጥ፣ ደንበኞች ሙሉውን የወኪል ዑደት እንዴት እንደሚያንቀሳቅሱ እና TUI፣ የአካባቢ IDE ውህደቶችን እና የድር አሂድ ጊዜን ጨምሮ የተለያዩ ገጽታዎችን እንዴት እንደሚያንቀሳቅስ ተመልክተናል።
ይህ Codexን ከራስዎ የሥራ ፍሰቶች ጋር ለማዋሃድ ሀሳቦችን ካስነሳ፣ መተግበሪያ አገልጋይን መሞከር ጠቃሚ ነው። ሁሉም የምንጭ ኮዶች በCodex CLI ክፍት ምንጭ ማከማቻ(በአዲስ መስኮት ውስጥ ይክፈታል) ውስጥ ይኖራሉ። የእርስዎን ግብረመልስ እና የባህሪ ጥያቄዎች ለማጋራት ነፃነት ይሰማዎ። ከእርስዎ ለመስማት እና ወኪሎች ለሁሉም ሰው ተደራሽ እንዲሆኑ ለማድረግ በጉጉት እንጠባበቃለን።
ደራሲ
ምስጋናዎች
ለዚህ ጽሑፍ አስተዋጽኦ ላደረጉት Michael Bolin፣ Owen Lin፣ Eric Traut እና Rasmus Rygaard ልዩ ምስጋና እና በመተግበሪያ አገልጋይ ላይ ለሠራው መላው Codex ቡድን ልዩ ምስጋና ይድረሳቸው።
የግርጌ ማስታወሻዎች
- 1
«የJSON‑RPC lite» ተለዋጭ እንጠቀማለን፦ የጥያቄ/ምላሽ/ማሳወቂያ ቅርፅን ይይዛል፣ ነገር ግን
«jsonrpc»፦ «2.0ን»ይተዋል። ራስጌ እና ጥብቅ JSON‑RPC 2.0 ሳይሆን በstdio ላይ እንደ JSONL ሆኖ ፍሬም ተደርጎለታል። - 2
«stdio» የሚለው ቃል በመያዣው ውስጥ ያለውን የመተግበሪያ-አገልጋይ stdin/stdout ያመለክታል። በተስተናገዱ ቅንብሮች ውስጥ፣ እነዚያ ዥረቶች ብዙውን ጊዜ ከኮንቴይነር የሥራ ጊዜ ጋር በቋሚ የአውታረ መረብ ግንኙነት (ለምሳሌ፣ እንደ WebSocket) ላይ ይዋሻሉ—ስለዚህ ቃል በቃል የአካባቢ ቧንቧ ባይሆንም እንኳ እንደ stdio ሆኖ ይሠራል።


