LangChain łata buga w cache_control dla Claude
- LangChain wydał aktualizację langchain-anthropic 1.4.2 naprawiającą błąd z obsługą cache_control w pośrednich podklasach.
- Poprawka dotyczy integracji z modelami Anthropic, gdzie mechanizm cache'owania przestawał działać przy niestandardowych hierarchiach klas.
- Zmiana trafiła do repozytorium jako pull request numer 37061.
LangChain wydał langchain-anthropic 1.4.2 — jednolinijkowa aktualizacja, ale z konkretnym efektem dla każdego, kto rozbudowuje integrację z Claude.
Co dokładnie naprawili
Bug dotyczył cache_control — mechanizmu, który pozwala buforować fragmenty promptów po stronie Anthropic i dzięki temu ciąć koszty tokenów wejściowych nawet o 90%. Problem pojawiał się w momencie, gdy klasa nie dziedziczyła bezpośrednio po domyślnym ChatAnthropic, tylko po jakiejś pośredniej podklasie. W takiej konfiguracji cache_control po prostu znikał i cały prompt leciał bez cache’owania — cicho, bez błędu, ale z pełnym rachunkiem.
Poprawka z PR #37061 przywraca poprawne zachowanie dla całego drzewa dziedziczenia, nie tylko dla bezpośrednich podklas.
Czy to mnie dotyczy?
Jeśli odpalasz standardowe ChatAnthropic() i nie tworzysz własnych klas — najprawdopodobniej nigdy nie trafiłeś na ten problem. Bug gryzł konkretnie tych, którzy budują własne wrappery lub korzystają z gotowych bibliotek i frameworków, które same w sobie rozszerzają bazową klasę LangChain.
Typowy scenariusz: budujesz agenta, który ma dostęp do długiego kontekstu systemowego — np. dokumentacji, zestawu narzędzi, bazy wiedzy. Ustawiasz cache_control żeby nie płacić za te same tysiące tokenów przy każdym wywołaniu. Następnie opakowujesz to w klasę dziedziczącą po CustomChatAnthropic. I właśnie w tym miejscu wcześniejsza wersja 1.4.1 cicho porzucała ustawienia cache’a.
Jak szybko zaktualizować
Standardowy pip install --upgrade langchain-anthropic wystarczy. Po aktualizacji warto zweryfikować w logach Anthropic czy pole cache_creation_input_tokens wraca do niezerowych wartości — to najprostszy sposób sprawdzenia czy cache faktycznie działa.
pip install langchain-anthropic==1.4.2
Jeśli używasz Poetry lub uv, analogicznie aktualizujesz do 1.4.2 w pliku zależności.
Jeden fix, realne pieniądze
Cache Prompt API Anthropic potrafi drastycznie obniżyć koszty aplikacji operujących na długich systemowych promptach. Przy modelu Claude Sonnet 3.5 tokeny wejściowe z cache kosztują 0,30 USD za milion zamiast standardowych 3 USD — dziesięciokrotna różnica. Dla produkcyjnych agentów przetwarzających tysiące zapytań dziennie to nie jest detal.
Dla kogo ta różnica była niewidoczna przez cały czas działania buga? Właśnie dla tych, którzy myśleli że cache działa, bo go ustawili — a on po cichu przestał funkcjonować przez jedną warstwę abstrakcji za dużo.
Całkowita lista zmian w tej wersji sprowadza się do jednego commita. Czasem jeden fix robi robotę.