Tahad Codexi agenti mõista? See põhjalik analüüs on kohustuslik lugemine!
Tahad Codexi agenti mõista? See põhjalik analüüs on kohustuslik lugemine!
OpenAI tegi just midagi "ebatavalist".
Tavaliselt avaldab OpenAI võimsamaid mudeleid (nagu o1), kuid seekord avaldasid nad põhjaliku tehnilise blogipostituse "Unrolling the Codex agent loop", mis mitte ainult ei avaldanud Codex CLI tuumloogikat avatud lähtekoodiga, vaid ka demonteeris samm-sammult, kuidas küps koodiagent (Coding Agent) tegelikult töötab.

Praegusel ajal, kui Claude Code ja Cursor hullumeelselt fänne koguvad, ei ole see OpenAI artikkel mitte ainult lihaste näitamine, vaid ka "Agent arhitekti vigade vältimise juhend". Olenemata sellest, kas soovite AI programmeerimistööriista hästi kasutada või ise agenti arendada, on see artikkel väärt iga sõna uurimist.
Kogu tekst on 8300+ sõna, lugemine võtab umbes 20 minutit.
Esiteks, mis on Codex CLI?
Codex CLI on OpenAI toodetud avatud lähtekoodiga kodeerimisagendi tööriist, mida saab käitada kohalikus arvutis või installida koodiredaktorisse. Toetab VS Code, Cursor, Windsurf jne.
Avatud lähtekoodi aadress: https://github.com/openai/codex

Ja Agent Loop (agendi tsükkel), mida tutvustame, on Codex CLI tuumloogika: see vastutab kasutajate, mudelite ja mudelikõnede koordineerimise eest, et teostada väärtuslikke interaktsioone tööriistade vahel.
Agent Loop (agendi tsükkel)
Mudelid on ainult komponendid, agent (intelligentne agent) saab moodustada toote.
Iga AI Agendi tuum on nn "agendi tsükkel (Agent Loop)". Agendi tsükli skeem on näidatud allpool:

Me tavaliselt arvame, et AI programmeerimine on: "Ma küsin, see vastab". Kuid Codex CLI sees on see keeruline lõputu tsükli protsess...
Standardne Agent Loop sisaldab järgmisi etappe:
- Kasutaja juhised: kasutaja sisestatud tekstijuhiste komplekt (näiteks "refaktoreeri see funktsioon").
- Mudeli järeldus: mudel otsustab, kas vastata otse või kutsuda tööriista (Tool Call).
- Tööriista kutsumine: kui mudel otsustab kutsuda list files või run shell, käivitab CLI need käsud kohapeal.
- Vaatlus (Observation): tööriista täitmise tulemused (kood, vead, failide loend) jäädvustatakse.
- Tsükkel: need tulemused lisatakse vestluse ajalukku ja söödetakse uuesti mudelile. Pärast tulemuste nägemist otsustab mudel järgmise sammu.
- Lõpetamine: kuni mudel usub, et ülesanne on lõpetatud, väljastab lõpliku vastuse.
Kogu protsessi "kasutaja sisestusest" kuni "agendi vastuseni" nimetatakse vestluse vooruks (Codexis nimetatakse seda lõimeks).

Vestluse edenedes suureneb ka viip (Prompt) pikkus, mida kasutatakse mudeli järelduste tegemiseks. See pikkus on oluline, kuna igal mudelil on kontekstiaken, mis tähistab maksimaalset arvu tokeneid (tokens), mida mudel saab ühe järelduskõne ajal kasutada.
Mudeli järeldus
Codex CLI saadab HTTP-päringu Responses API-le mudeli järelduste tegemiseks. Codex kasutab Responses API-t agendi tsükli käivitamiseks.
Mis on Responses API?
Responses API on OpenAI uue põlvkonna agentide arendusliides, mis käivitati 2025. aasta märtsis ja mille eesmärk on ühtlustada vestluse, tööriistakõnede ja multimodality töötlemise võimalusi, et pakkuda arendajatele paindlikumat ja võimsamat AI rakenduste loomise kogemust.
Codex CLI kasutatav Responses API lõpp-punkt on konfigureeritav ja seda saab kasutada mis tahes Responses API-d rakendava lõpp-punktiga.

Mudel võtab valimi (genereerib vastuse)
Responses API-le algatatud HTTP-päring käivitab Codexi vestluse esimese "vooru" (turn). Server tagastab vastuse voogedastuse kaudu Server-Sent Events (SSE).

Pange tähele, et eelmise vooru viip on uue viipa täpne eesliide. Selline disain võib oluliselt parandada järgnevate päringute tõhusust – saab kasutada viipade vahemälu mehhanismi.

Viipa pideva pikenemise mõju voorude arvu suurenemisega
1. Jõudluse osas
- Mudeli valimi maksumuse suurenemine: viipa pidev pikenemine suurendab mudeli valimi maksumust, kuna valimi protsess peab töötlema rohkem andmeid, mis suurendab arvutuste hulka.
- Vahemälu eeliste vähenemine: kuna viip pikeneb pidevalt voorude arvu suurenemisega, suureneb täpse eesliite sobitamise raskus ja väheneb vahemälu tabamuse tõenäosus.
2. Kontekstiakna haldamise osas
- Kontekstiaken on kerge ammendada: viipa pidev pikenemine suurendab kiiresti vestluse märkide arvu ja kui see ületab kontekstiakna läve, võib see põhjustada kontekstiakna ammendumise.
- Tihendamise vajadus suureneb: kontekstiakna ammendumise vältimiseks on vaja vestlus tihendada, kui märkide arv ületab läve.
3. Vahemälu tabamuse puudumise riski osas
- Mitmed toimingud võivad kergesti põhjustada vahemälu tabamuse puudumise: kui viipa pikenemise tõttu on vaja muuta mudeli saadaolevaid tööriistu, sihtmudelit, liivakasti konfiguratsiooni jne, suurendab see veelgi vahemälu tabamuse puudumise riski.
- MCP tööriistad suurendavad keerukust: MCP server saab dünaamiliselt muuta pakutavate tööriistade loendit ja seotud teadetele reageerimine pikkades vestlustes võib põhjustada vahemälu tabamuse puudumise.
Viiteinfo: "Unrolling the Codex agent loop" Allikas: OpenAI





