Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
ai:platformy:codex:autokompakce-a-kontextove-okno [28.07.2026 10:45] – Upřesněn zásadní rozdíl mezi blokujícím hookem Codexu a vypnutím kompaktace v Claude Code Petr Nosekai:platformy:codex:autokompakce-a-kontextove-okno [28.07.2026 10:55] (aktuální) – Vymezeno srovnání předplatných a výslovně vyloučeno API Petr Nosek
Řádek 1: Řádek 1:
-====== Automatická kompaktace a kontextové okno Codex CLI ======+====== Automatická kompaktace a kontextové okno Codex CLI přes předplatné ======
  
 //Vytvořeno: **28.7.2026** | Aktualizováno: **~~LASTMOD~~**// //Vytvořeno: **28.7.2026** | Aktualizováno: **~~LASTMOD~~**//
  
-[[https://developers.openai.com/codex/quickstart?setup=cli|Codex CLI]] při dlouhé práci automaticky zkracuje historii konverzace. Tento zápisek zachycuje [[https://opencode.e-nosek.cz/L2hvbWUvYWl3b3JrL3NjcmF0Y2g/session/ses_05880d56cffeCxn2QzVW0phIb8|řízený test přes ChatGPT OAuth]], který ověřil praktický práh kompaktace pro GPT-5.6 Luna, viditelnost události a možnost automatickou kompaktaci blokovat.+[[https://developers.openai.com/codex/quickstart?setup=cli|Codex CLI]] při dlouhé práci automaticky zkracuje historii konverzace. Tento zápisek vychází z [[https://opencode.e-nosek.cz/L2hvbWUvYWl3b3JrL3NjcmF0Y2g/session/ses_05880d56cffeCxn2QzVW0phIb8|řízených testů přes ChatGPT OAuth]] a srovnává dostupný nezkrácený kontext v používaných coding agentech. 
 + 
 +> **Rozsah zjištění:** Článek se týká výhradně používání přes **předplatná**: ChatGPT OAuth v Codexu a aktuálně používaného předplatného v Claude Code. **OpenAI ani Anthropic API nebylo testováno.** API může mít jiné limity, zejména pro GPT-5.6 v Codexu z toho nelze vyvozovat žádný API limit.
  
 ===== Shrnutí ===== ===== Shrnutí =====
  
-Codex provedl automatickou kompaktaci ještě ed odesláním dalšího velkého požadavku. Stalo se to i po jednorázovém nastavení ''model_auto_compact_token_limit=1000000'', protože tato volba nastavuje práh, nikoli vypnutí.+Hlavní praktický rozdíl není jen způsob ovládání kompaktace, ale dostupná velikost nezkráceného kontextu es předplatné:
  
-V testovaném neinteraktivním režimu Codex uživatele na kompaktaci neupozornilna standardní výstup vrátil pouze ''OK''. Událost ''context_compacted'' byla dohledatelná až ve strojovém transcriptu JSONL.+  * aktuálně používaný Claude Code bez automatické kompaktace: **1 000 000 tokenů**; 
 +  * testovaný Codex CLI přes ChatGPT OAuthautomatický provozní práh **258 400 tokenů**.
  
-Codex nemá jednoduchý boolean epínač pro zákaz automatické kompaktace. [[https://developers.openai.com/codex/hooks/|Hook PreCompact]] sice umí automatickou kompaktaci před provedením zastavitale zároveň zastaví celý turnNejde tedy ekvivalent pokračování v práci s nezměněným kontextem; jde o ochranu ed tichou ztrátovou transformací.+Claude Code tedy v tomto srovnání udrží ibližně **3,9× více** původní historieCodex vyžaduje rozhodnutí kompaktaci, změně kontextu nebo rozdělení úlohy ibližně o 741 600 tokenů dříve.
  
-===== Rozsah testu =====+Oba nástroje nakonec narazí na fyzický limit svého kontextového okna. Nelze současně zachovat celý raw kontext, pokračovat v témž threadu a získat další reasoning nebo výstup, pokud už se vše nevejde do dostupného okna.
  
-Test běžel přes ChatGPT OAuth, nikoli přes API klíč, s těmito parametry:+===== Co bylo ověřeno v Codexu přes ChatGPT OAuth =====
  
-  * Codex CLI ''0.145.0'', +Test běžel v Codex CLI ''0.145.0'', s modelem ''gpt-5.6-luna'', reasoning ''low'' a bez API klíče.
-  * model ''gpt-5.6-luna'', +
-  * reasoning ''low''+
-  * nová čistá session, +
-  * jednorázově nastavený práh ''model_auto_compact_token_limit=1000000''.+
  
-Modelový katalog doručený Codexu pro tento účet uváděl metadata ''context_window272000'' a ''effective_context_window_percent: 95''. Codex proto v transcriptu hlásil provozní okno ''model_context_window: 258400'' tokenů.+Modelový katalog doručený Codexu pro tento účet uváděl:
  
-===== Výsledek testu prahu =====+<code json> 
 +
 +  "context_window": 272000, 
 +  "effective_context_window_percent": 95, 
 +  "model_context_window": 258400 
 +
 +</code>
  
 Dva velké požadavky prošly bez kompaktace: Dva velké požadavky prošly bez kompaktace:
Řádek 32: Řádek 37:
   * přibližně 252 983 vstupních tokenů.   * přibližně 252 983 vstupních tokenů.
  
-Při dalším rozšíření kontextu Codex před odesláním dalšího požadavku vytvořil v transcriptu událost:+Při dalším rozšíření Codex před dalším požadavkem vytvořil v uloženém transcriptu událost:
  
 <code json> <code json>
Řádek 40: Řádek 45:
 </code> </code>
  
-Praktický práh pro tento běh byl tedy přibližně 258 400 tokenůTest neurčil nejvyšší velikost požadavku, kterou by ještě přijal backend: Codex historii zkompaktoval dřív, než bylo možné odeslat větší nezkrácený požadavek.+V neinteraktivním režimu s JSON výstupem nebyla kompaktace uživateli oznámena; standardní výstup vrátil pouze ''OK''Událost byla dohledatelná až v rollout JSONL.
  
-===== Viditelnost kompaktace =====+===== Proč vyšší práh kompaktaci nevypne =====
  
-V neinteraktivním režimu Codexu s JSON výstupem se kompaktace neobjevila jako běžné uživatelské sděleníJejí výskyt byl potvrzen pouze v uloženém rollout JSONL jako ''context_compacted''.+''model_auto_compact_token_limit'' nastavuje práh, ne vypínačJednorázové nastavení ''model_auto_compact_token_limit=1000000'' automatickou kompaktaci nevypnulo.
  
-Toto zjištění se vztahuje k testovanému neinteraktivnímu běhuChování TUI nebylo v tomto testu ověřeno, proto z něj nelze vyvozovat, zda interaktivní rozhraní událost zobrazuje jinak.+Aktuální implementace Codexu podle [[https://github.com/openai/codex/blob/main/codex-rs/protocol/src/openai_models.rs|zdrojového kódu OpenAI Codex]] omezuje konfigurovanou hodnotu interním limitem kontextu. Vyšší hodnota proto nemůže zajistit zachování nezkrácené historie.
  
 ===== Blokování automatické kompaktace ===== ===== Blokování automatické kompaktace =====
  
-''model_auto_compact_token_limit'' nastavuje práh, ne zákaz automatické kompaktaceAktuální implementace Codexu podle [[https://github.com/openai/codex/blob/main/codex-rs/protocol/src/openai_models.rs|zdrojového kódu OpenAI Codex]] omezuje nakonfigurovanou hodnotu na interní kontextový limit. Vyšší hodnota proto nemůže zajistit zachování nezkrácené historie.+Codex nemá jednoduchý boolean přepínač typu ''disable_auto_compaction''. [[https://developers.openai.com/codex/hooks/|Hook PreCompact]] může zachytit pouze automatickou kompaktaci přes matcher ''^auto$''; ruční ''/compact'' zůstane dostupný.
  
-Místo booleanu typu ''disable_auto_compaction'' je možné použít hook ''PreCompact''. Matcher ''^auto$'' zachytí pouze automatickou kompaktaci; ruční ''/compact'' tím zůstane dostupný. Hook musí vrátit ''continue: false'', aby Codex zastavil běh před ztrátovou transformací.+Hook musí vrátit ''continue: false''. Tím ale Codex nezíská více kontextu: zastaví celý turn před kompaktací i před odesláním přeteklého požadavku na backend.
  
-==== Ověřený hook ====+==== Ověřený end-to-end test hooku ====
  
-Následující postup byl ověřen v izolovaném testu. Dočasný profil nastavil práh na jeden token, aby se hook vyvolal bez dlouhého požadavku. Hook obdržel ''trigger: "auto"'', vrátil ''continue: false'' a Codex již neposlal očekávanou další modelovou odpověď.+Test s uměle nízkým prahem ověřil celý průběh: 
 + 
 +  - První modelový krok vrátil ''FIRST''. 
 +  - Dočasný globální ''PreCompact'' hook blokoval pouze ''trigger: "auto"''
 +  - Při druhém požadavku Codex hook skutečně obdržel
 + 
 +<code json> 
 +
 +  "hook_event_name": "PreCompact", 
 +  "trigger": "auto" 
 +
 +</code> 
 + 
 +  - Codex už neposlal promptem požadovanou odpověď ''SECOND''
 + 
 +Blokující hook tedy **neodešle přeteklý požadavek na backend**. Další pokus ve stejném nezměněném kontextu narazí na tutéž bránu znovu.
  
 Konfigurace může být jednou globálně v ''~/.codex/config.toml'', takže ji není nutné přidávat do každého projektu: Konfigurace může být jednou globálně v ''~/.codex/config.toml'', takže ji není nutné přidávat do každého projektu:
Řádek 78: Řádek 98:
 </code> </code>
  
-Hook je nutné při prvním použití schválit přes ''/hooks''Nejde o přepnutí interní politiky Codexu: klient se stále pokusí automatickou kompaktaci vyvolat, ale hook zastaví celý turn před zkrácením historie. Se stejným nezměněným kontextem se při dalším pokusu vyvolá znovu. Pokračování proto vyžaduje ruční ''/compact'', zkrácení aktivního kontextu nebo změnu zadání.+Hook je nutné při prvním použití schválit přes ''/hooks''Po jeho zastavení je potřeba udělat ruční ''/compact'', zkrátit aktivní kontext, založit nový thread se selektivním handoffem nebo změnit zadání.
  
 ===== Kontext a výstupní rozpočet ===== ===== Kontext a výstupní rozpočet =====
Řádek 91: Řádek 111:
 Hodnota 128 tisíc tokenů je maximální výstup na jeden požadavek, ne další kapacita nad zaplněné kontextové okno. Při aktivním vstupu kolem 253 tisíc tokenů proto nezbývá prostor pro 128 tisíc tokenů výstupu; zbývající rozpočet dále snižují systémové instrukce, tool output a reasoning. Hodnota 128 tisíc tokenů je maximální výstup na jeden požadavek, ne další kapacita nad zaplněné kontextové okno. Při aktivním vstupu kolem 253 tisíc tokenů proto nezbývá prostor pro 128 tisíc tokenů výstupu; zbývající rozpočet dále snižují systémové instrukce, tool output a reasoning.
  
-Kompaktace se týká historie před dalším požadavkem, ne právě generovaného výstupu. Během generování se odpověď nekompaktujepo vyčerpání dostupného výstupního rozpočtu se odpověď ukončí. Její hotový obsah se může stát předmětem až některé budoucí kompaktace. +Kompaktace se týká historie před dalším požadavkem, ne právě generovaného výstupu. Během generování se odpověď nekompaktujepo vyčerpání dostupného výstupního rozpočtu se odpověď ukončí.
- +
-===== Dopad na workflow ===== +
- +
-Vzniká trade-off mezi věrností podkladů a prostorem pro další reasoning či výstup: +
- +
-  * **Bez kompaktace:** zůstane doslovný primární kontext, ale při velkém vstupu může zbýt jen malý prostor pro reasoning a odpověď. +
-  * **S kompaktací:** uvolní se prostor pro další práci, ale část historie nahradí ztrátové shrnutí. Dlouhá nebo elegantní odpověď pak nemusí vycházet z úplného podkladu. +
-  * **S blokujícím hookem:** Codex nezmění historii automaticky, ale přeruší aktuální turn. Bez manuální změny kontextu nebo ruční kompaktace nelze v práci pokračovat. +
- +
-Pro kritický primární materiál je bezpečnější zachovat původní kontext, chtít kratší strukturovaný výstup nebo práci rozdělit do etap. Pokud je shrnutí přijatelné, je vhodné spustit ruční kompaktaci, zkontrolovat její výsledek a teprve potom pokračovat.+
  
-===== Srovnání s Claude Code =====+===== Srovnání předplatných =====
  
-[[https://code.claude.com/docs/en/how-claude-code-works|Claude Code]] také ve výchozím nastavení používá automatickou kompaktaci; může mazat starší tool outputy a sumarizovat konverzaciNa rozdíl od Codexu ji lze přímo vypnout přes [[https://code.claude.com/docs/en/settings|nastavení]] ''autoCompactEnabled: false''.+[[https://code.claude.com/docs/en/how-claude-code-works|Claude Code]] také ve výchozím nastavení používá automatickou kompaktaci. Přes [[https://code.claude.com/docs/en/settings|nastavení]] ''autoCompactEnabled: false'' ji lze přímo vypnout.
  
-Rozdíl je výraznější než pouhá konfigurace. Po nastavení ''autoCompactEnabled: false'' Claude Code nepřerušuje turn jen proto, že dosáhl vlastního prahu pro automatickou kompaktaci; ponechává nezměnou historii, dokud se požadavek vejde do skutečného kontextového okna. Uživatel tak může v rámci dostupné kapacity pokračovat bez kompaktace sám rozhodnout, kdy provede ztrátovou transformaci.+^ Nástroj přes předplatné ^ Dostupný nezkrácený kontext v tomto srovnání ^ Chování při naplnění ^ 
 +Claude Code | přibližně 1 000 000 tokenů | Uživatel může ponechat kompaktaci vypnutou až k limitu tohoto okna. | 
 +| Codex CLI přes ChatGPT OAuth | praktický práh 258 400 tokenů | Codex provede kompaktaci nebo s blokujícím hookem zastaví turn už před odesláním. | 
 +| OpenCode přes OpenAI OAuth | limit nezjištěn samostatným měřením | S vypnutou kompaktací odesílá požadavek; ověřená odpověď backendu byla ''context_length_exceeded''|
  
-V Codexu blokující ''PreCompact'' hook funguje jinak: okamžiku jeho interního prahu klient zastaví turn před dalším modelovým krokem. Hook tedy zajišťuje, že Codex historii potichu nezmění, ale nedává možnost pokračovat se stejným kontextem za tímto prahemPro ručně řízenou práci je to zásadní provozní i UX rozdíl.+Claude Code proto tomto konkrétním srovnání neposkytuje nekonečný kontext, ale poskytuje téměř čtyřnásobnou kapacitu pro práci bez ztrátové transformaceCodex přes ChatGPT předplatné v testované konfiguraci vyžaduje zásah výrazně dříve.
  
 ===== Zdroje ===== ===== Zdroje =====
  
-  * [[https://opencode.e-nosek.cz/L2hvbWUvYWl3b3JrL3NjcmF0Y2g/session/ses_05880d56cffeCxn2QzVW0phIb8|Řízený test kontextového okna, kompaktace a hooku Codex CLI]]+  * [[https://opencode.e-nosek.cz/L2hvbWUvYWl3b3JrL3NjcmF0Y2g/session/ses_05880d56cffeCxn2QzVW0phIb8|Řízené testy Codex CLI přes ChatGPT OAuth]]
   * [[https://developers.openai.com/codex/quickstart?setup=cli|OpenAI Codex – CLI quickstart]]   * [[https://developers.openai.com/codex/quickstart?setup=cli|OpenAI Codex – CLI quickstart]]
   * [[https://developers.openai.com/codex/hooks/|OpenAI Codex – Hooks]]   * [[https://developers.openai.com/codex/hooks/|OpenAI Codex – Hooks]]
  • ai/platformy/codex/autokompakce-a-kontextove-okno.1785228331.txt.gz
  • Poslední úprava: 28.07.2026 10:45
  • autor: Petr Nosek