Mälu ehitamine pikalt jooksvatele agentidele
Agendid vajavad mälu kontekstiaknast väljaspool. Pikaajalise mälu arhitektuur — mida salvestada, millal välja võtta, kuidas unustada — määrab, kas agendid tunduvad, nagu nad 'tunneksid' sind, või alustavad iga vestlust nullist. Mustrid ja produktsiooni-kompromissid.
AI-agent, kes sind ei mäleta, on fundamentaalselt piiratud. Iga vestlus algab nullist. Pead end uuesti tutvustama, oma eelistusi uuesti selgitama, käimasolevat tööd uuesti täpsustama. Hõõrdumine kuhjub; usaldus langeb.
See on mälu-probleem. Kontekstiaknad käsitlevad praegust vestlust. Pikaajaline mälu — üle sessioonide, üle päevade, üle kuude — vajab oma arhitektuuri. Ja see on raskem, kui paistab.
See artikkel käsitleb, milline näeb päris agendi-mälu produktsioonis välja. Kihid, salvestusvalikud, välja võtmise mustrid ja kompromissid, mis eraldavad mälu, mis aitab, mälust, mis hallutsineerib.
Mida tähendab "mälu"
Lihtsustatud vaade: mälu = "mudel mäletab asju vestluste vahel". Reaalsus on nüansirikkam. Kognitiivteadus eristab mälutüüpe ja AI-agendi mälu saab sarnasest eristusest kasu:
Töömälu. Praegune vestlus. Hoitakse kontekstiaknas. Kaob vestluse lõppedes (välja arvatud kui see on püsivaks tehtud).
Episoodiline mälu. Konkreetsed minevikusündmused. "Eelmisel teisipäeval arutasime X-i." "Kolm kuud tagasi otsustasid Y-i."
Semantiline mälu. Üldised faktid. "Sinu nimi on Alice." "Sa eelistad lühikesi vastuseid." "Sinu ettevõte on Tallinnas."
Protseduuriline mälu. Kuidas asju teha. "Kui kasutaja palub koosolekut, kasuta seda malli." "Kui klient on tasemel X, järgi protsessi Y."
Erinevad mälutüübid teenivad erinevaid funktsioone. Täielik agendi-mälu süsteem katab need kõik.
Mida mälu peaks saavutama
Enne arhitektuuri, eesmärgid:
Järjepidevus. Agent jätkab sealt, kus pooleli jäi. Pole iga sessiooni jaoks end uuesti tutvustamist.
Personaliseerimine. Agent rakendab sinu eelistusi ilma küsimata. Kirjutab sinu hääles, kasutab sinu tööriistu, viitab sinu meeskonnale.
Konteksti säilitamine. Möödunud vestlustest tehtud otsused mõjutavad praegusi. "Möödunud kuul otsustasime X-i" peaks meelde jääma.
Oskuste kogunemine. Agent õpib sinu mustreid ja rakendab neid. Pärast 10 vestlust Pythonis programmeerimise üle peaks ta Pythoni vaikimisi valima.
Privaatsus ja unustamine. Mida mäletada, mida mitte, mida kustutada. Nii kasutaja usalduse kui ka õigusliku vastavuse pärast.
Need eesmärgid mõnikord on vastuolus. Järjepidevus tahab kõike mäletada; privaatsus mitte midagi mäletada. Arhitektuur navigeerib kompromisside vahel.
Arhitektuur
Tüüpiline kihiline arhitektuur:
┌─────────────────────────────────────┐
│ Töömälu (kontekstis) │ Praegune vestlus
├─────────────────────────────────────┤
│ Sessiooni-mälu (hiljutine) │ Viimased N vestlust
├─────────────────────────────────────┤
│ Episoodiline mälu (pikaajaline) │ Konkreetsed minevikusündmused
├─────────────────────────────────────┤
│ Semantiline mälu (faktid) │ Stabiilsed kasutaja faktid
├─────────────────────────────────────┤
│ Protseduuriline mälu (eelistused) │ Kuidas selle kasutaja jaoks käituda
└─────────────────────────────────────┘Igal kihil on oma salvestus, välja võtmine ja kahanemise loogika.
Käime nad ühe-haaval läbi.
Kiht 1: Töömälu
Juba kaetud konteksti-insenertöö artiklis. Praegune vestlus kontekstis. Mitmepööramise vestluste jaoks astmestatud kontekst koos hiljutiste pööramiste sõna-sõnalt säilitamisega ja vanemate kokkuvõtetegemisega.
Üleandmine pikaajalisse mällu juhtub sessiooni lõpus. Vestluse võtmeinfo võetakse välja ja salvestatakse.
Kiht 2: Sessiooni-mälu
Hiljutised sessioonid — ütleme, viimased 10 vestlust — hoitakse kerge detailiga. Saadaval agendile järgmise sessiooni alguses.
Implementatsioon: kokkuvõte sessiooni kohta, salvestatud ajatempli ja teemaga. Kui kasutaja tagasi tuleb, on agendil kiire viide selle kohta, mida hiljuti toimunud on.
{
"session_id": "abc-123",
"user_id": "alice",
"started": "2026-05-14T10:30:00Z",
"ended": "2026-05-14T10:45:00Z",
"topic": "Acme Corpi pakkumuse koostamine",
"summary": "Koostatud v1 Acme pakkumus. Otsustatud juhtida kulude kokkuhoiu nurgaga. Alice vaatab üle ja saadab reedel.",
"facts_learned": ["Acme on praegune klient", "Alice'i tähtaeg on reede"],
"open_items": ["Alice peab v1 üle vaatama neljapäevaks"]
}Uue sessiooni alguses saab automaatselt laadida viimased 3–5 sessiooni kokkuvõtet. Agendil on kontekst selle kohta, mis hiljuti toimunud on.
See on kõige kättesaadavam ristsessiooni-mälu vorm. Lihtne implementeerida, kohe kasulik.
Kiht 3: Episoodiline mälu
Konkreetsed minevikusündmused, mida tasub pikaajaliselt mäletada. Otsused, verstapostid, olulised vestlused.
Need võetakse sessioonidest välja, kui nad on märkimisväärsed. Salvestatud rikka metainfoga.
{
"event_id": "ev-456",
"user_id": "alice",
"date": "2026-04-22",
"type": "decision",
"description": "Alice otsustas migreerida Postgresilt ClickHouse'ile analüütika töökoormuse jaoks, tuues põhjenduseks päringujõudluse.",
"context_summary": "Pärast 3 nädalat hindamist, sealhulgas jõudlustestid ja kuluanalüüs.",
"related_topics": ["infrastructure", "analytics", "database"],
"importance": "high"
}Välja võtmine: kui see on praeguse vestlusega asjakohane, toob agent seotud episoode. Kas semantilise otsingu kaudu (manusta praegune päring, leia sobivad episoodid), teema-sobitamise kaudu või ajaliste päringute kaudu ("mis juhtus möödunud kuul?").
Väljakutse: otsustamine, mis kvalifitseerub "episoodina, mida tasub mäletada". Mitte iga vestlus pole. Muster: sessiooni lõpus võtab LLM vestlusest märkimisväärsed sündmused välja. Otsused, kohustused, verstapostid salvestatakse; vestlus mitte.
Kiht 4: Semantiline mälu
Stabiilsed faktid kasutaja kohta, mis peaksid alati saadaval olema. "Alice on Acme tegevjuht. Tema eelistatud suhtlemisstiil on lühike. Ta töötab Tallinna ajavööndis."
Need on episoodidest mahu poolest väiksemad, kuid sagedamini välja võetud. Need moodustavad agendi "kasutaja mudeli".
Implementatsioon: struktureeritud profiil.
{
"user_id": "alice",
"profile": {
"name": "Alice Tamm",
"role": "CEO at Acme Corp",
"location": "Tallinn, Estonia",
"timezone": "Europe/Tallinn",
"preferred_language": "English",
"communication_style": "concise, direct, no preamble",
"expertise_areas": ["product strategy", "go-to-market"],
"tools_used": ["Notion", "Slack", "Linear"]
}
}Uuendused juhtuvad, kui agent õpib uusi fakte. Pärast sessiooni identifitseerib LLM uued stabiilsed faktid ja pakub neid välja; kas automaatselt liidetud või järjekorda pandud ülevaatamiseks.
Tähtis: semantilised faktid peaksid olema enesekindlad ja stabiilsed. Möödaminev kommentaar ühes vestluses ("ma võin Pythonit proovida") ei tohiks saada semantiliseks faktiks ("Alice eelistab Pythonit"). Lävi on kõrgem.
Kindluspõhine lähenemine:
- Kuuldud üks kord: kandidaatfakt, veel mitte salvestatud.
- Kuuldud kaks korda või selgesõnaline: salvestatud keskmise kindlusega.
- Selgelt kinnitatud või sageli viidatud: salvestatud kõrge kindlusega.
See takistab agenti "õppimast" valesid fakte möödaminevatest kommentaaridest.
Kiht 5: Protseduuriline mälu
Kuidas agent peaks selle kasutaja jaoks käituma. Töövood, mallid, eelistused konkreetsete tegevuste jaoks.
Näited:
{
"user_id": "alice",
"procedural": {
"email_signature": "...",
"meeting_preferences": "always offer 3 time slots, never schedule before 9am",
"code_style": "Python, type hints required, dataclasses over dicts",
"tone_for_clients": "warm, direct, with explicit next steps",
"approval_process": "all customer-facing communications need Alice's review before sending"
}
}Need on mustrid, mida agent järgib, kui asjakohased ülesanded ette tulevad.
Uuendused toimuvad selgesõnaliselt ("Alice, palun tee X-i alati nii") või mustri-tuvastuse kaudu (pärast 5 sarnast taotlust, mida käsitleti samal viisil, lisatakse muster).
Salvestusvalikud
Kus mälu elab?
SQL-andmebaas. Usaldusväärne, päritav, hästi mõistetud. Iga mälutüüp on tabel. Liitumised välja võtmiseks. Hea struktureeritud juurdepääsumustrite jaoks.
Vektorandmebaas. Episoodide semantiliseks välja võtmiseks ("leia mälestused, mis selle teemaga seotud on"). Episoodid manustatakse; välja võtmine sarnasuse põhjal.
Kombinatsioon. Sageli parim: SQL struktureeritud päringute jaoks, vektor semantilise jaoks. Mäluüksused elavad mõlemas, järjepidevate ID-dega.
Spetsialiseeritud mälu-tööriistad. Mem0, Letta (varem MemGPT), Zep. Need on agentide jaoks ehitatud mälukihiid. Tasub kaaluda, kui tahad kõrgema taseme abstraktsiooni.
Enamikule meeskondadele: lihtne SQL + vektori lähenemine on okei. Spetsialiseeritud tööriistad on kasulikud, aga lisavad sõltuvuse.
Välja võtmise mustrid
Kuidas agent saab mälu konteksti?
Muster 1: Automaatne laadimine sessiooni alguses
Kui uus sessioon algab, tõmba automaatselt:
- Kasutaja semantiline profiil.
- Hiljutised N sessiooni kokkuvõtted.
- Avatud kohustused või järelülesanded.
See on baasi kontekst, mis agendil on kasutaja saabumisel.
Muster 2: Päringu-juhitud välja võtmine
Kui kasutaja sõnum viitab möödunud teemadele, võta välja seotud episoodid.
Näide: kasutaja küsib "mis oli meie andmebaasi-arutelu kokkuvõte?". Agent otsib episoode "database" järgi ja toob asjakohase välja.
Implementatsioon: manusta kasutaja sõnum, leia sarnaseid episoode, kaasa kontekstis.
Muster 3: Selged mälutööriistad
Agendil on tööriistad mälu päringuteks:
search_episodes(query): leia konkreetseid minevikusündmusi.get_user_profile(): tõmba semantiline profiil.list_open_items(): ootel olevad kohustused.
Agent otsustab vestluse põhjal, millal neid kutsuda.
Muster 4: Tausta-mälu rikastamine
Taustaprotsess vaatab mälu perioodiliselt üle ja:
- Konsolideerib seotud episoodid teemadeks.
- Värskendab kindlust faktide kohta.
- Laseb vanad mälestused, mida pole vaadatud, kahaneda.
See on "mälu hooldus" — mälu hoidmine ajas kasulikuna.
Mälu kirjutamine
Millal mälu kirjutatakse?
Sessiooni-lõpu väljavõte
Usaldusväärne muster. Kui sessioon lõpeb:
- LLM analüüsib vestlust.
- Võtab välja: - Sessiooni kokkuvõte. - Märkimisväärsed sündmused (episoodilise mälu jaoks). - Uued faktid (semantilise mälu jaoks). - Eelistuse signaalid (protseduurilise mälu jaoks).
- Uuendab ja salvestab.
See pakett-töötlus hoiab sessiooni-sisese kogemuse kiirena (vestluse ajal pole mälukirjutusi).
Prompt väljavõtteks:
Analüüsi seda vestlust. Anna väljund JSON-ina:
1. summary: 2–3-lauseline kokkuvõte sellest, mis juhtus.
2. notable_events: massiiv märkimisväärseid sündmusi, mida tasub meeles pidada (tehtud otsused, verstapostid, oluline kontekst).
3. new_facts: massiiv stabiilseid fakte, mida kasutaja kohta õpiti (lisa ainult, kui sul on kõrge kindlus).
4. preference_signals: massiiv täheldatud eelistusi (ainult kui selgelt väljendatud või korratud).
5. open_items: massiiv lahendamata punktidest, mida kasutaja võiks tahta uuesti üle vaadata.
Ole konservatiivne. Lisa ainult kõrge kindlusega punktid. Parem jätta midagi vahele kui hallutsineerida.Reaalaja uuendused kõrge väärtusega faktide jaoks
Mõnede faktide jaoks on sessiooni lõpuni ootamine vale. Kui kasutaja ütleb "tegelikult on mu nimi Alex, mitte Alice" — siis tuleks parandust kohe rakendada.
Muster: lase agendil reaalajas selgesõnalisi parandusi või olulisi uusi fakte tuvastada ja uuenda mälu kohe.
See vajab hoolikat disaini — LLM võib "õppida" valesid fakte. Mõned meeskonnad nõuavad enne reaalaja uuenduste rakendamist kasutaja kinnitust.
Kasutaja-algatatud uuendused
Kasutaja saab agendile selgelt asju öelda, mida ta peaks meelde jätma:
- "Palun meelde jätta, et ma eelistan X-i."
- "Unusta, mida ma Y kohta ütlesin."
- "Tee alati Z-i."
Need peaksid olema esmaklassilised. Austa neid kohe. Need on kõrgeima kindlusega signaalid.
Konkreetne tööriist, mida agent saab pakkuda:
remember(content: string, type: "fact" | "preference" | "procedure")
forget(content: string)
list_what_you_remember()Selle kontrolli kasutajatele andmine ehitab usaldust.
Unustamine ja kahanemine
Mälu, mis kasvab igavesti, muutub müraks. Kahanemine on hädavajalik.
Aja-põhine kahanemine
Vanemaid mälestusi tõenäoliselt ei võeta välja. Implementatsioon:
- Skooreeri välja võtmist
asjakohasus * värskuse_kahaneminejärgi. - Vanad mälestused kaovad praktiliselt, kui neile ei viidata selgelt.
Tähtsuse-põhine säilitamine
Olulised episoodid säilitatakse kauem; triviaalsed kahanevad kiiremini.
- Silti episoodid tähtsusega kirjutamise ajal.
- Kriitilised sündmused: määramatu säilitamine.
- Rutiinsündmused: kahanevad kuude jooksul.
Kasutaja-algatatud unustamine
Kasutaja võib paluda konkreetsete mälestuste kustutamist.
- Konkreetsed faktid.
- Konkreetsed ajavahemikud.
- Konkreetsed teemad.
Implementatsioon: kustutusoperatsioon, mis eemaldab (või märgib kustutatuks) asjakohased üksused.
Vastavusest tingitud kustutamine
Õiguslikud nõuded (GDPR'i õigus unustatud saada, andmete säilitamise seadused) nõuavad mõnikord kustutamist.
- Kasutaja konto kustutamine → kõik mälestused kustutatud.
- Päringu-põhine andmete kustutamine → konkreetsed mälestused kustutatud.
- Säilitamispiirangud → automaatne kustutamine pärast N kuud.
Need peavad olema sisse ehitatud algusest peale. Tagantjärele kohandamine on valus.
Privaatsuse kaalutlused
Mälu on tundlik. Agent teab kasutaja kohta palju. Kaalutlused:
Krüpteerimine puhkeolekus
Mäluandmed krüpteeritud. Standardne praktika.
Juurdepääsu kontrollid
Kes saab näha kasutaja mälu? Ainult tema ise, ainult süsteem, tugipersonal teatud tingimustel? Defineeri selgelt. Auditeeri juurdepääsu.
PII käitlemine
Personaalselt identifitseeritavat infot (päris nimed, aadressid, finantsinfo) tuleks silti ja hoolikalt käsitleda. Erilised juurdepääsu kontrollid, erilised kustutamise protseduurid.
Kasutaja-nähtavus
Kasutajad peaksid saama näha, mida agent nende kohta mäletab. See on nii eetiliselt õige kui ka hea UX. Paku "mälu-töölauda".
Mida agent sinu kohta mäletab:
Profiil:
- Nimi: Alice Tamm
- Roll: Acme Corp tegevjuht
- Suhtlemisstiil: lühike, otsene
Hiljutised sessioonid:
- 2026-05-14: Koostas Acme pakkumus
- 2026-05-12: Vaatas üle Q1 tulemused
- ...
Eelistused:
- Eelistab lühikesi vastuseid
- Kasutab Notioni, Slacki, Lineari
[Muuda] [Kustuta konkreetseid üksusi] [Kustuta kõik]See läbipaistvus ehitab usaldust. Peidetud mälu on ebamugavalt tundlik.
Jagamine kontekstide vahel
Kui kasutajal on mitu "režiimi" (töö-agent, isiklik agent), võib ta soovida mälestuste eraldamist. Ära jaga automaatselt režiimide vahel, kui ei küsita.
Levinud läbikukkumise režiimid
Mõned mustrid:
Läbikukkumine 1: Hallutsineeritud mälestused
Agent väidab, et mäletab asju, mida ei juhtunud. "Möödunud nädalal leppisime X-is kokku" — aga X-i ei arutatudki.
Põhjus: LLM "täidab sisse" usutavalt kõlavaid mälestusi väljavõtte või välja võtmise ajal.
Lahendus: tao mälu-operatsioonid päris vestluse andmete peale. LLM võtab välja; verifitseerimine on tegeliku transkripti vastu. Hallutsineeritud faktid tuleks märgistada.
Läbikukkumine 2: Õpitud valed faktid
Agent ütleb enesekindlalt valesid fakte. "Sa ütlesid, et eelistad Pythonit", kui sa tegelikult ütlesid, et olid sunnitud tööl Pythonit kasutama.
Põhjus: vale tõlgendus väljavõtte ajal.
Lahendus: kindlus-läved. Õpi ainult selgesõnalistest, korduvatest või kinnitatud avaldustest. Kasutaja saab parandada.
Läbikukkumine 3: Privaatsuse-lekked
Ühe kasutaja mälu ilmub teise vestluses. Katastroofiline.
Põhjus: vead kasutaja-ulatuse loogikas.
Lahendus: jõusta kasutaja-ulatust salvestus- ja välja võtmise kihtides. Auditeeri. Mitte kunagi ära usalda LLM-i filtreerima.
Läbikukkumine 4: Mälu paisumine
Pärast aastat on mälu kasutaja kohta megabaite suur. Välja võtmine aeglustub. Kulud kasvavad.
Põhjus: pole kahanemist ega kärpimist.
Lahendus: agressiivne kahanemine. Suurem osa mälust muutub ligipääsmatuks (madal välja võtmise prioriteet) pärast kuid. Tihendamine perioodiliselt.
Läbikukkumine 5: Seisma jäänud faktid
Kasutaja vahetas 6 kuud tagasi rolli. Agent viitab endiselt vanale rollile.
Põhjus: faktid ei uuendatud, kui need asendati.
Lahendus: tuvasta vastuolusid. Kui uus fakt vastandub vanale, võidab uus fakt (kinnitusega, kui ebakindel).
Läbikukkumine 6: Disorienteeriv konsolideerimine
Tausta-mälu konsolideerimine kirjutab aeg-ajalt mälestusi ümber viisil, mis kaotab infot.
Põhjus: agressiivne kokkuvõtetegemine ilma võtmefaktide säilitamiseta.
Lahendus: konsolideerimine peab fakte selgesõnaliselt säilitama. Testi konsolideerimist päris mälu-transkriptide peal.
Läbi tehtud näide: mäluga isiklik assistent
Päris-maailma juhtum: isiklik AI-assistent üksikutele kasutajatele.
Mälukihid:
- Töö: praegune vestlus.
- Sessioon: viimased 7 sessiooni kokkuvõttena.
- Episoodiline: 100 hiljutisemat märkimisväärset sündmust, semantilise otsinguga.
- Semantiline: kasutajaprofiil (nimi, roll, eelistused, tööriistad).
- Protseduuriline: selged töövood, mida kasutaja on seadistanud.
Salvestus:
- SQL (Postgres): struktureeritud profiil, sessioonid, episoodid, protseduurid.
- Vektor DB (pgvector): episoodiline semantiline otsing.
Operatsioonid:
- Sessiooni algus: automaatselt laadi semantiline profiil + viimased 3 sessiooni + avatud üksused.
- Sessiooni keskel: episoodiline välja võtmine teema-asjakohasuse poolt käivitatud.
- Sessiooni lõpp: LLM-i-põhine väljavõte; kasutaja saab üle vaadata, mis õpiti.
- Taust: nädalane konsolideerimine (kombineeri seotud episoodid, lase seisma jäänutel kahaneda).
Kasutaja kontrollid:
- Mälu-töölaud, mis näitab, mida mäletatakse.
- Üksikute üksuste muutmine/kustutamine.
- Nupp "Unusta viimane tund".
- Täielik konto kustutamine (pühib kõik).
Tulemused:
- Järjepidevus: kasutajad teatavad, et agent "tundub pidev" sessioonide vahel.
- Personaliseerimine: vastusestiil sobib kasutaja eelistustega ilma uuesti promptimata.
- Privaatsus: selged kontrollid annavad kasutajatele kindluse.
- Kulu: mälu on ~5–15% sessiooni-põhisest tokenikasutusest. Seda väärt.
Kõrvaldatud läbikukkumise režiimid:
- Hallutsineeritud mälestused püütud verifitseerimisega väljavõtte ajal.
- Valed faktid püütud kindlus-läviga.
- Privaatsus jõustatud igal salvestus- ja välja võtmise punktis.
- Paisumine hallatud kahanemise ja konsolideerimisega.
See on produktsioonitaseme mälusüsteem. Pole triviaalne; fokuseeritud meeskonnale hästi käeulatuses.
Spetsialiseeritud tööriistad
Märkus mälu-kui-teenuse valikute kohta:
Mem0. Avatud lähtekoodiga, hästi disainitud. Käsitleb paljusid ülaltoodud mustreid. Tasub kaaluda, kui sa ei taha nullist ehitada.
Letta (MemGPT). Erinev paradigma — LLM ise haldab mälu tööriistakutsete kaudu. Võimas, kuid keerukam.
Zep. Hostitud mälukiht. Lihtne integratsioon.
Cognee. Uuem; teadmistegraafi-põhine mälu.
Need tööriistad säästavad ehitamisaega. Nad lisavad ka sõltuvuse ja piiravad kohandamist. Küpsetele produktsioonisüsteemidele on mälu ehitamine sageli mõttekas; prototüüpidele või väiksematele meeskondadele on tööriista kasutamine mõistlik.
Kokkuvõte
Pikaajaline mälu on see, mis muudab agendid intelligentselt ja pidevalt tunduvateks, mitte amneesilisteks. See on ka üks raskemaid asju õigesti tabada.
Arhitektuur on kihiline:
- Töömälu (kontekstis).
- Sessiooni-mälu (hiljutised sessioonid).
- Episoodiline mälu (konkreetsed sündmused).
- Semantiline mälu (stabiilsed faktid).
- Protseduuriline mälu (eelistused ja töövood).
Igal kihil on oma salvestus, välja võtmine ja kahanemise loogika. Iga panustab sellesse, et agent oleks ajas kasulik.
Olulised mustrid:
- Konservatiivne väljavõte (ära hallutsineeri fakte).
- Kindlus-põhine õppimine (ära õpi möödaminevatest kommentaaridest).
- Aktiivne unustamine (kahanemine ja kärpimine).
- Kasutaja kontroll (läbipaistvus ja muutmisõigus).
- Privaatsuse jõustamine (igal kihil).
Hästi tehtud, muudab mälu AI "iga vestlusega värskest võõrast" "pidevaks, kasulikuks partneriks". See on vahe AI vahel kui tööriist ja AI vahel kui kolleeg.
Agendide jaoks, kellega kavatsed elada — üle päevade, nädalate, kuude — pole mälu valikuline. See on alus. Ehita see teadlikult, kihtidega ja distsipliiniga, mida ta vajab.