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
ai:platformy:codex:autokompakce-a-kontextove-okno [28.07.2026 10:54] – Doplněn hlavní rozdíl 1M kontextu Claude Code versus 258k práh Codexu 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é testy přes ChatGPT OAuth]], které ověřily praktický práh kompaktace pro GPT-5.6 Luna, viditelnost události a chování blokujícího hooku.+[[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]] umí automatickou kompaktaci před provedením zastavitale tím zastaví celý turn ed odesláním přeteklého požadavku na backend. Chrání tedy před tichou ztrátovou transformací, nikoli před fyzickým limitem kontextového okna.+Claude Code tedy v tomto srovnání udrží ibližně **3,9× více** původní historieCodex vyžaduje rozhodnutí o 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ý end-to-end test hooku ==== ==== Ověřený end-to-end test hooku ====
Řádek 58: Řádek 63:
 Test s uměle nízkým prahem ověřil celý průběh: Test s uměle nízkým prahem ověřil celý průběh:
  
-  - První modelový krok v novém threadu vrátil ''FIRST''.+  - První modelový krok vrátil ''FIRST''.
   - Dočasný globální ''PreCompact'' hook blokoval pouze ''trigger: "auto"''.   - Dočasný globální ''PreCompact'' hook blokoval pouze ''trigger: "auto"''.
-  - Při druhém požadavku Codex hook skutečně zavolal s tímto vstupem:+  - Při druhém požadavku Codex hook skutečně obdržel:
  
 <code json> <code json>
Řádek 71: Řádek 76:
   - Codex už neposlal promptem požadovanou odpověď ''SECOND''.   - Codex už neposlal promptem požadovanou odpověď ''SECOND''.
  
-Hook tedy **neodešle přeteklý požadavek na backend**. Turn je ukončen před kompaktací i před další modelovou odpovědí. Další pokus ve stejném nezměněném kontextu narazí na tutéž bránu znovu.+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 93: Řá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. Pokračování vyžaduje ruční ''/compact'', zkrácení aktivního kontextu, nový thread se selektivním handoffem 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í kontextzalož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 106: Řá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. +
- +
-Pokud je současně potřeba zachovat celý původní raw kontext, pokračovat v témž threadu a získat další reasoning nebo výstup, po zaplnění context window je to fyzicky nemožné. Žádný klient tento limit neobejde. +
- +
-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 a OpenCode ===== +
- +
-[[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 konverzaci. Na rozdíl od Codexu ji lze přímo vypnout přes [[https://code.claude.com/docs/en/settings|nastavení]] ''autoCompactEnabled: false''+
- +
-===== Hlavní praktický rozdíl: dostupná kapacita ===== +
- +
-Porovnání se vztahuje k aktuálně používanému modelu v Claude Code s kontextovým oknem **1 000 000 tokenů** a k testovanému Codexu s provozním prahem **258 400 tokenů**. Claude Code proto bez kompaktace udrží přibližně **3,9× více** původního kontextu, než Codex dovolí před zásahem do historie nebo zastavením turnu.+
  
-Oba nástroje nakonec narazí na fyzický limit. Nejde ale o stejně vzdálený problém: Codex v tomto testu vyžaduje rozhodnutí o kompaktaci ibližně o 741 600 tokenů dříve. Pro dlouhé analytické nebo agentní workflow, kde je důležité zachovat doslovnou historii, je to hlavní provozní rozdíl.+===== Srovnání edplatných =====
  
-===== Jak se nástroje chovají na svém limitu =====+[[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.
  
-  * **Claude Code s vypnutou kompaktací:** zachovává historii až k přibližně jednomu milionu tokenů. Po dosažení svého skutečného limitu také nemůže pokračovat se všemi původními raw daty a vytvořit další reasoning nebo výstup. +^ Nástroj přes předplatné ^ Dostupný nezkrácený kontext v tomto srovnání ^ Chování při naplnění ^ 
-  * **OpenCode s vypnutou kompaktací:** pokusí se požadavek odeslat backend vrátí ''context_length_exceeded''+Claude Code přibližně 1 000 000 tokenů | Uživatel může ponechat kompaktaci vypnutou až k limitu tohoto okna| 
-  * **Codex s blokujícím hookem:** zastaví už klient před odesláním, takže místo backendové chyby vznikne kontrolované zastavení turnu zhruba kolem 258 400 tokenů v testované konfiguraci.+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''|
  
-Claude Code má navíc přímý a transparentní přepínač. Codex vyžaduje globální hook, který je potřeba vytvořit a schválit. Přesto je rozdíl dostupném nezkráceném kontextu důležitější než rozdíl v UX ovládání.+Claude Code proto v tomto konkrétním srovnání neposkytuje nekonečný kontext, ale poskytuje téměř čtyřnásobnou kapacitu pro práci bez ztrátové transformace. Codex přes ChatGPT předplatné testované konfiguraci vyžaduje zásah výrazně dříve.
  
 ===== Zdroje ===== ===== Zdroje =====
  
-  * [[https://opencode.e-nosek.cz/L2hvbWUvYWl3b3JrL3NjcmF0Y2g/session/ses_05880d56cffeCxn2QzVW0phIb8|Řízené testy 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.1785228875.txt.gz
  • Poslední úprava: 28.07.2026 10:54
  • autor: Petr Nosek