Streszczanie jako kompresja
Okresowo zastępuj stare wypowiedzi bieżącym podsumowaniem, poświęcając dokładne odtwarzanie informacji na rzecz miejsca w oknie kontekstu.
Streszczanie jako kompresja to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Kompresja jako pamięć
Gdy rozmowa się wydłuża, zastąp starsze tury krótkim podsumowaniem. W ten sposób wymieniasz dokładne odtwarzanie na miejsce w kontekście.
Podsumowanie zachowuje sedno (fakty, decyzje i nierozstrzygnięte kwestie), ale tekst w oryginalnym brzmieniu przepada.
Kiedy tworzyć podsumowanie
Uruchom tworzenie podsumowania, gdy:
- Łączna liczba tokenów przekroczy próg (np. 8 tys.)
- Liczba tur przekroczy N (np. 20)
- Użytkownik rozpocznie nowy temat
Podsumuj starsze tury
Najnowsze tury zachowaj w niezmienionej formie, a podsumuj tylko te, które wypadły z kontekstu:
def compact(messages, keep_recent=10):
system = messages[0]
old = messages[1:-keep_recent]
recent = messages[-keep_recent:]
if not old:
return messages
summary = summarise(old)
return [
system,
{'role': 'system', 'content': f'Earlier conversation summary:\n{summary}'},
*recent
]Prompt do tworzenia podsumowania
Użyj osobnego, niedrogiego wywołania modelu, aby utworzyć podsumowanie:
def summarise(messages):
text = '\n'.join(f'{m["role"]}: {m["content"]}' for m in messages)
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'Summarise this conversation in 5 bullet points. Preserve facts, decisions, and pending TODOs.'},
{'role': 'user', 'content': text}
],
max_tokens=300,
)
return response.choices[0].message.contentNarastające podsumowania
Utrzymuj jedno rozbudowywane podsumowanie zamiast za każdym razem podsumowywać wszystko od początku:
running_summary = ''
def extend_summary(new_messages):
global running_summary
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'Extend the existing summary with the new turns. Keep it under 200 words.'},
{'role': 'user', 'content': f'Existing summary:\n{running_summary}\n\nNew turns:\n{format(new_messages)}'}
],
max_tokens=500,
)
running_summary = response.choices[0].message.contentUstrukturyzowane podsumowania
Wymuś wyodrębnianie określonych pól w podsumowaniu:
summary_schema = {
'topics_discussed': '...',
'user_facts': {'name': '...', 'preferences': '...'},
'open_questions': ['...'],
'decisions_made': ['...']
}
# Use json_object response_format to enforce.
import json
print(json.dumps(summary_schema, indent=2))
Hierarchiczne podsumowania
W przypadku bardzo długich historii:
- Podsumowania co 100 tur (poziom pośredni)
- Podsumowania co 1000 tur (poziom ogólny)
- Podsumowanie całej historii (poziom najwyższy)
Wstrzykuj do kontekstu tylko odpowiedni poziom.
Utrata szczegółów
Podsumowania tracą konkretne cytaty i dokładne sformułowania. Jeśli użytkownik zapyta „co dokładnie wcześniej powiedziałem o cenach?”, model nie będzie w stanie odpowiedzieć.
Do odtwarzania tekstu w oryginalnym brzmieniu potrzebujesz albo większego kontekstu, albo archiwum przeszukiwanego wektorowo.
Podsumowanie i archiwum wektorowe
Połącz zalety obu rozwiązań:
- Podsumuj starsze tury w wiadomości systemowej
- ORAZ zapisz każdą turę jako embedding w magazynie wektorowym
- Jeśli użytkownik zapyta o szczegóły, pobierz tekst w oryginalnym brzmieniu z magazynu wektorowego
Jakość podsumowania ma znaczenie
Bezwartościowe podsumowanie jest gorsze niż jego brak. Do wywołań tworzących podsumowania używaj niedrogiego, ale odpowiednio wydajnego modelu (gpt-4o-mini, haiku), a nie modelu z najtańszego poziomu.
Aktualizowanie podsumowania jest kosztowne
Podsumowanie 8000 tokenów rozmowy to rzeczywiste wywołanie LLM — 1–2 sekundy i 0,5 centa. Wykonuj je asynchronicznie między turami, a nie na ścieżce krytycznej.
Kompromis związany z podsumowaniem
Na czym polega główny kompromis przy używaniu podsumowania jako pamięci?
Podsumowanie
Podsumowanie to niedrogi sposób na wydłużenie pamięci. Połącz je z wyszukiwaniem wektorowym, aby odtwarzać dokładne cytaty.
Często zadawane pytania
Czy lekcja „Streszczanie jako kompresja” jest bezpłatna?
Tak — pełny tekst „Streszczanie jako kompresja” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Streszczanie jako kompresja”?
Okresowo zastępuj stare wypowiedzi bieżącym podsumowaniem, poświęcając dokładne odtwarzanie informacji na rzecz miejsca w oknie kontekstu. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Streszczanie jako kompresja”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Pamięć krótkotrwała w oknie kontekstu
- Dlaczego długie konteksty się nie skalują
- Streszczanie jako kompresja
- Proste magazyny pamięci (klucz-wartość)