Wrappery Bash zużyły więcej tokenów niż siedmoschemowy Model Context Protocol (MCP) podczas sesji składającej się z 12 pytań, co pokazuje, że powłoka (shell) nie jest tanim skrótem, jak wielu inżynierów sądzi. Zużycie tokenów bezpośrednio przekłada się na koszty w przypadku agentów dużych modeli językowych (LLM) działających na dużą skalę.
Eksperyment, który zmienił reguły gry
Deweloper zmierzył cztery sposoby, w jakie agent LLM mógł pobierać dane o statkach:
- MCP – siedem schematów narzędzi hostowanych za Model Context Protocol.
- Bash + curl (cold) – surowe wywołanie powłoki bez dodatkowych promptów.
- Bash + curl (warm) – to samo wywołanie powłoki plus prompty systemowe, które kierują bezpiecznym użytkowaniem.
- Dedykowane narzędzie CLI – interfejs wiersza poleceń zbudowany w konkretnym celu.
Wszystkie cztery metody przeszły przez 12-pytaniową konwersację. Zużycie tokenów, które generuje rachunki za API, wyniosło odpowiednio:
- MCP: 109 779 tokenów
- Bash + curl (cold): 158 021 tokenów
- Bash + curl (warm): 178 577 tokenów
Dane dla dedykowanego narzędzia CLI nie zostały ujawnione, ale dwa warianty Bash już na wstępie przewyższyły kosztem MCP.
Dlaczego powłoka kosztowała więcej niż protokół
Każde narzędzie Bash wymagało około 2700 tokenów „promptów osłonowych” (harness prompts) – instrukcji mówiących agentowi, jak bezpiecznie wywołać powłokę, analizować wyjście i obsługiwać błędy. Same te prompty przewyższają łączną wagę tokenów wszystkich siedmiu schematów MCP.
Koszt to nie tylko początkowe wywołanie. W środowisku produkcyjnym ten sam agent wczytywał wstępnie 11 serwerów MCP przy starcie, zużywając 19 800 tokenów jeszcze przed pojawieniem się pierwszego zapytania użytkownika. Następnie, w każdej turze, agent ponownie odczytywał każdy schemat z każdego serwera, więc nawet trywialne zapytanie typu „która jest godzina?” wiązało się z kosztem tokenów wszystkich pozostałych opisów narzędzi.
Ukryty drenaż wynikający z niezwłocznego ładowania (eager loading)
Gdy agent LLM niezwłocznie ładuje każdy serwer narzędzi w każdej turze, rachunek za tokeny drastycznie rośnie. Eksperyment wykazał, że „rzeczywisty” koszt używania Bash nie wynika z samej komendy powłoki, lecz z otaczającego kontekstu, który musi być przesyłany do modelu za każdym razem.
- Narzędzia o stałym koszcie (schematy MCP) dodają przewidywalny narzut tokenów w każdej turze.
- Dynamiczne ładunki (odpowiedzi curl) dodają rosnący dług, który skaluje się wraz z długością konwersacji i rozmiarem danych.
Zatem powłoka, która na pierwszy rzut oka wydaje się „darmowa”, w rzeczywistości nakłada większy, zmienny podatek tokenowy.
Co powinni zrobić inżynierowie AI
- Zastosuj leniwe ładowanie (lazy loading). Ładuj serwer narzędzi tylko wtedy, gdy jego schemat jest faktycznie potrzebny, i przechowuj go w pamięci między turami, zamiast odczytywać go za każdym razem.
- Traktuj schematy narzędzi jako stały koszt na turę. Planuj budżety tokenów w oparciu o znaną wielkość definicji MCP, zamiast zakładać, że komendy powłoki są darmowe.
- Zweryfikuj założenie „shell = tanio”. Przeanalizuj zużycie tokenów dla każdej ścieżki narzędzia przed podjęciem decyzji o projekcie.
- Stosuj ustrukturyzowane narzędzia w przypadku małych modeli. Nawet przy ograniczonych oknach kontekstowych, dobrze zdefiniowane schematy poprawiają rozumowanie, konwersję jednostek i obsługę błędów.
Podsumowując: to ekonomia tokenów, a nie projekt protokołu, dyktuje koszty. Zarządzanie tym, kiedy i jak ładowane są serwery narzędzi, może zaoszczędzić dziesiątki tysięcy tokenów w konwersacji, bezpośrednio obniżając wydatki operacyjne.
Źródło: https://dev.to/clarkbw--/enabling-bash-costs-more-context-than-seven-mcp-tool-schemas-2h82
