Pamięć i stan rozmowy
W produkcyjnych chatbotach „pamięć” jest częścią inżynierii kontekstu: trzeba ją projektować, wersjonować i audytować. Ten rozdział porządkuje warstwy pamięci (historia, sesja, long‑term) oraz pokazuje jak wdrożyć je tak, by nie pogorszyć bezpieczeństwa ani rzetelności.
Operacyjny skrót
Ten rozdział należy do rodziny Projektowanie interakcji i ma formę Wzorzec. Poniższe dopowiedzenie ma jeden cel: przełożyć treść na działania, które da się wdrożyć, zmierzyć i utrzymać.
Checklista
- Ustal cel i kryteria poprawności (co znaczy „dobry wynik”).
- Zamknij format wyjścia (JSON / tabela / sekcje) i przygotuj walidację.
- Ogranicz przestrzeń odpowiedzi: instrukcje, słownik terminów, limity.
- Dodaj kontrolę jakości: self-check, sanity-checks, fallback, „no-answer”.
- Zapisz jako szablon (prompt_template) i wersjonuj jak kod.
- Wprowadź testy regresyjne (golden set) i przeglądy po zmianach.
Najczęstsze pułapki
- Mieszanie instrukcji z danymi wejściowymi (brak separacji „co” vs „na czym”).
- Format wynikowy „opisowy” bez kontraktu – brak automatycznej kontroli.
- Zbyt ogólne polecenia („napisz mądrze”) bez parametrów i ograniczeń.
- Brak strategii na niepewność: model zaczyna „zgadywać” zamiast eskalować.
Artefakty w Luage
Standard działa dopiero wtedy, gdy ma właściciela, wersję, ślad (trace) oraz test regresyjny.
Minimalny szablon promptu (do biblioteki)
prompt_template: support.reply@v3
intent: support.reply
inputs:
- user_message
- locale
constraints:
- "Jeśli brak źródła → powiedz, że nie wiesz i poproś o doprecyzowanie"
output:
format: markdown
sections: ["Odpowiedź", "Co dalej"]
Traktuj szablon jak kod: owner, wersja, testy i przegląd. Wtedy to działa powtarzalnie.
- Pamięć jest opt‑in: użytkownik i organizacja muszą wiedzieć, co jest zapisywane.
- Brak sekretów w historii rozmowy: sekrety należą do systemu, nie do promptu.
- TTL i wersjonowanie: pamięć bez terminu ważności prowadzi do driftu.
- Źródła faktów: long‑term przechowuje tylko fakty zweryfikowane (z provenance).
- Audyt: każdy zapis ma
trace_id, ownera i politykę retencji.