# Session lifecycle — kdy zůstat ve stejné session, kdy začít novou Návod pro práci s LLM agenty (Claude Code, nanobot, …). Vychází z lessons learned v tomto projektu (review smyčka, Solarflare, file-based komunikace) a z obecných mechanik kontextu. ## Rychlý rozhodovací test Na každou další operaci si polož jednu otázku: **Co další krok víc potřebuje — historii rozhodnutí, nebo svěží pohled?** | Další krok potřebuje | Kam | Proč | |---|---|---| | Vědět, co už padlo a proč | **stejná session** | decision history je v kontextu, agent drží odsouhlasená rozhodnutí | | Nezávazný, „čisté oči" | **nová session** | žádný anchoring na vlastní předchozí práci | | Obojí (typicky opravy po review) | **hybrid** | viz níž | A dva přepínače, které mají přednost: - **Session je „zkažená"** (2+ selhání stejné věci, chybová smyčka) → nová session. Selhané pokusy v kontextu táhnou model k jejich opakování. - **Proběhla kompakce / historie už není kompletní** → radši nová session + přečtené soubory (state, spec, diff) než práce z faded recollection. Půlzapamatovaná historie je horší než žádná. ## Kdy zůstat ve stejné session - **Sekvenční kroky jednoho úkolu** — další krok stojí na rozhodnutích předchozích (např. po review: provést opravy). - **Iterace na zadání** — requirements se teprve objevují, každá zpětná vazba mění chápání úkolu. - **Opravy po review** — závěry oponenty aplikuje session s plnou historií, ne nová, která by znovu otevírala uzavřené otázky. - **Krátké na sebe navazující operace** — cokoliv, co se vejde pohodlně do kontextu a sdílí cíl. ## Kdy začít novou session - **Review vlastní práce** — agent je anchorovaný na to, co sám napsal; nová session vidí jen výsledek a hodnotí objektivněji. - **Oponentura / second opinion** — ideálně jiný model/preset (procesní nezávislost, ne sdílený anchoring). - **Verifikace čistého refaktoru** — „zvenku se nic nezměnilo" umí ověřit jen někdo, kdo neví, co se uvnitř měnilo a proč. - **Nezávislý paralelní úkol** — nemíchat cizí kontext do session, která drží rozhodovací historii projektu. - **Chybová smyčka** — opakované selhání téhož úkolu; nová session bez pohledu na mrtvé pokusy. - **Změna tématu** — self-explanatory. - **Po kompakci** — když se plná historie už do okna nevešla a zbyl souhrn, chybí provenance rozhodnutí. ## Hybrid pattern (klíčový vzorec) Proces, který potřebuje obojí (svěží pohled i historii): 1. **Produkce** — v původní session (plná historie rozhodnutí). 2. **Review** — v čisté nové session, ideálně s omezeným mandátem („review jen security", „review jen API konzumenta") — omezený scope navíc brání reverzům odsouhlasených věcí. 3. **Závěry review** — zapiš jako **artefakt** (soubor), ne jako konverzaci. 4. **Opravy** — zpět v původní session, která artefakt přečte a aplikuje; drží se odsouhlasených rozhodnutí. Přenos mezi sessions je vždy **artefakt + role + zadání**, nikdy historie konverzace. Artefakt je jediný spolehlivý nosič: je v diffu, přežije kompakci, cituje se přesně. ## Mechaniky, které za tím stojí - **Anchoring** — model obhajuje vlastní předchozí výstup; čím déle v jedné session, tím menší šance, že najde vlastní chybu. - **Degradace pozornosti** — dlouhý kontext znamená horší využití informací uprostřed okna („lost in the middle"); rozhodnutí z úvodu session se přestávají uplatňovat. - **Chybové pokusy jsou gravitace** — selhané attempty v kontextu táhnou k jejich variacím, i když je to slepá ulička. - **Kompakce je ztrátová** — souhrn nezachová provenance (které rozhodnutí, proč, na základě čeho); session pak vypadá kompletně, ale není. ## Praktická pravidla - Jedna session = jeden cíl. Když se cíl splnil, další cíl = nová session. - Nová session se startuje **ze souborů** (state.md, spec, scénářová tabulka), ne z „prosím pokračuj" v chatu. - Každé odsouhlasené rozhodnutí během práce zapisovat průběžně (memory.md / decision log) — to je to, co hybrid přenáší, ne chat. - Review v nové session vždy s explicitním mandátem, ideálně jiným modelem. - Po dvou selháních téhož kroku: stop, rekonstruovat zkontextovatelný stav do souboru, restart v nové session.