NastępnyNastępny poradnik
Python Zarządzanie zależnościami dla ML
Techniczne
PRZEWODNIK techniczny
Zarządzanie historią rozmów to zestaw technik, które utrzymują długą sesję czatu lub agenta w ramach limitu kontekstu modelu.
Posłuchaj tego przewodnikaOpowiadane przez sztuczną inteligencję · ~3 min
Najważniejsze z nich to porzucenie starych etapów, podsumowanie wcześniejszych części, zagęszczenie całej historii w skondensowanym skrócie i wyczyszczenie wyników starych narzędzi. Ma to znaczenie, ponieważ model języka nie ma pamięci pomiędzy wywołaniami poza tym, co aplikacja ponownie wysyła. Gdy historia wyrośnie za okno, trzeba coś wyciąć, a to, co zostanie wycięte, decyduje o tym, czy asystent pozostanie spójny.
Większość interfejsów API czatu jest bezstanowa. Każde żądanie ponownie wysyła dotychczasową konwersację, a model czyta ją od zera. Tokeny, koszt i opóźnienia rosną zatem w miarę wydłużania się sesji, aż historia osiągnie limit kontekstu, a żądanie nie powiedzie się lub zostanie obcięte. Jakość może spaść nawet wcześniej, ponieważ istotne szczegóły są zakopane w starym materiale. Najprostszą strategią jest obcięcie, zwykle w formie przesuwanego okna: wyświetlaj monity systemowe i najnowsze zakręty, a resztę pomiń. Jest tani i przewidywalny, ale zapomina o wczesnych faktach, takich jak ograniczenia, które użytkownik podał na początku. Powszechnym udoskonaleniem jest przypinanie ważnych wiadomości, aby nigdy nie zostały upuszczone. Podsumowanie kroczące zastępuje starsze tury podsumowaniem zapisanym na modelu, które jest aktualizowane w miarę rozwoju konwersacji. Utrzymuje istotę w znacznie mniejszej liczbie żetonów. Kosztem jest to, że podsumowania tracą szczegóły i mogą wprowadzać błędy, które pogłębiają się, gdy samo podsumowanie jest ponownie podsumowywane. Kompaktowanie jest bardziej przemyślaną wersją stosowaną w narzędziach agentów. Kiedy użycie tokenu przekroczy próg, system prosi model o napisanie uporządkowanego przekazania obejmującego cel, postęp, decyzje, otwarte problemy i nazwy kluczowych plików. Następnie rozpoczyna się nowy kontekst od tego przekazania i ostatnich tur. Na przykład Claude Code ma polecenie kompaktowania i może również automatycznie kompaktować w pobliżu limitu. Czyszczenie wyników narzędzi ma na celu największe źródło wzdęć w sesjach agentów: duże wyniki wyszukiwania, odczyty plików i polecenia, które kiedyś były przydatne. Zamiana ich na krótkie symbole zastępcze zwalnia miejsce i nadal rejestruje, że połączenie miało miejsce. Pamięć zewnętrzna przechowuje fakty w pliku lub bazie danych i pobiera je, gdy jest to konieczne, dzięki czemu przetrwają wszelkie przycięcia. Powszechnym błędnym przekonaniem jest to, że model samodzielnie zapamiętuje wcześniejsze części czatu. Wszelka ciągłość wynika z tego, co aplikacja zdecyduje się ponownie wysłać lub pobrać.
Chatbot wyświetla monit systemowy oraz 20 ostatnich wiadomości i usuwa wszystkie starsze. Jest tani, ale zapomina nazwę i budżet podany przez użytkownika w pierwszej wiadomości.
Co 10 tur mniejszy model podsumowuje starszą część rozmowy w jednym akapicie, który pozostaje na górze kontekstu. To jest kroczące podsumowanie.
Agent kodujący bliski swojego limitu zapisuje przekazanie: cel, zmienione pliki, otwarte błędy i podjęte decyzje. Następnie rozpoczyna nowy kontekst zawierający to przekazanie i najnowsze pliki.
Agent zastępuje wyniki wyszukiwania starsze niż kilka tur krótkim symbolem zastępczym, takim jak „[wyczyszczenie wyników wyszukiwania w Internecie: 12 wyników]”. Surowe wyniki rzadko są potrzebne ponownie, gdy agent na nich zadziała.
Dostawcy zaczęli włączać zarządzanie historią do swoich platform. Funkcje obejmują stan konwersacji po stronie serwera, automatyczne zagęszczanie i edycję kontekstu, która usuwa wyniki starych narzędzi. To ogranicza schematy, ale programiści wciąż muszą zdecydować, o czym nigdy nie można zapomnieć. Trwają badania nad modelami, które w bardziej niezawodny sposób korzystają z długich kontekstów, oraz nad systemami pamięci przechowującymi i odzyskującymi fakty w trakcie sesji. Kompaktowanie prawdopodobnie stanie się domyślnym zachowaniem w frameworkach agentów, ale kompromis między szczegółami a przestrzenią nie zniknie. Żadna metoda nie zapewnia wszystkiego za darmo, więc testowanie tego, co zostanie utracone, pozostanie częścią pracy.
Darmowy newsletter
Trzy zweryfikowane historie AI każdego poranka w dni robocze, napisane prostym angielskim. Bezpłatne na zawsze, bez reklam.
Jedno e‑mail każdego dnia roboczego. Wypisz się jednym kliknięciem. Nigdy nie sprzedajemy ani nie udostępniamy Twojego adresu.
Sprawdź się
Natychmiastowa informacja zwrotna na każde pytanie oraz udostępnialny certyfikat z weryfikowalnym ID po zaliczeniu kursu.
Wspieraj darmową edukację AI. AI Understanding jest organizacją non-profit 501(c)(3) — bez reklam, bez płatnej ściany, zawsze. Przekaż darowiznę
Zarządzanie historią rozmów to zestaw technik, które utrzymują długą sesję czatu lub agenta w ramach limitu kontekstu modelu. Najważniejsze z nich to porzucenie starych etapów, podsumowanie wcześniejszych części, zagęszczenie całej historii w skondensowanym skrócie i wyczyszczenie wyników starych narzędzi. Ma to znaczenie, ponieważ model języka nie ma pamięci pomiędzy wywołaniami poza tym, co aplikacja ponownie wysyła. Gdy historia wyrośnie za okno, trzeba coś wyciąć, a to, co zostanie wycięte, decyduje o tym, czy asystent pozostanie spójny.
Bezstanowe interfejsy API przetwarzają całą historię przy każdym wywołaniu. Wraz z rozwojem historii rosną tokeny, koszt i opóźnienia każdego żądania.
Trzymanie tylko ostatnich zakrętów jest tanie i przewidywalne, ale wszystko, co wypadnie z okna, zniknie, chyba że zostanie przypięte.
Każda runda podsumowań jest stratna. Błąd w jednym podsumowaniu przenosi się do następnego, więc błędy mogą się kumulować w trakcie długiej sesji.
Kompaktowanie skraca sesję do przemyślanego briefu i rozpoczyna nowy kontekst wraz z nią i najnowszymi zwrotami akcji. Agent może kontynuować pracę bez pełnej historii.
Dane wyjściowe narzędzia mogą być bardzo duże i często są przydatne tylko raz. Zamiana ich na symbole zastępcze zwalnia dużo miejsca i pozwala na rejestrację, że połączenie miało miejsce.
Ucz się dalej
Wybrano więcej przewodników na ten temat
NastępnyNastępny poradnik
Python Zarządzanie zależnościami dla ML
Techniczne