Strona główna / Rozdział 3 · Jak model pisze i ile to kosztuje
Ostatnia zmiana · 6 min czytania
Okno kontekstowe i agent
Model niczego nie pamięta między requestami, wie tylko to, co dostał w bieżącym. Context window to wspólny limit tokenów wejścia i wyjścia jednego requestu. Agent w każdej turze wysyła całą rosnącą historię, więc płaci za nią wielokrotnie, a jakość odpowiedzi spada wraz z jej długością.
Po ludzkuModel to konsultant z amnezją. Przed każdą rozmową dostaje teczkę i wie tylko to, co w niej jest. Teczka ma ograniczoną grubość, a agent przy każdym kroku dokłada do niej kartki.
Przesuń suwak tur agenta. Zobacz, co zapełnia okno i jak szybko rośnie łączny koszt wejścia
Liczby poglądowe. Okno 200 tys. tokenów, z czego 32 tys. zarezerwowane na odpowiedź i myślenie. Każda tura dokłada 6 tys. tokenów wyników narzędzi i 300 tokenów odpowiedzi. Stawki jak w temacie „Prompt caching”: 3 USD za milion tokenów wejściowych, zapis do cache’u 125%, odczyt 10%. Bez kosztu wyjścia.
Co liczy się do limitu
- Wszystko w requeście: system prompt, definicje narzędzi (także z serwerów MCP), cała historia z wynikami narzędzi, obrazy i PDF-y, a do tego wszystko, co model wygeneruje w tej turze, łącznie z myśleniem. Liczy się w tokenach tokenizera danego modelu, więc ten sam tekst u różnych dostawców daje różne liczby (temat „Tokeny”). Przed wysłaniem policzysz je endpointem do liczenia tokenów.
- Część narzutu jest stała i płacona w każdej turze: definicje kilkudziesięciu narzędzi to łatwo kilkadziesiąt tysięcy tokenów, zanim agent cokolwiek zrobi (temat „Narzędzia (function calling)”).
Limit wejścia i limit wyjścia
- Okno obejmuje wejście i wyjście razem. Osobno działa limit wyjścia jednego requestu (
max_tokens), dużo mniejszy: we wrześniu 2026 modele Claude z oknem 1 mln tokenów generują najwyżej 128 tys. na request, a modele GPT-6 w OpenAI mają okno 1,05 mln, z czego najwyżej 922 tys. na wejście, i 128 tys. wyjścia. - API zwykle odrzuca za długie wejście, zwracając błąd. Ucięcie historii od najstarszych wiadomości to decyzja twojej aplikacji albo frameworka, często podejmowana po cichu.
- Gdy wyjście dojdzie do limitu, generacja staje w pół zdania:
stop_reason: "max_tokens"w Anthropic (w Claude 4.5+ także"model_context_window_exceeded", gdy wejście z wyjściem zapełnią okno),finish_reason: "length"w Chat Completions. JSON jest wtedy niepełny, a model rozumujący może nie dojść do odpowiedzi. Sprawdzaj powód zatrzymania w kodzie. - Długi kontekst bywa droższy za token: Gemini 3.1 Pro powyżej 200 tys. tokenów wejścia i modele GPT-6 powyżej 272 tys. liczą cały request 2 razy drożej za wejście i cache oraz 1,5 razy drożej za wyjście. Modele Claude z oknem 1 mln mają stałą stawkę (wrzesień 2026).
Koszt rośnie z każdą turą
- W pętli agenta (temat „Pętla agenta”) tura t wysyła wszystko z wcześniejszych tur plus nowy wynik. Przy stałym przyroście na turę łączna liczba tokenów wejściowych rośnie z kwadratem liczby tur. W widżecie 24 tury to już ok. 2,2 mln tokenów wejściowych, choć każdy request mieści się w oknie 200 tys.
- W agentach wejście dominuje: Manus podaje średni stosunek tokenów wejściowych do wyjściowych ok. 100:1. Rachunek obniża więc przede wszystkim prompt caching. Dzięki masce przyczynowej K i V starych tokenów się nie zmieniają, więc dopóki historię się tylko dopisuje, każda tura czyta z cache’u wszystko poza najnowszą częścią (temat „Prompt caching”). Odczyt kosztuje ok. 10% ceny, ale krzywa zostaje kwadratowa.
- Rośnie też opóźnienie. Prefill części spoza cache’u wydłuża czas do pierwszego tokena, a każdy krok decode czyta cały KV cache, więc długi kontekst spowalnia także pisanie (temat „Pętla generowania i KV cache”).
- Gdy narzędzie pracuje, model nic nie liczy, a KV cache rozmowy dalej zajmuje pamięć GPU. Obciążony serwer może zrzucić cache do RAM-u albo na SSD i wczytać go z powrotem, gdy przyjdzie wynik: szybciej, niż liczyłby długą historię od nowa, ale nie bez kosztu dla czasu do pierwszego tokena (Glenn Lockwood, wrzesień 2026). Przez API widać tylko czas życia wpisu w cache’u, a u Anthropic liczy się on od startu requestu: generacja i wolne testy mogą trwać dłużej, niż żyje 5-minutowy wpis, a następna tura zapłaci za zapis i pełny prefill całej historii. Przy narzędziach działających minutami opłaca się wpis godzinny.
Context rot: jakość spada z długością kontekstu
- Modele działają gorzej na długim wejściu, zanim okno się skończy. Test needle-in-a-haystack, czyli znalezienie jednego zdania pasującego dosłownie do pytania, wychodzi prawie idealnie i niewiele mówi. W RULER (2024) z 17 modeli deklarujących co najmniej 32 tys. tokenów tylko połowa trzymała zadowalający wynik przy 32 tys.
- Spadek jest większy, gdy pytanie i odpowiedź nie mają wspólnych słów: w NoLiMa (2025) 11 z 13 modeli przy 32 tys. tokenów spadło poniżej połowy swojego wyniku z krótkiego kontekstu. Chroma (2025, 18 modeli) pokazała spadek wynikający z samej długości, nawet w prostych zadaniach, silniejszy przy podobnych, ale nieistotnych fragmentach.
- Położenie też ma znaczenie. W badaniu Lost in the Middle (2023) modele najlepiej korzystały z informacji na początku i na końcu kontekstu, a wyraźnie gorzej ze środka. Ważną instrukcję i pytanie stawia się więc na końcu, za długim materiałem.
- Pojemność okna to nie budżet do wypełnienia. Testuj swój przypadek na długościach, które naprawdę wysyłasz, a kontekst utrzymuj krótki i trafny. Jak to robić (przycinanie wyników narzędzi, kompakcja, subagenci, pamięć poza oknem), opisuje temat „Context engineering i pamięć”.
Sprawdź się
Co liczy się do context window i czemu długa sesja agenta jest droga i coraz słabsza?
Model jest bezstanowy i widzi tylko bieżący request. Okno to limit tokenów na request, wspólny dla system promptu, definicji narzędzi, historii z wynikami narzędzi i tego, co model wygeneruje, łącznie z myśleniem. Limit samego wyjścia jest osobny i dużo mniejszy. Agent w każdej turze wysyła całą historię, więc łączna liczba tokenów wejściowych rośnie z kwadratem liczby tur. Prompt caching obniża cenę, ale nie kształt krzywej. Jakość spada z długością na długo przed końcem okna, więc kontekst warto trzymać krótki i testować na realnych długościach.
In English
The model is stateless and only sees the current request. The window caps tokens per request and is shared by the system prompt, tool definitions, history with tool results and everything the model generates, thinking included. The output limit is separate and much smaller. An agent resends the whole history every turn, so cumulative input tokens grow quadratically with turns. Prompt caching lowers the price, not the shape of the curve. Quality degrades with length long before the window is full, so keep context lean and test at realistic lengths.
Pytania pogłębiające (4)
- Co to context rot?
- Spadek jakości z długością wejścia, zanim okno się skończy. Jest silniejszy, gdy w kontekście leżą podobne, ale nieistotne fragmenty, i gdy odpowiedź nie powtarza słów z pytania, więc test needle-in-a-haystack go nie pokazuje.
- Model ma okno 1 mln tokenów. Czemu nie wrzucić całej bazy wiedzy do promptu?
- Bo każdy request płaci za cały milion, u części dostawców drożej powyżej progu, czas do pierwszego tokena rośnie, a jakość spada z długością. Przy małym, stałym zbiorze z prompt cachingiem to rozsądne, przy dużym albo zmiennym wygrywa wyszukiwanie (temat „RAG”).
- Agent przepełnia okno po 40 turach. Co robisz?
- Najpierw zmierz, co zajmuje okno, zwykle stare wyniki narzędzi i definicje narzędzi. Potem przytnij wyniki u źródła, wyczyść stare, przenieś poboczne zadania do subagentów, a dopiero na końcu skompaktuj historię (temat „Context engineering i pamięć”).
- Czy API trzymające historię po stronie serwera obniża koszt?
- Nie. Funkcje takie jak previous_response_id w Responses API OpenAI oszczędzają ci przesyłania, ale cała historia i tak trafia do modelu i jest liczona jako wejście. Koszt obniża dopiero prompt caching albo krótszy kontekst.
Źródła
- Dokumentacja Claude: context windows
- RULER: What’s the Real Context Size of Your Long-Context Language Models? (arXiv)
- NoLiMa: Long-Context Evaluation Beyond Literal Matching (arXiv)
- Lost in the Middle: How Language Models Use Long Contexts (arXiv)
- Glenn Lockwood: What are KV caches really? (wrzesień 2026)