Chcete porozumět agentu Codex? Tuto hloubkovou analýzu si nesmíte nechat ujít!
Chcete porozumět agentu Codex? Tuto hloubkovou analýzu si nesmíte nechat ujít!
OpenAI právě udělala něco „neobvyklého“.
Obvykle OpenAI vydává silnější modely (jako o1), ale tentokrát vydali hloubkový technický blog «Unrolling the Codex agent loop», který nejenže zpřístupnil klíčovou logiku Codex CLI, ale také krok za krokem rozebral, jak vlastně funguje vyspělý kódovací agent (Coding Agent).

V době, kdy si Claude Code a Cursor získávají obrovskou popularitu, je tento článek od OpenAI nejen ukázkou síly, ale také „průvodcem pro architekty agentů, jak se vyhnout nástrahám“. Ať už chcete dobře používat nástroje pro programování s umělou inteligencí, nebo si chcete sami vyvinout agenta, tento článek stojí za to si slovo od slova prostudovat.
Celý text má více než 8300 slov a jeho přečtení zabere přibližně 20 minut.
Nejprve, co je Codex CLI?
Codex CLI je open-source nástroj pro kódování agentů od OpenAI, který lze spouštět na lokálním počítači nebo instalovat v editoru kódu. Podporuje VS Code, Cursor, Windsurf atd.
Adresa open source: https://github.com/openai/codex

Agent Loop (cyklus agenta), který bude představen, je klíčovou logikou Codex CLI: je zodpovědný za koordinaci uživatele, modelu a volání modelu za účelem provádění interakcí mezi cennými nástroji.
Agent Loop (cyklus inteligentního agenta)
Model je pouze komponenta, agent (inteligentní agent) může tvořit produkt.
Jádrem každého AI Agenta je takzvaný „cyklus inteligentního agenta (Agent Loop)“. Schéma cyklu inteligentního agenta je znázorněno níže:

Obvykle si myslíme, že programování s umělou inteligencí je: „Já se ptám, on odpovídá“. Ale uvnitř Codex CLI je to složitý nekonečný cyklus...
Standardní Agent Loop obsahuje následující kroky:
- Uživatelské instrukce: Sada textových instrukcí zadaných uživatelem (například „refaktoruj tuto funkci“).
- Model inference: Model se rozhodne, zda odpoví přímo, nebo zavolá nástroj (Tool Call).
- Volání nástroje: Pokud se model rozhodne zavolat list files nebo run shell, CLI provede tyto příkazy lokálně.
- Pozorování (Observation): Výsledky provedení nástroje (kód, chyby, seznam souborů) jsou zachyceny.
- Cyklus: Tyto výsledky jsou připojeny k historii konverzace a znovu vloženy do modelu. Model po zobrazení výsledků rozhodne o dalším kroku.
- Ukončení: Dokud model neusoudí, že je úkol dokončen, a nevypíše konečnou odpověď.
Celý proces od „uživatelského vstupu“ po „odpověď inteligentního agenta“ se nazývá kolo konverzace (v Codexu se nazývá vlákno).

Jak konverzace postupuje, zvyšuje se i délka výzvy (Prompt) použité pro odvození modelu. Tato délka je důležitá, protože každý model má kontextové okno, které představuje maximální počet tokenů, které může model použít v jednom volání inference.
Model inference
Codex CLI odesílá HTTP požadavky na Responses API pro model inference. Codex používá Responses API k řízení cyklu agenta.
Co je Responses API?
Responses API je nová generace rozhraní pro vývoj inteligentních agentů, kterou OpenAI uvedla na trh v březnu 2025 a jejímž cílem je sjednotit konverzace, volání nástrojů a multimodální možnosti zpracování, aby vývojářům poskytla flexibilnější a výkonnější prostředí pro vytváření aplikací s umělou inteligencí.
Koncový bod Responses API používaný Codex CLI je konfigurovatelný a lze jej použít s jakýmkoli koncovým bodem, který implementuje Responses API.

Model provádí vzorkování (generování odpovědí)
HTTP požadavek odeslaný na Responses API spustí první „kolo“ v konverzaci Codex. Server streamuje odpověď zpět prostřednictvím Server-Sent Events (SSE).

Všimněte si, že výzva z předchozího kola je přesnou předponou nové výzvy. Tento návrh může výrazně zlepšit efektivitu následných požadavků – lze využít mechanismus ukládání výzev do mezipaměti.

Dopad neustálého prodlužování výzvy s rostoucím počtem kol
1. Z hlediska výkonu
- Zvýšení nákladů na vzorkování modelu: Neustálé prodlužování výzvy zvýší náklady na vzorkování modelu, protože proces vzorkování musí zpracovat více dat, což vede ke zvýšení výpočetního výkonu.
- Snížení efektivity mezipaměti: S neustálým prodlužováním výzvy s rostoucím počtem kol se zvyšuje obtížnost přesného porovnávání předpon a snižuje se pravděpodobnost zásahu do mezipaměti.
2. Z hlediska správy kontextového okna
- Snadné vyčerpání kontextového okna: Neustálé prodlužování výzvy způsobí rychlé zvýšení počtu tokenů v konverzaci a jakmile překročí prahovou hodnotu kontextového okna, může dojít k vyčerpání kontextového okna.
- Zvýšení nutnosti komprese: Aby se zabránilo vyčerpání kontextového okna, je nutné komprimovat konverzaci, když počet tokenů překročí prahovou hodnotu.
3. Z hlediska rizika neúspěšného zásahu do mezipaměti
- Více operací snadno způsobí neúspěšný zásah do mezipaměti: Pokud prodloužení výzvy zahrnuje změnu dostupných nástrojů modelu, cílového modelu, konfigurace sandboxu a dalších operací, dále se zvýší riziko neúspěšného zásahu do mezipaměti.
- Nástroje MCP zvyšují složitost: Server MCP může dynamicky měnit seznam poskytovaných nástrojů a reakce na související oznámení v dlouhých konverzacích může vést k neúspěšnému zásahu do mezipaměti.
Referenční informace: «Unrolling the Codex agent loop» Zdroj: OpenAI





