Želite razumeti agenta Codex? Ne zamudite te poglobljene analize!
Želite razumeti agenta Codex? Ne zamudite te poglobljene analize!
OpenAI je pravkar storil nekaj "nenavadnega".
Običajno OpenAI objavi močnejše modele (kot je o1), tokrat pa so objavili poglobljen tehnični blog 《Unrolling the Codex agent loop》, ne samo da so odprtokodno objavili jedrno logiko Codex CLI, ampak so tudi korak za korakom razstavili, kako dejansko deluje zrel agent za kodiranje (Coding Agent).

V času, ko Claude Code in Cursor noro pridobivata oboževalce, ta članek OpenAI ni samo razkazovanje mišic, ampak tudi "vodnik za arhitekte agentov, kako se izogniti pastem". Ne glede na to, ali želite dobro uporabljati orodja za programiranje AI ali želite sami razviti agenta, je ta članek vreden natančnega branja.
Celotno besedilo ima več kot 8300 besed, branje pa traja približno 20 minut.
Najprej, kaj je Codex CLI?
Codex CLI je odprtokodno orodje za kodiranje agentov, ki ga je izdelal OpenAI, in ga je mogoče zagnati na lokalnem računalniku ali namestiti v urejevalnik kode. Podpira VS Code, Cursor, Windsurf itd.
Odprtokodni naslov: https://github.com/openai/codex

Agent Loop (zanka agenta), ki bo predstavljena tokrat, je jedrna logika Codex CLI: odgovorna je za usklajevanje uporabnika, modela in klica modela, da se izvedejo interakcije med dragocenimi orodji.
Agent Loop (zanka inteligentnega agenta)
Modeli so samo komponente, agenti (Agent) pa lahko tvorijo izdelek.
Jedro vsakega AI agenta je tako imenovana "zanka inteligentnega agenta (Agent Loop)". Shema zanke inteligentnega agenta je prikazana spodaj:

Običajno mislimo, da je programiranje AI: "Jaz vprašam, on odgovori". Toda znotraj Codex CLI je to zapleten neskončni cikel...
Standardna zanka agenta (Agent Loop) vključuje naslednje korake:
- Uporabniška navodila: niz besedilnih navodil, ki jih vnese uporabnik (na primer "refaktoriraj to funkcijo").
- Modelno sklepanje: model se odloči, ali bo odgovoril neposredno ali poklical orodje (Tool Call).
- Klic orodja: če se model odloči poklicati list files ali run shell, CLI izvede te ukaze lokalno.
- Opazovanje (Observation): rezultat izvedbe orodja (koda, napaka, seznam datotek) je zajet.
- Zanka: ti rezultati se dodajo v zgodovino pogovorov in ponovno vnesejo v model. Ko model vidi rezultate, se odloči o naslednjem koraku.
- Prekinitev: dokler model ne meni, da je naloga končana, izpiše končni odgovor.
Celoten postopek od "uporabniškega vnosa" do "odziva inteligentnega agenta" se imenuje krog pogovora (v Codexu imenovan nit).

Z napredovanjem pogovora se poveča tudi dolžina poziva (Prompt), ki se uporablja za sklepanje modela. Ta dolžina je pomembna, ker ima vsak model kontekstno okno, ki predstavlja največje število žetonov (tokens), ki jih lahko model uporabi v enem samem klicu sklepanja.
Modelno sklepanje
Codex CLI pošlje HTTP zahtevo API-ju Responses za izvajanje modelnega sklepanja. Codex uporablja API Responses za poganjanje zanke agenta.
Kaj je API Responses?
API Responses je nova generacija vmesnika za razvoj inteligentnih agentov, ki ga je OpenAI predstavil marca 2025, katerega cilj je poenotiti pogovor, klic orodij in zmožnosti večmodalne obdelave ter razvijalcem zagotoviti bolj prilagodljivo in zmogljivo izkušnjo gradnje aplikacij AI.
Končna točka API-ja Responses, ki jo uporablja Codex CLI, je nastavljiva in jo je mogoče uporabljati s katero koli končno točko, ki implementira API Responses.

Model izvaja vzorčenje (generiranje odziva)
HTTP zahteva, poslana API-ju Responses, sproži prvi "krog" (turn) v pogovoru Codex. Strežnik pretočno vrača odziv prek Server-Sent Events (SSE).

Upoštevajte, da je poziv prejšnjega kroga natančen predpona novega poziva. Ta zasnova lahko znatno izboljša učinkovitost nadaljnjih zahtev – lahko se uporabi mehanizem predpomnjenja pozivov.

Vpliv nenehnega podaljševanja poziva s povečevanjem kroga
1. Vidik zmogljivosti
- Povečanje stroškov vzorčenja modela: nenehno podaljševanje poziva bo povečalo stroške vzorčenja modela, ker postopek vzorčenja zahteva obdelavo več podatkov, kar vodi do povečanja količine izračunov.
- Zmanjšanje koristi predpomnjenja: s podaljševanjem poziva s povečevanjem kroga se poveča težavnost natančnega ujemanja predpon, kar zmanjšuje možnost zadetka v predpomnilniku.
2. Vidik upravljanja kontekstnega okna
- Kontekstno okno se zlahka izčrpa: nenehno podaljševanje poziva bo povzročilo hitro povečanje števila oznak v pogovoru, in ko bo presežen prag kontekstnega okna, lahko to povzroči izčrpanje kontekstnega okna.
- Povečanje potrebe po operacijah stiskanja: da bi se izognili izčrpanju kontekstnega okna, je treba pogovor stisniti, ko število oznak preseže prag.
3. Vidik tveganja neuspešnega zadetka v predpomnilniku
- Različne operacije zlahka sprožijo neuspešen zadetek v predpomnilniku: če podaljšanje poziva vključuje spreminjanje orodij, ki so na voljo modelu, ciljnega modela, konfiguracije peskovnika itd., bo to dodatno povečalo tveganje neuspešnega zadetka v predpomnilniku.
- Orodje MCP povečuje zapletenost: strežnik MCP lahko dinamično spreminja seznam orodij, ki so na voljo, in odzivanje na ustrezna obvestila v dolgotrajnih pogovorih lahko povzroči neuspešen zadetek v predpomnilniku.
Referenčne informacije: 《Unrolling the Codex agent loop》Vir: OpenAI





