AI dla początkującychPrzewodnik
Dlaczego agenci AI zużywają tak wiele tokenów (przykład 20 kroków)
Agent AI wysyła ponownie swoją historię, listę narzędzi i wyniki narzędzi na każdym kroku. Zobacz, gdzie idą tokeny, na przykładzie 20 kroków.

Na tej stronie
Zadajesz agentowi jedno pytanie, on pracuje kilka minut, a strona zużycia pokazuje setki tysięcy tokenów. Nic nie jest zepsute. Agent to pętla, a każde jej okrążenie wysyła ponownie wszystko, co powiedziano do tej pory (listę narzędzi, historię, cokolwiek zwróciły narzędzia) jako tokeny wejściowe. Odpowiedź, którą pisze, jest malutka. To, co czyta w kółko, już nie.
Czym jest agent, w jednym obrazku#
Model czatu odpowiada raz. Agent to ten sam model w pętli z narzędziami: przeczytaj plik, przeszukaj sieć, uruchom polecenie. A model nie pamięta nic między wywołaniami. Wyobraź sobie asystenta, który za każdym razem, gdy odłoży słuchawkę, zapomina wszystko: za każdym razem, gdy dzwoni ponownie, czytasz notatki od początku, a potem dodajesz jedną linijkę. Tak właśnie działa API.
Dokumentacja Anthropic dotycząca użycia narzędzi (sprawdzona 26 października 2026) opisuje tę pętlę tak:
- Twoja aplikacja wysyła wiadomość użytkownika i listę narzędzi.
- Model odpowiada blokiem
stop_ireason: "tool_ use" tool_use: które narzędzie, z jakimi argumentami. - Twoja aplikacja uruchamia narzędzie i wysyła drugie żądanie. Zawiera ono wcześniejsze wiadomości, wywołanie narzędzia przez model, blok
tool_resulti tę samą listę narzędzi. - Model odpowiada albo prosi o kolejne narzędzie, i pętla kręci się dalej.
Ta sama strona mówi, że żądania użycia narzędzi są rozliczane na podstawie całkowitego wysłanego wejścia, w tym parametru tools, plus wyjście. Więc krok 3 nigdy nie jest „tylko nową częścią”: to znowu cała rozmowa.
Request 1 tools + system + task
Request 2 tools + system + task + call 1 + result 1
Request 3 tools + system + task + call 1 + result 1 + call 2 + result 2
...To ten sam mechanizm co w dlaczego długa rozmowa kosztuje więcej, tylko szybszy. Rozmowa rośnie o jedną wiadomość, gdy piszesz. Agent rośnie o dwa bloki na każdym kroku, a nikt nic nie pisze.
Trzy rzeczy jadą z każdym krokiem#
Lista narzędzi. Nazwy, opisy i schematy parametrów każdego narzędzia trafiają do każdego żądania, nawet gdy model nie użyje żadnego z nich w tej turze. Dokumentacja dodaje mały ekstra: przy włączonych narzędziach API dodaje własny prompt użycia narzędzi, 286 tokenów w Claude Sonnet 5.5, Opus 5.5 i Haiku 5.5, a inne modele mają inne liczby.
Historia. Twoje zadanie, wcześniejsze wywołania narzędzi przez model, jego notatki.
Wynik narzędzia. To jest ten podstępny. Plik, który przeczytał agent, strona wyników wyszukiwania, log testów: gdy raz trafi do historii, płacisz za niego ponownie na każdym późniejszym kroku.
Token to mały kawałek tekstu, mniej więcej słowo lub część słowa, i to za niego płacisz.
Przebieg 20 kroków, policzony#
Załóżmy, że uruchamiasz małego agenta kodującego z trzema narzędziami (czytaj plik, przeszukaj sieć, uruchom testy) i dajesz mu zadanie, które zajmuje 20 kroków. Przyjmij takie założenia:
- definicje narzędzi: 1 500 tokenów, prompt systemowy: 500, twoje zadanie: 200, więc każde żądanie startuje od 2 200 tokenów;
- na każdym kroku model pisze wywołanie narzędzia o 150 tokenach, a narzędzie zwraca 800 tokenów;
- oba te elementy trafiają do historii i do każdego kolejnego żądania.

