Želite razumjeti Codex agenta? Ova detaljna analiza se ne smije propustiti!
Želite razumjeti Codex agenta? Ova detaljna analiza se ne smije propustiti!
OpenAI je upravo uradio nešto "neobično".
Obično, OpenAI objavljuje jače modele (kao što je o1), ali ovaj put, objavili su detaljan tehnički blog 《Unrolling the Codex agent loop》, ne samo da su otvorili izvorni kod Codex CLI jezgrene logike, već su i korak po korak rastavili kako zreo kodni agent (Coding Agent) zapravo radi.

U trenutku kada Claude Code i Cursor ludo osvajaju fanove, ovaj članak OpenAI-a nije samo pokazivanje mišića, već i "vodič za arhitekte agenata za izbjegavanje zamki". Bez obzira želite li dobro koristiti AI alate za programiranje ili želite sami razviti agenta, ovaj članak vrijedi pročitati riječ po riječ.
Tekst ima više od 8300 riječi, a čitanje će trajati oko 20 minuta.
Prvo, što je Codex CLI?
Codex CLI je alat za kodiranje agenata otvorenog koda koji je proizveo OpenAI, a može se pokrenuti na lokalnom računalu ili instalirati u uređivaču koda. Podržava VS Code, Cursor, Windsurf itd.
Adresa otvorenog koda: https://github.com/openai/codex

Agent Loop (petlja agenta) koji će biti predstavljen ovaj put je jezgra logike Codex CLI: odgovoran je za koordinaciju korisnika, modela i poziva modela kako bi se izvršile interakcije između vrijednih alata.
Agent Loop (petlja inteligentnog agenta)
Modeli su samo komponente, agenti (inteligentni agenti) mogu činiti proizvode.
Jezgra svakog AI agenta je takozvana "petlja inteligentnog agenta (Agent Loop)". Dijagram petlje inteligentnog agenta je prikazan u nastavku:

Obično mislimo da je AI programiranje: "Ja pitam, on odgovara". Ali unutar Codex CLI, ovo je složen beskonačni ciklički proces...
Standardna Agent Loop uključuje sljedeće korake:
- Korisničke upute: skup tekstualnih uputa koje unosi korisnik (na primjer, "refaktoriraj ovu funkciju").
- Model zaključivanje: model odlučuje hoće li odgovoriti izravno ili pozvati alat (Tool Call).
- Poziv alata: ako model odluči pozvati list files ili run shell, CLI će izvršiti ove naredbe lokalno.
- Promatranje (Observation): rezultat izvršenja alata (kod, pogreška, popis datoteka) se bilježi.
- Petlja: ovi se rezultati dodaju u povijest razgovora i ponovno se unose u model. Nakon što model vidi rezultate, odlučuje o sljedećem koraku.
- Prekid: sve dok model ne smatra da je zadatak dovršen, ispisuje konačni odgovor.
Cijeli proces od "korisničkog unosa" do "odgovora inteligentnog agenta" naziva se krug razgovora (u Codexu se naziva nit).

Kako razgovor napreduje, duljina upita (Prompt) koji se koristi za zaključivanje modela također će se povećati. Ova duljina je važna jer svaki model ima kontekstni prozor, koji predstavlja maksimalni broj tokena koje model može koristiti u jednom pozivu zaključivanja.
Model zaključivanje
Codex CLI šalje HTTP zahtjev Responses API-ju za zaključivanje modela. Codex koristi Responses API za pokretanje petlje agenta.
Što je Responses API?
Responses API je nova generacija sučelja za razvoj inteligentnih agenata koju je OpenAI lansirao u ožujku 2025., a ima za cilj ujediniti mogućnosti razgovora, poziva alata i multimodalne obrade kako bi programerima pružio fleksibilnije i moćnije iskustvo izgradnje AI aplikacija.
Codex CLI koristi Responses API krajnju točku koja se može konfigurirati i može se koristiti s bilo kojom krajnjom točkom koja implementira Responses API.

Model uzorkuje (generira odgovor)
HTTP zahtjev pokrenut prema Responses API-ju pokreće prvi "krug" u Codex razgovoru. Poslužitelj će strujati odgovor putem Server-Sent Events (SSE).

Imajte na umu da je upit iz prethodnog kruga točan prefiks novog upita. Ovaj dizajn može značajno poboljšati učinkovitost naknadnih zahtjeva - može se iskoristiti mehanizam predmemoriranja upita.

Utjecaj stalnog produljenja upita s povećanjem broja krugova
1. U pogledu performansi
- Povećanje troškova uzorkovanja modela: Stalno produljenje upita će povećati troškove uzorkovanja modela, jer proces uzorkovanja treba obraditi više podataka, što dovodi do povećanja količine izračuna.
- Smanjenje učinkovitosti predmemorije: Kako se upit stalno produljuje s povećanjem broja krugova, poteškoća preciznog podudaranja prefiksa se povećava, a vjerojatnost pogotka predmemorije se smanjuje.
2. U pogledu upravljanja kontekstnim prozorom
- Kontekstni prozor se lako iscrpljuje: Stalno produljenje upita će uzrokovati brzo povećanje broja oznaka u razgovoru, a kada se prekorači prag kontekstnog prozora, to može dovesti do iscrpljivanja kontekstnog prozora.
- Povećanje potrebe za operacijama kompresije: Kako bi se izbjeglo iscrpljivanje kontekstnog prozora, razgovor se mora komprimirati kada broj oznaka premaši prag.
3. U pogledu rizika od promašaja predmemorije
- Različite operacije lako izazivaju promašaj predmemorije: Ako produljenje upita uključuje promjenu dostupnih alata modela, ciljnog modela, konfiguracije sandboxa i drugih operacija, to će dodatno povećati rizik od promašaja predmemorije.
- MCP alati povećavaju složenost: MCP poslužitelj može dinamički mijenjati popis alata koji se pružaju, a odgovor na relevantne obavijesti u dugotrajnim razgovorima može dovesti do promašaja predmemorije.
Referentne informacije: 《Unrolling the Codex agent loop》Izvor: OpenAI





