Codex CLI(በአዲስ መስኮት ውስጥ ይክፈታል) በማሽንዎ ላይ ደኅንነቱ በተጠበቀ እና በብቃት ሲሠራ ከፍተኛ ጥራት ያላቸውን እና አስተማማኝ የሶፍትዌር ለውጦችን ለማምጣት የተነደፈ ሁለገብ የአካባቢ ሶፍትዌር ወኪላችን ነው። በኤፕሪል ወር CLI ለመጀመሪያ ጊዜ ከጀመርንበት ጊዜ ጀምሮ ዓለም አቀፍ ደረጃውን የጠበቀ የሶፍትዌር ወኪል እንዴት መገንባት እንደሚቻል ብዙ ተምረናል። እነዚህን ግንዛቤዎች ለማብራራት፣ ይህ Codex እንዴት እንደሚሠራ የተለያዩ ገጽታዎችን እና በትጋት የተገኙ ትምህርቶችን የምንዳስስበት ቀጣይ ተከታታይ ጽሑፍ ውስጥ የመጀመሪያው ነው። (የCodex CLI እንዴት እንደተገነባ የበለጠ ዝርዝር ዕይታ ለማግኘት፣ ክፍት ምንጭ ማከማቻችንን በhttps://github.com/openai/codex(በአዲስ መስኮት ውስጥ ይክፈታል) ላይ ይመልከቱ። የንድፍ ውሳኔዎቻችን ብዙዎቹ ጥቃቅን ዝርዝሮች በGitHub እትሞች እና የበለጠ ለማወቅ ከፈለጉ የመሳብ ጥያቄዎች ውስጥ ተካትተዋል።)
ለመጀመር፣ በCodex CLI ውስጥ በተጠቃሚው፣ በሞዴሉ እና ሞዴሉ ትርጉም ያለው የሶፍትዌር ሥራን ለማከናወን በሚጠቀምባቸው መሣሪያዎች መካከል ያለውን መስተጋብር ለማደራጀት ኃላፊነት ባለው በወኪል ሉፕ ላይ እናተኩራለን። ይህ ጽሑፍ ወኪላችን (ወይም «ማሠሪያ») የLLM አጠቃቀምን በተመለከተ የሚጫወተውን ሚና ጥሩ ዕይታ እንደሚሰጥዎት ተስፋ እናደርጋለን።
ወደ ውስጥ ከመግባታችን በፊት፣ ስለ ቃላት አጭር ማስታወሻ፦ በOpenAI «Codex» የCodex CLI፣ የCodex ክላውድ እና የCodex VS ኮድ ቅጥያዎችን ጨምሮ የተለያዩ የሶፍትዌር ወኪል አቅርቦቶችን ያካትታል። ይህ ጽሑፍ በCodex ማሠሪያ ላይ ያተኩራል፣ ይህም ሁሉንም የCodex ልምዶች መሰረት ያደረገ እና በCodex CLI በኩል የሚወጣውን ዋና ወኪል ዑደት እና የአፈጻጸም አመክንዮ ያቀርባል። እዚህ ጋር በቀላሉ ለመረዳት፣ «Codex» እና «Codex CLI» የሚሉትን ቃላት በተለዋጭነት እንጠቀማለን።
የእያንዳንዱ የሰው ሠራሽ አስተውሎት (AI) ወኪል ልብ ውስጥ «የወኪል ዑደት» የሚባል ነገር አለ። የወኪል ዑደት ቀለል ያለ ምሳሌ እንደዚህ ይመስላል፦
ለመጀመር፣ ወኪሉ ከተጠቃሚው ግቤት ወስዶ እርምጃ በመባል ለሚታወቀው ሞዴል በሚያዘጋጀው የጽሑፍ መመሪያ ስብስብ ውስጥ እንዲካተት ያደርጋል።
ቀጣዩ እርምጃ ሞዴሉን መመሪያዎቻችንን በመላክ እና ምላሽ እንዲያመነጭ በመጠየቅ መጠየቅ ነው፣ ይህም ሂደት እንደ መደምደሚያ ይባላል። በማጠቃለያው ወቅት፣ የጽሑፍ እርምጃው መጀመሪያ ወደ ተከታታይ የግቤት token-ዎች(በአዲስ መስኮት ውስጥ ይክፈታል)— ወደ ሞዴሉ የቃላት ዝርዝር ውስጥ የሚገቡ ኢንቲጀሮች ይተረጉማል። እነዚህ token-ዎች ከዚያም ሞዴሉን ለመምሰል ጥቅም ላይ ይውላሉ፣ አዲስ የውጤት token-ዎችን ቅደም ተከተል ይፈጥራሉ።
የውጤት token-ዎች ወደ ጽሑፍ ይተረጎማሉ፣ ይህም የሞዴሉ ምላሽ ይሆናል። ምክንያቱም token-ዎች በተከታታይ ስለሚመረቱ፣ ይህ ትርጉም ሞዴሉ እየሠራ ሳለ ሊከናወን ይችላል፣ ስለዚህም ብዙ በLLM ላይ የተመሰረቱ መተግበሪያዎች የሚፈስ ውጤት ያሳያሉ። በተግባር፣ መደምደሚያ ብዙውን ጊዜ በጽሑፍ ላይ የሚሠራ API ጀርባ ተሸፍኖ የtokenization ዝርዝሮችን ያስወግዳል።
እንደ ማጠቃለያ ደረጃ ውጤት፣ ሞዴሉ (1) ለተጠቃሚው የመጀመሪያ ግቤት የመጨረሻ ምላሽ ይሰጣል፣ ወይም (2) ወኪሉ እንዲያከናውን የሚጠበቅበትን የመሣሪያ ጥሪ ይጠይቃል (ለምሳሌ፣ «ls አሂድ እና ውጤቱን ሪፖርት አድርግ»)። በ(2) ሁኔታ ወኪሉ የመሣሪያውን ጥሪ ያከናውናል እና ውጤቱን ከመጀመሪያው እርምጃ ጋር ያያይዛል። ይህ ውጤት ሞዴሉን እንደገና ለመጠየቅ የሚያገለግል አዲስ ግቤት ለማመንጨት ይጠቅማል፤ ከዚያም ወኪሉ ይህንን አዲስ መረጃ ግምት ውስጥ በማስገባት እንደገና መሞከር ይችላል።
ይህ ሂደት ሞዴሉ የመሣሪያ ጥሪዎችን ማስተላለፍ እስኪያቆም ድረስ ይደገማል እና በምትኩ ለተጠቃሚው መልእክት እስኪያወጣ ድረስ (በOpenAI ሞዴሎች ውስጥ እንደ ረዳት መልእክት ተብሎ ይጠራል)። በብዙ አጋጣሚዎች፣ ይህ መልእክት የተጠቃሚውን የመጀመሪያ ጥያቄ በቀጥታ ይመልሳል፣ ነገር ግን ለተጠቃሚው የተከታይ ጥያቄ ሊሆን ይችላል።
ወኪሉ የአካባቢውን አካባቢ የሚቀይሩ የመሣሪያ ጥሪዎችን መፈጸም ስለሚችል፣ «ውጤቱ» በረዳት መልዕክቱ ብቻ የተወሰነ አይደለም። በብዙ አጋጣሚዎች፣ የሶፍትዌር ወኪል ዋና ውጤት በማሽንዎ ላይ የሚጽፈው ወይም የሚያርትዖት ኮድ ነው። ቢሆንም፣ እያንዳንዱ ዙር ሁልጊዜ በረዳት መልዕክት ይጠናቀቃል—ለምሳሌ «እርስዎ የጠየቁትን architecture.md ጨመረው»—ይህም በወኪል ሉፕ ውስጥ የመጨረሻ ሁኔታን ያመለክታል። ከወኪሉ ዕይታ አንጻር፣ ሥራው ተጠናቅቋል እና ቁጥጥር ወደ ተጠቃሚው ይመለሳል።
በሥዕላዊ መግለጫው ላይ የሚታየው የተጠቃሚ ግብዓት ወደ ወኪል ምላሽ የሚደረገው ጉዞ እንደ አንድ የውይይት ዙር (በCodex ውስጥ ያለ ክር ) ይባላል። ምንም እንኳን ይህ የውይይት ዙር በሞዴል ማጠቃለያ እና በመሣሪያ ጥሪዎች መካከል ብዙ ድግግሞሾችን ሊያካትት ቢችልም። አዲስ መልእክት ወደ ነባር ውይይት በላኩ ቁጥር፣ የውይይት ታሪክ ለአዲሱ ዙር እንደ አራማጅ አካል ሆኖ ይካተታል፣ ይህም ከቀደሙት ተራዎች የተላኩ መልዕክቶችን እና የመሣሪያ ጥሪዎችን ያካትታል፦
ይህ ማለት ውይይቱ እየጨመረ በሄደ ቁጥር ሞዴሉን ለመቅዳት የሚያገለግለው የእርምጃው ርዝመትም ይጨምራል ማለት ነው። ይህ ርዝመት አስፈላጊ ነው ምክንያቱም እያንዳንዱ ሞዴል የአውድ መስኮት ስላለው፣ ይህም ለአንድ የማጠቃለያ ጥሪ ሊጠቀምበት የሚችለው ከፍተኛው የtoken-ዎች ብዛት ነው። ይህ መስኮት የግቤት እና የውጤት ቶከኖችን እንደሚያካትት ልብ ይበሉ። እንደምታስቡት፣ አንድ ወኪል በአንድ ጊዜ በመቶዎች የሚቆጠሩ የመሣሪያ ጥሪዎችን ለማድረግ ሊወስን ይችላል፣ ይህም የአውድ መስኮቱን ሊያደክም ይችላል። በዚህ ምክንያት፣ የአውድ መስኮት አስተዳደር ከወኪሉ በርካታ ኃላፊነቶች አንዱ ነው። አሁን፣ Codex የወኪል ዑደቱን እንዴት እንደሚያሄድ ለማየት እንሞክር።
የCodex CLI የሞዴል መደምደሚያን ለማስኬድ የHTTP ጥያቄዎችን ወደ ምላሾች API(በአዲስ መስኮት ውስጥ ይክፈታል) ይልካል። መረጃ በCodex ውስጥ እንዴት እንደሚፈስ እንመረምራለን፣ ይህም የAPI ምላሾችን በመጠቀም የወኪል ዑደትን ያንቀሳቅሳል።
የCodex CLI የሚጠቀመው የAPI ምላሾች የመጨረሻ ነጥብ ሊዋቀር የሚችል(በአዲስ መስኮት ውስጥ ይክፈታል)፣ ስለሆነ የAPI ምላሾችን የሚተገብር(በአዲስ መስኮት ውስጥ ይክፈታል) ማንኛውም የመጨረሻ ነጥብ ጋር መጠቀም ይቻላል፦
- የChatGPT መግቢያን በCodex CLI ሲጠቀሙ(በአዲስ መስኮት ውስጥ ይክፈታል)፣
https://chatgpt.com/backend-api/codex/responsesይጠቀማል እንደ መጨረሻ ነጥብ - የAPI-ቁልፍ ማረጋገጫን ከOpenAI የተስተናገዱ ሞዴሎች ጋር ሲጠቀሙ(በአዲስ መስኮት ውስጥ ይክፈታል)፣
https://api.openai.com/v1/responsesይጠቀማል እንደ መጨረሻ ነጥብ - Codex CLIን
--ossጋር ሲያሄዱ gpt-oss ከollama 0.13.4+(በአዲስ መስኮት ውስጥ ይክፈታል) ወይም LM Studio 0.3.39+(በአዲስ መስኮት ውስጥ ይክፈታል) ጋር ለመጠቀም ሲፈልጉ፣ በኮምፒዩተርዎ ላይ በአካባቢው የሚሠራhttp://localhost:11434/v1/responsesበነባሪነት ይሄዳል - Codex CLI እንደ Azure ባሉ የደመና አቅራቢዎች ከሚስተናገዱ የAPI ምላሾች ጋር ጥቅም ላይ ሊውል ይችላል
Codex በውይይቱ ውስጥ ለመጀመሪያው የማጠቃለያ ጥሪ እርምጃን እንዴት እንደሚፈጥር እንመርምር።
እንደ የመጨረሻ ተጠቃሚ፣ የAPI ምላሾችን ሲጠይቁ ሞዴሉን በቃል ለመቅዳት የሚያገለግለውን እርምጃ አይገልጹም። በምትኩ፣ የተለያዩ የግቤት ዓይነቶችን እንደ እርምጃዎ አካል ይገልጻሉ፣ እና የAPI ምላሾች አገልጋይ ይህንን መረጃ ሞዴሉ ለመጠቀም የተነደፈውን እርምጃ እንዴት ማዋቀር እንዳለበት ይወስናል። እርምጃውን እንደ «የእቃዎች ዝርዝር» አድርገው ሊያስቡበት ይችላሉ፤ ይህ ክፍል ጥያቄዎ ወደዚያ ዝርዝር እንዴት እንደሚለወጥ ያብራራል።
በመጀመሪያው እርምጃ ውስጥ፣ በዝርዝሩ ውስጥ ያለው እያንዳንዱ ንጥል ከአንድ ሚና ጋር የተያያዘ ነው። role የተያያዘው ይዘት ምን ያህል ክብደት ሊኖረው እንደሚገባ የሚያመለክት ሲሆን ከሚከተሉት እሴቶች አንዱ ነው (በቅድሚያ በሚቀነስ ቅደም ተከተል)፦ ሥርዓት፣ ገንቢ፣ ተጠቃሚ፣ ረዳት።
API ምላሾች(በአዲስ መስኮት ውስጥ ይክፈታል) ብዙ መለኪያዎች ያሉትን የJSON ጭነት ይቀበላል። በእነዚህ ሦስት ላይ እናተኩራለን፦
መመሪያዎች(በአዲስ መስኮት ውስጥ ይክፈታል)፦ የሥርዓት (ወይም የገንቢ) መልእክት ወደ ሞዴሉ አውድ ገብቷልመሣሪያዎች(በአዲስ መስኮት ውስጥ ይክፈታል)፦ ሞዴሉ ምላሽ በሚፈጥርበት ጊዜ ሊጠራቸው የሚችላቸው የመሣሪያዎች ዝርዝርግቤት(በአዲስ መስኮት ውስጥ ይክፈታል)፦ የጽሑፍ፣ የምስል ወይም የፋይል ግቤቶች ዝርዝር ወደ ሞዴሉ
በCodex ውስጥ፣ መመሪያዎች መስክ ከተጠቀሰው በ~/.codex/config.tomlውስጥ ካለው የሞዴል_መመሪያ_ፋይል(በአዲስ መስኮት ውስጥ ይክፈታል) ይነበባል፤ አለበለዚያ ከሞዴል ጋር የመሠረት_መመሪያዎችጥቅም (በአዲስ መስኮት ውስጥ ይክፈታል) ላይ ይውላሉ። የሞዴል-ተኮር መመሪያዎች በCodex ማከማቻ ውስጥ ይኖራሉ እና በCLI ውስጥ ተጠቃለዋል (ለምሳሌ፣ gpt-5.2-codex_prompt.md(በአዲስ መስኮት ውስጥ ይክፈታል))።
የመሣሪያዎች መስክ በAPI ምላሾች ከተገለጸው እቅድ ማውጣት ጋር የሚጣጣሙ የመሣሪያ ፍቺዎች ዝርዝር ነው። ለCodex፣ ይህ በCodex CLI የሚቀርቡ መሣሪያዎችን፣ ለCodex መቅረብ ያለባቸው በAPI ምላሾች የሚቀርቡ መሣሪያዎችን እንዲሁም በተጠቃሚው የሚቀርቡ መሣሪያዎችን፣ አብዛኛውን ጊዜ በMCP አገልጋዮች በኩል ያካትታል፦
በመጨረሻም፣ የJSON የክፍያ ጭነት ግብዓት መስክ የእቃዎች ዝርዝር ነው። Codex የተጠቃሚውን መልእክት ከማከልዎ በፊት የሚከተሉትን ነገሮች(በአዲስ መስኮት ውስጥ ይክፈታል) ወደ ግቤት ያስገባል፦
1. መሣሪያዎች ክፍል ውስጥ በተገለጸው የCodex-የቀረበውን shell መሣሪያ ብቻ የሚመለከት የአሸዋ ሳጥኑን የሚገልጽ ሚና የገንቢ=ሚና ያለው መልእክት። ማለትም፣ እንደ ከMCP ሰርቨሮች የቀረቡት ያሉ ሌሎች መሣሪያዎች በCodex አሸዋ ውስጥ አይገቡም እና የራሳቸውን መከላከያዎች የማስፈጸም ኃላፊነት አለባቸው።
መልዕክቱ የተገነባው ቁልፍ የይዘት ክፍሎች ከMarkdown ቁርጥራጮች ወደ Codex CLI ከተጣመሩ፣ ለምሳሌ workspace_write.md(በአዲስ መስኮት ውስጥ ይክፈታል) እና on_request.md(በአዲስ መስኮት ውስጥ ይክፈታል) ካሉ፣ ከሚመጡበት አብነት ነው።
2. (አማራጭ) ከተጠቃሚው config.toml ፋይል የተነበበ የገንቢ_መመሪያዎች እሴት የሆነ የገንቢ=ሚና ያለው መልእክት።
3. (አማራጭ) ከአንድ ፋይል የተገኙ ሳይሆን በብዙ ምንጮች የተዋሃዱ የተጠቃሚ=ሚና ያለው መልዕክት ይዘቱ «የተጠቃሚ መመሪያዎች» የሆነበት ነው(በአዲስ መስኮት ውስጥ ይክፈታል)። በአጠቃላይ፣ የበለጠ ዝርዝር መመሪያዎች በኋላ ላይ ይታያሉ፦
የAGENTS.override.mdእናAGENTS.mdይዘቶችበ$CODEX_HOMEውስጥ- ገደብ (በነባሪነት 32 KiB) ተገዢ ሲሆን፣ እያንዳንዱን አቃፊ
ከcwdGit/project root (ካለ) እስከcwdራሱ ድረስ ይፈልጉ፦ የማንኛውምየAGENTS.override.mdይዘቶችን ያክሉ፣AGENTS.md፣ ወይምproject_doc_fallback_filenames in config.tomlየተገለጸ ማንኛውም የፋይል ስም - ማንኛውም ክህሎቶች(በአዲስ መስኮት ውስጥ ይክፈታል) ከተዋቀሩ
- ስለ ክህሎቶች አጭር መግቢያ
- የእያንዳንዱ ክህሎት የክህሎት ሜታዳታ(በአዲስ መስኮት ውስጥ ይክፈታል)
- ክህሎቶችን እንዴት መጠቀም እንደሚቻል(በአዲስ መስኮት ውስጥ ይክፈታል) የሚያሳይ ክፍል
4. ወኪሉ በአሁኑ ጊዜ የሚሠራበትን የአካባቢ አካባቢ የሚገልጽ የተጠቃሚ=ሚና ያለው መልእክት። ይህ የአሁኑን የሥራ ማውጫ እና የተጠቃሚውን ሼል ይገልጻል(በአዲስ መስኮት ውስጥ ይክፈታል)፦
Codex ግቤት ለማስጀመር ከላይ የተጠቀሱትን ሁሉ ስሌት ካጠናቀቀ በኋላ፣ ውይይቱን ለመጀመር የተጠቃሚውን መልእክት ይጨምራል።
ቀደም ሲል የነበሩት ምሳሌዎች በእያንዳንዱ መልእክት ይዘት ላይ ያተኮሩ ናቸው፣ ነገር ግን እያንዳንዱ ግቤት አካል የJSON ነገር ሲሆን ዓይነት፣ ሚና(በአዲስ መስኮት ውስጥ ይክፈታል) እና ይዘት እንደሚከተለው መሆኑን ልብ ይበሉ፦
Codex ወደ API ምላሾች ለመላክ ሙሉውን የJSON ክፍያ ካጠናቀቀ በኋላ፣ የAPI ምላሾች የመጨረሻ ነጥብ ~/.codex/config.toml ውስጥ እንዴት እንደተዋቀረ ላይ በመመስረት የHTTP POST ጥያቄን Authorization ራስጌ ያደርገዋል (ተጨማሪ የHTTP ራስጌዎች እና የጥያቄ መለኪያዎች ከተገለጹ ይታከላሉ)።
የOpenAI API ምላሾች አገልጋይ እርምጃውን ሲቀበል፣ ለሞዴሉ ጥያቄውን እንደሚከተለው ለማግኘት JSONን ይጠቀማል (እርግጠኛ ለመሆን፣ የAPI ምላሾች ብጁ ትግበራ የተለየ ምርጫ ሊያደርግ ይችላል)
እንደምታየው፣ በእርምጃው ውስጥ የመጀመሪያዎቹ ሦስት እቃዎች ቅደም ተከተል የሚወሰነው በአገልጋዩ እንጂ በደንበኛው አይደለም። ያም ሆኖ፣ ከሦስቱ ነገሮች ውስጥ፣ መሣሪያዎች እና መመሪያዎች የሚወሰኑት በደንበኛው ስለሆነ የሥርዓት መልዕክቱ ይዘት ብቻ በአገልጋዩ ቁጥጥር ይደረግበታል። እነዚህም ከJSON የክፍያ ጭነት ግቤት ተከትሎ እርምጃውን ያጠናቅቃሉ።
አሁን የእኛን እርምጃ ስላቀረብን ሞዴሉን ለመፈተሽ ዝግጁ ነን።
ይህ የHTTP ጥያቄ ለAPI ምላሾች በCodex ውስጥ የመጀመሪያውን የውይይት «ዙር» ይጀምራል። አገልጋዩ በሰርቨር-የተላኩ ክስተቶች (SSE(በአዲስ መስኮት ውስጥ ይክፈታል)) ዥረት ምላሽ ይሰጣል። የእያንዳንዱ ክስተት ውሂብ «በምላሽ» የሚጀምር «ዓይነት» ያለው የJSON የክፍያ ጭነት ሲሆን እንደዚህ አይነት ነገር ሊሆን ይችላል (ሙሉ የክስተቶች ዝርዝር በAPI ሰነዶቻችን(በአዲስ መስኮት ውስጥ ይክፈታል) ውስጥ ይገኛል)፦
Codex የክስተቶችን ፍሰት ይጠቀማል(በአዲስ መስኮት ውስጥ ይክፈታል) እና እንደ ውስጣዊ የክስተት ዕቃዎች እንደገና ያትማል፣ ይህም በደንበኛ ጥቅም ላይ ሊውል ይችላል። እንደ response.output_text.delta ያሉ ክስተቶች በUI ውስጥ ዥረትን ለመደገፍ ያገለግላሉ፣ እንደ response.output_item.added ያሉ ሌሎች ክስተቶች ደግሞ ለቀጣይ API ምላሾች ጥሪዎች ወደ ግቤት የሚጨመሩ ነገሮች ይለወጣሉ።
የመጀመሪያው የAPI ምላሽ ጥያቄ ሁለት response.output_item.done ክስተቶችን ያካተተ እንደሆነ እናስብ፦ አንደኛው ዓይነት=ከማመዛዘን ጋር ሲሆን ሌላኛው ደግሞ ዓይነት=ከተግባር_ጥሪ ጋር ነው። እነዚህ ክስተቶች በJSON ግቤት መስክ ውስጥ መወከል አለባቸው ሞዴሉን እንደገና ስንጠይቅ ለመሣሪያ ጥሪው ምላሽ ስንሰጥ፦
ሞዴሉን እንደ ቀጣዩ መጠይቅ አካል አድርጎ ለመፈተሽ የሚያገለግለው የእርምጃ ቅጽ እንደሚከተለው ይሆናል፦
በተለይም፣ አሮጌው እርምጃ የአዲሱ እርምጃ ትክክለኛ ቅድመ ቅጥያ እንዴት እንደሆነ ልብ ይበሉ። ይህ ሆን ተብሎ የተደረገ ነው፣ ምክንያቱም ይህ ቀጣይ እርምጃዎችን የበለጠ ቀልጣፋ ስለሚያደርገው ፈጣን መሸጎጫ (በሚቀጥለው ክፍል ስለ አፈጻጸም እንወያያለን) እንድንጠቀም ስለሚያስችለን ነው።
የወኪል ዑደት የመጀመሪያ ዲያግራምን መለስ ብለን ስንመለከት፣ በማጠቃለያ እና በመሣሪያ ጥሪ መካከል ብዙ ድግግሞሽ ሊኖር እንደሚችል እናያለን። የረዳት መልእክት እስክንቀበል ድረስ እርምጃው ማደጉን ሊቀጥል ይችላል፣ ይህም የመዞሪያውን መጨረሻ የሚያመለክት ነው፦
በCodex CLI ውስጥ፣ የረዳት መልዕክቱን ለተጠቃሚው እናቀርባለን እና አቀናባሪው ውይይቱን ለመቀጠል «ተራው» መሆኑን ለተጠቃሚው ለማሳየት ትኩረት እናደርጋለን። ተጠቃሚው ምላሽ ከሰጠ፣ ከቀዳሚው ዙር የመጣው የረዳት መልእክትም ሆነ የተጠቃሚው አዲስ መልእክት አዲሱን ዙር ለመጀመር በAPI ምላሾች ጥያቄ ውስጥ ባለው ግቤት ውስጥ መያያዝ አለባቸው፦
በድጋሚ፣ ውይይቱን ስለቀጠልን፣ ወደ API ምላሾች የምንልከው ግቤት ርዝመት እየጨመረ ነው
ይህ በየጊዜው እያደገ የመጣው እርምጃ ለአፈጻጸም ምን ማለት እንደሆነ እስቲ እንመልከት።
«ቆይ፣ በውይይቱ ወቅት ወደ API ምላሾች የተላከው የJSON መጠን አንፃር የወኪል ዑደት ኳድራቲክ አይደለምን?» ብለህ ራስህን እየጠየቅክ ሊሆን ይችላል። እና ትክክል ትሆናለህ። የAPI ምላሽ ይህንን ችግር ለማቃለል አማራጭ የሆነ previous_response_id(በአዲስ መስኮት ውስጥ ይክፈታል) መለኪያን የሚደግፍ ቢሆንም፣ Codex ዛሬ አይጠቀምበትም፣ በዋናነት ጥያቄዎችን ሙሉ በሙሉ ግዛት አልባ ለማድረግ እና የዜሮ ዳታ ማቆያ (ZDR) ውቅሮችን ለመደገፍ ነው።
previous_response_id ማስወገድ የምላሾች API አቅራቢ ነገሮችን ቀላል ያደርገዋል ምክንያቱም እያንዳንዱ ጥያቄ ግዛት የሌለው መሆኑን ያረጋግጣል። ይህ ደግሞ previous_response_id ለመደገፍ የሚያስፈልገውን መረጃ ማከማቸት ከZDR ጋር ስለሚጋጭ፣ ዜሮ የውሂብ ማቆየት (ZDR) የሚለውን(በአዲስ መስኮት ውስጥ ይክፈታል) መርጠው የገቡ ደንበኞችን መደገፍ ቀላል ያደርገዋል። የZDR ደንበኞች ከቀደምት ተራዎች የተገኙ የባለቤትነት ማረጋገጫ መልዕክቶችን የመጠቀም ችሎታቸውን እንደማይሰጡ ልብ ይበሉ፣ ምክንያቱም ተያያዥ encrypted_content በአገልጋዩ ላይ ዲክሪፕት ሊደረግ ይችላል። (OpenAI የZDR ደንበኛን ዲክሪፕት ቁልፍ ይቀጥላል፣ ነገር ግን ውሂባቸው አይደለም።) ZDRን ለመደገፍ በCodex ላይ የተደረጉ ተዛማጅ ለውጦችን ለማግኘት የPRዎች #642(በአዲስ መስኮት ውስጥ ይክፈታል) እና #1641ን(በአዲስ መስኮት ውስጥ ይክፈታል) ይመልከቱ።
በአጠቃላይ፣ የሞዴሉን ናሙና የመውሰድ ወጪ የኔትወርክ ትራፊክ ወጪን የሚቆጣጠር ሲሆን፣ ናሙናን የውጤታማነት ጥረታችን ዋና ኢላማ ያደርገዋል። ለዚህ ነው እርምጃ ማሰባሰቢያ በጣም አስፈላጊ የሆነው፣ ምክንያቱም ከቀድሞ የማመዛዘን ጥሪ የተደረገውን ስሌት እንደገና እንድንጠቀም ያስችለናል። የመሸጎጫ ውጤቶችን ስናገኝ፣ የሞዴሉን ናሙና መውሰድ ኳድራቲክ ሳይሆን መስመራዊ ነው። የእኛ እርምጃ ማሰባሰቢያ (በአዲስ መስኮት ውስጥ ይክፈታል)ሰነዶች ይህን በተጨማሪ ዝርዝር ያብራራሉ፡፡
የመሸጎጫ ምቶች የሚቻሉት በእርምጃ ውስጥ ላሉ ትክክለኛ የቅድመ-ቅጥያ ግጥሚያዎች ብቻ ነው። የመሸጎጫ ጥቅሞችን ለማግኘት፣ እንደ መመሪያዎች እና ምሳሌዎች ያሉ የማይንቀሳቀሱ ይዘቶችን በእርምጃዎ መጀመሪያ ላይ ያስቀምጡ እና እንደ ተጠቃሚ-ተኮር መረጃ ያሉ ተለዋዋጭ ይዘቶችን በመጨረሻው ላይ ያስቀምጡ። ይህ ለምስሎች እና ለመሣሪያዎችም ይሠራል፣ እነዚህም በጥያቄዎች መካከል ተመሳሳይ መሆን አለባቸው።
ይህንን በአእምሯችን ይዘን፣ በCodex ውስጥ «የመሸጎጫ መጥፋት» ሊያስከትሉ የሚችሉ ምን አይነት ሥራዎችን እንመልከት፦
- በውይይቱ መካከል ለሞዴሉ የሚገኙ
መሣሪያዎችንመቀየር። - የAPI ምላሾች ጥያቄ ኢላማ የሆነውን
ሞደልመቀየር (በተግባር፣ ይህ በዋናው እርምጃ ውስጥ ያለውን ሦስተኛውን ንጥል ይለውጠዋል፣ ምክንያቱም ሞዴል-ተኮር መመሪያዎችን ይዟል)። - የሳንድቦክስ ውቅርን፣ የማጽደቂያ ሁነታን ወይም የአሁኑን የሥራ ማውጫ መቀየር።
የCodex ቡድን በCodex CLI ውስጥ እርምጃን ሊያበላሽ የሚችል አዲስ ባህሪያትን ሲያስገባ በጥንቃቄ መሆን አለበት። ለምሳሌ፣ ለMCP መሣሪያዎች የመጀመሪያ ድጋፋችን መሣሪያዎቹን በተከታታይ ቅደም ተከተል መዘርዘር ባለመቻላችን(በአዲስ መስኮት ውስጥ ይክፈታል) የመሸጎጫ ስህተቶችን አስከትሏል። የMCP መሣሪያዎች በተለይ አስቸጋሪ ሊሆኑ እንደሚችሉ ልብ ይበሉ ምክንያቱም የMCP አገልጋዮች notifications/tools/list_changed(በአዲስ መስኮት ውስጥ ይክፈታል) ማሳወቂያዎች አማካኝነት የሚያቀርቧቸውን የመሣሪያዎች ዝርዝር በፍጥነት ሊቀይሩ ይችላሉ። ይህንን ማሳወቂያ በረጅም ውይይት መሃል ማክበር ውድ የሆነ የመሸጎጫ መጥፋት ሊያስከትል ይችላል።
የሚቻል ከሆነ፣ በውይይቱ መካከል የሚከሰቱ የውቅር ለውጦችን የምናስተናግደው ቀደም ሲል የነበረን መልእክት ከማሻሻል ይልቅ ለውጡን ለማንፀባረቅ አዲስ መልእክት ወደ ግቤት በማከል ነው፦
- የሳንድቦክስ ውቅር ወይም የማጽደቂያ ሁነታ ከተቀየረ፣ ከመጀመሪያው ንጥል ጋር ተመሳሳይ ቅርጸት ያለው (በአዲስ መስኮት ውስጥ ይክፈታል)
አዲስ የገንቢ=ሚናመልእክት እናስገባለን<የፍቃድ መመሪያዎች>። - የአሁኑ የሥራ ማውጫ ከተቀየረ፣ ከመጀመሪያው
<አካባቢ_አውድ>ጋር ተመሳሳይ ቅርጸት ያለው አዲስየተጠቃሚ=ሚናመልእክት እናስገባለን(በአዲስ መስኮት ውስጥ ይክፈታል)።
ለአፈፃፀም የካሽ ሂቶች መካሄዳቸውን ለማረጋገጥ ከፍተኛ ጥረት እናደርጋለን። ማስተዳደር ያለብን ሌላ ቁልፍ የሆነ ሀብት አለ፦ የአውድ መስኮት።
የአውድ መስኮት እንዳያልቅብን ለመከላከል የምንጠቀምበት አጠቃላይ ስትራቴጂ የቶከኖች ቁጥር ከተወሰነ ገደብ በላይ ሲያልፍ ውይይቱን ማጥበብ ነው። በተለይም፣ ግቤቱን የምንተካው የውይይቱን ወካይ በሆነ አዲስ፣ አነስተኛ የቁሶች ዝርዝር ነው፣ ይህም ወኪሉ እስካሁን ምን እንደተፈጠረ መረዳቱን እንዲቀጥል ያስችለዋል። ቀደም ብሎ የተተገበረው የኮምፓክሽን ትግበራ(በአዲስ መስኮት ውስጥ ይክፈታል) ተጠቃሚው /compact ትዕዛዝን እንዲጠራ ያስገድደዋል፣ ይህም አሁን ያለውን ውይይት እና ብጁ ለማጠቃለያ(በአዲስ መስኮት ውስጥ ይክፈታል) የሚሆኑ መመሪያዎችን በመጠቀም የResponses APIን ይጠይቃል። Codex ማጠቃለያ የያዘውን የረዳት መልዕክት ለቀጣዮቹ የውይይት ዙሮች እንደ አዲሱ ግቤት(በአዲስ መስኮት ውስጥ ይክፈታል) ተጠቅሟል።
ከዚያን ጊዜ ጀምሮ፣ የRespons API ኮምፓክሽን በብቃት የሚያከናውን ልዩ /responses/compactን የመጨረሻ ነጥብ(በአዲስ መስኮት ውስጥ ይክፈታል) ለመደገፍ ተሻሽሏል። የአውድ መስኮቱን እያስፈታ ውይይቱን ለመቀጠል የእቃዎች ዝርዝር(በአዲስ መስኮት ውስጥ ይክፈታል) የሚመልስ ሲሆን ይህም ውይይቱን ለመቀጠል ከቀዳሚው ግቤት ይልቅ ጥቅም ላይ ሊውል ይችላል። ይህ ዝርዝር የሞዴሉ የመጀመሪያውን ውይይት ድብቅ ግንዛቤ የሚጠብቅ ግልጽ ያልሆነ type=compaction እቃ ያለው ልዩ type=compaction ንጥል ያካትታል። አሁን፣ auto_compact_limit(በአዲስ መስኮት ውስጥ ይክፈታል) ሲያልፍ Codex ይህንን የመጨረሻ ነጥብ በራስ-ሰር ይጠቀማል።
የCodex ወኪል ዑደትን አስተዋውቀናል፣ እንዲሁም Codex ሞዴልን ሲጠይቅ አውዱን እንዴት እንደሚቀርጽ እና እንደሚያስተዳድር ተመልክተናል። በመንገዱ ላይ፣ በResponses API ላይ የተመሠረተ የወኪል ዑደት ለሚገነባ ማንኛውም ሰው የሚተገበሩ ተግባራዊ ጉዳዮችን እና ምርጥ ልምዶችን አሳይተናል።
የወኪል ዑደት ለCodex መሠረቱን ቢሰጥም፣ ይህ ጅማሬው ብቻ ነው። በሚቀጥሉት ጽሁፎች፣ የCLIን አርክቴክቸር በጥልቀት እንመረምራለን፣ የመሳሪያ አጠቃቀም እንዴት እንደሚተገበር እንመረምራለን፣ እና የCodexን ሳንድቦክሲንግ ሞዴል በጥልቀት እንመረምራለን።