Aby dostać sumę przebiegu, zsumuj wszystkie 20 żądań. Baza 2 200 jest wysyłana 20 razy, a rundy są przenoszone przez późniejsze kroki: krok 1 nie przenosi żadnej, krok 2 jedną, i tak dalej aż do 19, co daje 190 rund w sumie.
20 × 2 200 = 44 000
950 × 190 = 180 500
44 000 + 180 500 = 224 500 tokenów wejściowych i 20 × 150 = 3 000 tokenów wyjściowych.
Agent napisał 3 000 tokenów, a przeczytał 224 500. Tokeny wyjściowe kosztują więcej za sztukę niż wejściowe (zobacz tokeny wejściowe vs wyjściowe), ale jest ich tak mało, że o rachunku i tak decyduje strona wejściowa. Oto ten przebieg w obecnych cenach:
| Model | Wejście $/1M | Wyjście $/1M | Koszt | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.0046 | $0.0095 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.0037 | $0.0111 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0117 | $0.071 |
224 500 tokenów wejściowych i 3000 tokenów wyjściowych łącznie. Ceny za 1 mln tokenów są aktualne i zmieniają się wraz z naszymi taryfami; kolumna OpenRouter pokazuje ceny referencyjne dla tego samego obciążenia.
W DeepSeek-V4-Flash jeden taki przebieg kosztuje $0.0037, w GLM-5.3-Flash $0.0046. Sto przebiegów to 22 450 000 tokenów wejściowych i 300 000 wyjściowych: $0.367 w DeepSeek-V4-Flash. Powyższa tabela liczy wejście i wyjście razem, a w sumie modele tam wychodzą taniej niż OpenRouter.
Liczba kroków ma większe znaczenie, niż się wydaje. Przebieg 5 kroków przy tych samych założeniach:
5 × 2 200 = 11 000
950 × 10 = 9 500
11 000 + 9 500 = 20 500 tokenów wejściowych. Cztery razy więcej kroków dało około jedenaście razy więcej wejścia, bo każdy nowy krok odczytuje też wszystkie stare.
Gdzie ciąć: cztery nawyki#
Wynik jednego narzędzia to najłatwiejsze miejsce do oszczędzania. Powiedzmy, że uruchomienie testów w kroku 3 zwraca log o 4 000 tokenów. Jest potem wysyłany ponownie przez 17 kolejnych żądań:
- przed: 4 000 × 17 = 68 000 tokenów wejściowych przenoszonych przez ten jeden log;
- po, jeśli narzędzie zwraca tylko 40 istotnych linii (około 400 tokenów): 400 × 17 = 6 800.
To samo zadanie, ta sama odpowiedź, jedna dziesiąta wejścia z tego jednego wyniku. To daje cztery nawyki:
- Zwracaj mniej z narzędzi. Linie wokół błędu, nie cały log; funkcję, nie cały plik. Dłuższe omówienie jest w trzymaniu wyników narzędzi poza kontekstem.
- Daj agentowi mniej narzędzi. Każda definicja jedzie z każdym żądaniem.
- Ogranicz liczbę kroków i zacznij świeże zadanie, gdy stara historia przestaje mieć znaczenie.
- Sumuj zużycie każdego kroku i zatrzymaj przebieg przy budżecie wybranym z góry. Po stronie szacowania zobacz jak oszacować koszt agenta AI.
Policz własny przebieg#
Każda odpowiedź podaje, ile tokenów przyjęła i wypuściła, w polu usage. Zsumuj je po wszystkich krokach i masz prawdziwe liczby dla swojego agenta zamiast moich założeń. Szkic z OpenAI Python SDK wskazanym na CheapTokens (messages i tools należą do twojego agenta):
from openai import OpenAI
client = OpenAI(base_url="https://api.cheaptokens.dev/v1", api_key="YOUR_API_KEY")
total_in = total_out = 0
for step in range(20): # your agent loop
resp = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
messages=messages,
tools=tools,
)
total_in += resp.usage.prompt_tokens
total_out += resp.usage.completion_tokens
# ...run the tool, append the result to messages
print(total_in, total_out)Obie sumy wpisują się wprost do powyższej tabeli kosztów. Przy tak długich historiach DeepSeek-V4-Flash daje okno kontekstu 380K i do 32 768 tokenów wyjściowych na odpowiedź, w jednej cenie o każdej porze; GLM-5.3-Flash ma kontekst 390K i do 8 192 tokenów wyjściowych. Konfiguracja jest w dokumentacji, aktualna cena każdego modelu jest na stronie cen, a model ma własną stronę, tani DeepSeek.



