Tinklaraštis

„Grok Build“ atmintis tarp sesijų: nustatymai ir apribojimai

Markdown

Kaip įjungti atmintį, kur saugomos pastabos ir kaip veikia /flush, /remember, /dream ir /memory. Nustatymų prioritetas, tikrinimas ir įrašų trynimas.

Skaityti visą straipsnį

„Grok Build“, xAI terminalo agentas, turi atmintį tarp sesijų: jis gali prisiminti projekto susitarimus, sprendimus ir sėkmingus derinimo veiksmus, o tada be priminimų įtraukti juos į naujos sesijos kontekstą. Ši funkcija pagal numatytuosius nustatymus išjungta ir yra eksperimentinė – ją galima įjungti vienu nustatymu.

Šis aprašymas parengtas remiantis oficialiu vadovu, esančiu xai-org/grok-build saugykloje, 2026 m. rugsėjo 20 d. duomenimis. Originalaus straipsnio autorius pats produkto nenaudojo: jo veikimas aprašytas remiantis dokumentacija, o ne asmeniniais bandymais.

Praktinės informacijos apie darbą su Ailoot rasite dokumentacijoje.

Ką suteikia „Grok Build“ atmintis?

Pagrindinė mintis

Be atminties nauja „Grok Build“ sesija negauna jokios informacijos iš ankstesnių sesijų: nei jūsų paaiškintų susitarimų, nei priimtų sprendimų, nebent jie įrašyti į saugyklos instrukcijų failą. Įjungus atmintį, agentas ieško išsaugotų pastabų ir automatiškai įtraukia aktualias į naujos sesijos kontekstą. Pastabos saugomos kaip įprasti „Markdown“ failai, kuriuos galite skaityti ir redaguoti.

Pavyzdžiui, vienoje sesijoje paaiškinote agentui, kad projekte naudojamos dviejų tarpų įtraukos, duomenų bazės migracijos vykdomos atskira komanda, o konkretus modulis tvarko mokėjimus. Naujoje sesijoje šią informaciją turite pateikti iš naujo.

Įjungus atmintį, „Grok Build“ gali:

  • prisiminti anksčiau paaiškintus projekto susitarimus;
  • pasinaudoti jau pasiteisinusiais derinimo veiksmais;
  • perkelti architektūrinius sprendimus į vėlesnes sesijas;
  • neklausti dar kartą apie tai, į ką jau atsakyta.

Ši funkcija yra eksperimentinė ir pagal numatytuosius nustatymus išjungta. Kol jos neįjungsite, agento elgsena nesikeis.

Kaip įjungti atmintį?

Pagrindinė mintis

Vienam paleidimui nustatykite aplinkos kintamąjį GROK_MEMORY=1. Kad atmintis liktų įjungta, faile ~/.grok/config.toml pridėkite skiltį [memory] su nustatymu enabled = true. Kad išsaugotos pastabos būtų įtrauktos darbo pradžioje, įjungę atmintį pradėkite naują sesiją naudodami /new.

Vieną kartą, vienam paleidimui:

GROK_MEMORY=1 grok

Kintamasis taikomas tik šiam paleidimui. Komanda export GROK_MEMORY=1 išsaugo jo reikšmę dabartiniame apvalkale ir įjungia atmintį visiems vėlesniems grok paleidimams iš to apvalkalo – kol baigsis terminalo sesija arba įvykdysite export GROK_MEMORY=0.

Nuolat, per konfigūraciją. Įtraukite tai į ~/.grok/config.toml:

[memory]
enabled = true

Sesijos metu, nepaleidžiant iš naujo: atidarykite /memory ir paspauskite t.

Šis perjungiklis taikomas tik dabartinei sesijai ir į konfigūracijos failą neįrašomas. Juo galima įjungti arba išjungti atmintį. Ją išjungus nebegalima pasiekti atminties įrankių, tačiau failai diske neištrinami; vėl įjungus, saugykla vėl pasiekiama. Perjungiklis negali pakeisti priverstinio viso proceso atminties išjungimo naudojant GROK_MEMORY=0: /memory lieka nepasiekiamas visos sesijos metu.

Jei nustatymai nurodyti keliose vietose, jų prioritetas yra toks:

  • GROK_MEMORY=0 priverstinai išjungia atmintį visam procesui ir turi aukščiausią prioritetą.
  • Aiškiai konfigūracijoje nustačius enabled = false, atmintis išjungiama, net jei valdoma nuotolinė nuostata ją įjungia.
  • Atmintį galima įjungti naudojant GROK_MEMORY=1, konfigūracijoje nustačius enabled = true arba valdoma nuotoline nuostata.
  • Jei nenurodyta nieko, atmintis yra išjungta.

Pastabos įtraukiamos per pirmąjį sesijos ėjimą. Jei įjungėte atmintį jau dirbdami ir norite, kad agentas pradėtų naudoti išsaugotą informaciją apie projektą, vykdykite /new. Ar atmintis įjungta, galite patikrinti grok inspect išvestyje.

Ką ir kur įrašo „Grok Build“?

Pagrindinė mintis

Pastabos saugomos kataloge ~/.grok/memory/ kaip „Markdown“ failai: bendras MEMORY.md visiems projektams, atskiras MEMORY.md kiekvienam projektui ir sesijų žurnalai. Automatinė sesijos pabaigos santrauka įrašoma be modelio iškvietimo, išsamios pastabos kuriamos naudojant /flush ir /remember, o /dream grupuoja pavienius įrašus pagal temas.

Katalogo ~/.grok/memory/ struktūra:

VietaAprėptisTurinys
~/.grok/memory/MEMORY.mdBendraFaktai ir nuostatos visiems jūsų projektams
~/.grok/memory/ + projekto katalogas su maiša + /MEMORY.mdProjektasKonkrečios saugyklos susitarimai ir kontekstas
~/.grok/memory/ + projekto katalogas su maiša + /sessions/SesijosAtskirų sesijų santraukos ir žurnalai

Projekto katalogo pavadinime naudojama trumpa saugyklos identifikatoriaus maiša. Identifikuojant naudojamas nuotolinis origin, pateiktas formatu „organizacija/saugykla“, o jei „Git“ saugyklos nėra – katalogo kelias. Taigi to paties saugyklos klonai ir worktree (atskiros „Git“ šakų darbinės kopijos) dalijasi ta pačia projekto atmintimi: tai, ką agentas prisimena vienoje kopijoje, pasiekiama ir kitoje.

Įrašai sukuriami keturiais būdais:

  1. Automatinė sesijos pabaigos santrauka. Sesijai pasibaigus, „Grok Build“ dienos žurnale išsaugo trumpą tarnybinę santrauką: pranešimų skaičių, iki penkių pirmųjų esminių pokalbio mainų, datą ir laiką. Santrauka sudaroma iš metaduomenų, neiškviečiant modelio ir nesukeliant delsos. Labai trumpos sesijos praleidžiamos: jei yra mažiau nei trys esminiai pokalbio mainai arba jūsų teksto mažiau nei 50 baitų, įrašas nesukuriamas. Santraukoje nėra naudotų įrankių, failų kelių ar komandų. Automatines santraukas galima išjungti nustatymu session.save_on_end = false.
  2. /flush – išsami pastaba pagal užklausą. Naudodamas šią komandą modelis apibendrina svarbiausius dabartinės sesijos dalykus: sprendimus, dėsningumus, derinimo veiksmus ir API išvadas. Santrauka įrašoma į datuotą žurnalą ir indeksuojama būsimoms sesijoms. Dokumentacijoje rekomenduojama vykdyti /flush prieš sutraukiant kontekstą, sėkmingos derinimo sesijos pabaigoje ir atradus svarbių dėsningumų.
  3. /remember – aiškus prašymas ką nors įsiminti. Įveskite /remember always open PR links after sending arba pasakykite agentui „įsimink, kad...“. Prieš įrašant atidaromas peržiūros skydelis: pastaba išsaugoma tik jums patvirtinus, o sraute parodomas pranešimas Memory saved to ~/.grok/memory/MEMORY.md. Informacija apie projektą įrašoma projekto MEMORY.md, o visiems projektams bendra informacija – bendrame faile.
  4. /dream – sujungimas. Komanda sugrupuoja padrikus žurnalus ir pastabas pagal temas bei pašalina dublikatus, kad paieška būtų tikslesnė. Kaip ir naudojant /flush, sujungimą atlieka modelis – jis perskaito sukauptus įrašus ir perrašo juos į temines grupes, todėl rezultatą reikėtų periodiškai peržiūrėti naudojant /memory. Galimas ir automatinis režimas: pagal numatytuosius nustatymus „Grok Build“ tikrina sąlygas paleidimo metu ir kartą per valandą; sujungimas pradedamas, kai praėjo bent 24 valandos ir sukauptos bent 5 sesijos. Ribas galima nustatyti konfigūracijos skiltyje [memory.dream].

Pastabų ieškoma naudojant „SQLite“ indeksą: pagal numatytuosius nustatymus naudojama viso teksto paieška FTS5, o sukonfigūravus įterpinių modelį pridedama semantinė vektorinė paieška.

Kaip atmintis patenka į naują sesiją?

Pagrindinė mintis

Per pirmąjį sesijos ėjimą „Grok Build“ atmintyje ieško su projektu susijusių įrašų ir automatiškai įtraukia juos į kontekstą – jums nereikia agentui priminti. Paieška vėl vykdoma automatiškai sutraukus kontekstą. Senesni sesijų įrašai pažymimi, kad būtų patikrintas jų aktualumas.

Pradiniam įterpimui naudojama pasirinkimo riba min_score = 0.9; ją galite pakeisti skiltyje [memory.initial_injection]. Automatiškai sutraukęs kontekstą, agentas vėl ieško atmintyje ir atkuria informaciją, kuri galėjo būti pašalinta iš konteksto kartu su senesniais pokalbio mainais.

Taip pat galite tiesiogiai paklausti agento: „Ką prisimeni?“ Atsakymą jis suskirstys pagal šaltinį: bendros nuostatos, projekto žinios ir sesijų istorija.

Sesijų įrašai turi aktualumo žymas. Kuo senesnis sesijos žurnalo įrašas, tuo ryškiau jis pažymėtas: „Prieš pasikliaudami tuo, patikrinkite, ar ši informacija tebėra aktuali.“ Bendriems ir projektų MEMORY.md failams tokios žymos netaikomos: jų turinys skirtas ilgalaikiam naudojimui, todėl jo tikslumą turite stebėti patys.

Kaip peržiūrėti, redaguoti ir ištrinti pastabas?

Pagrindinė mintis

Komanda /memory atidaro visų atminties failų apžvalgą su peržiūromis. Failus galite redaguoti bet kuriuo teksto redaktoriumi – pakeitimai bus pritaikyti per kitą paiešką. Prašymas „pamiršk...“ negarantuoja rezultato; norėdami patikimai pašalinti konkretų įrašą, redaguokite failą.

Sesijoje vykdoma komanda /memory atidaro langą su visais atminties failais, sugrupuotais pagal aprėptį: bendri, projektų ir sesijų failai (atvirkštine chronologine tvarka). Failų sąrašas pateikiamas kairėje, o pasirinkto failo tik skaityti skirta peržiūra – dešinėje.

Naudingi apžvalgos klavišai:

KlavišasVeiksmas
↑/↓ arba j/kJudėti sąraše
/Filtruoti sąrašą
yNukopijuoti pasirinkto failo kelią
xIštrinti pasirinktą pastabą (paspauskite dar kartą, kad patvirtintumėte)
tĮjungti arba išjungti atmintį
EscUždaryti langą

Lange galima ištrinti atskiras pastabas ir sesijų failus, tačiau sugeneruotų MEMORY.md indeksų (bendro ir projektų) ištrinti negalima.

Antrasis būdas – redaguoti failus tiesiogiai. Jie yra kataloge ~/.grok/memory/ ir juos galima atidaryti bet kuriuo redaktoriumi. Katalogo pakeitimai stebimi: sukurti ir pakeisti failai indeksuojami iš naujo, o ištrinti failai pašalinami iš indekso per kitą paiešką.

Prašymas „pamiršk apie snake_case“ negarantuoja rezultato: modelis ieško atitinkančių įrašų ir juos pašalina, tačiau kai kuriuos gali praleisti. Norėdami užtikrinti, kad įrašas būtų ištrintas, atidarykite failą (jo kelią patogu nukopijuoti paspaudus y lange /memory) ir pašalinkite įrašą rankiniu būdu. Atmintį galite visiškai išvalyti komandinėje eilutėje: grok memory clear – projekto atmintį, grok memory clear --global – bendrą atmintį, o grok memory clear --all – abi.

Kuo atmintis skiriasi nuo saugyklos instrukcijų failo?

Pagrindinė mintis

Sukuriate instrukcijų failą, pavyzdžiui, CLAUDE.md arba AGENTS.md, ir įdedate jį į saugyklą – komanda juo dalijasi per „Git“. „Grok Build“ agentas tvarko atminties pastabas ir saugo jas už saugyklos ribų esančiame kataloge ~/.grok/memory/: jos yra asmeninės ir per „Git“ nebendrinamos.

Saugyklos instrukcijos bendrinamos su visais prie projekto dirbančiais žmonėmis ir matomos kode bei pakeitimų istorijoje. Atmintis kaupiama per sesijas, saugoma jūsų kompiuteryje ir savaime neviešinama.

Atmintis nepakeičia instrukcijų failo. Bendrosios projekto taisyklės, kurių reikia visai komandai ir kiekvienam agentui, tebėra prasmingos saugykloje. Turime atskirą vadovą, kaip naudoti vieną instrukcijų failą su „Claude Code“, „Codex“ ir „Cursor“: AGENTS.md ir CLAUDE.md kartu. Atmintis išsaugo asmeninį kontekstą: jūsų nuostatas, tai, kas jau buvo išbandyta, ir priimtą sprendimą.

„Claude“ taiko panašų atskyrimą: straipsnyje „Claude“ atmintis ir CLAUDE.md paaiškiname, kuo atmintis skiriasi nuo CLAUDE.md. Pačius įrankius palyginame straipsnyje „Grok Build“ ar „Claude Code“.

Apribojimai ir atminties veikimo tikrinimas

Pagrindinė mintis

Ši funkcija yra eksperimentinė: komandos ir nustatymai gali keistis. Kad įjungus atmintį pastabos būtų pridėtos per pirmąjį ėjimą, pradėkite naują sesiją naudodami /new. Kai kuriuos įrašus sukuria modelis, todėl periodiškai peržiūrėkite pastabas ir paprašykite jo neįsiminti paslapčių.

Turėkite omenyje šiuos apribojimus:

  • Eksperimentinė būsena. Komandos, ribos ir veikimas gali keistis būsimose versijose; jei kas nors veikia ne taip, kaip tikėtasi, patikrinkite saugyklos atminties vadovą.
  • Pradinis įterpimas naujoje sesijoje. Įjungę atmintį, pradėkite darbą naudodami /new, kad išsaugotos pastabos būtų pridėtos per pirmąjį ėjimą.
  • Modelis nusprendžia, kas svarbu. Modelis kuria /flush santrauką ir parenka, kas bus įtraukta į pastabą. Kas savaitę ar dvi atidarykite /memory ir peržiūrėkite sukauptą informaciją; ištrinkite tai, ko nereikia.
  • Neprašykite įsiminti paslapčių. Raktai, prieigos žetonai ir slaptažodžiai netinka ilgai saugomoms pastaboms: failai kataloge ~/.grok/memory/ saugomi paprastu tekstu. Jei užfiksuota jautrios informacijos, pašalinkite ją redaguodami failą.
  • Projektų atmintis bendrinama tarp saugyklos kopijų. Jei agentas viename klone įsimena tai, kas kitame jau pasenę, tvarkydami atsižvelkite į bendrą katalogą.

Jei atmintis neveikia:

  1. Patikrinkite grok inspect išvestį ir įsitikinkite, kad atmintis įjungta.
  2. Patikrinkite, ar jos neišjungia GROK_MEMORY=0 arba konfigūracija.
  3. Diagnostikai vykdykite RUST_LOG=debug GROK_LOG_FILE=/tmp/grok.log grok ir patikrinkite su atmintimi susijusias eilutes faile /tmp/grok.log.

Trumpa santrauka

„Grok Build“ atmintis įjungiama nustatant GROK_MEMORY=1 arba konfigūracijoje ~/.grok/config.toml nustačius [memory] enabled = true. Kad įjungus atmintį pastabos būtų pridėtos pirmą kartą, pradėkite naują sesiją naudodami /new. Agentas įrašo pastabas kataloge ~/.grok/memory/: sesijų santraukas be modelio iškvietimo, išsamias santraukas naudodamas /flush, aiškius įrašus naudodamas /remember po jūsų patvirtinimo ir sutvarkytas temas naudodamas /dream. Peržiūrėkite ir tvarkykite pastabas naudodami /memory arba redaguodami failus tiesiogiai. Ši funkcija yra eksperimentinė, todėl tikrinkite ribas ir komandas pagal oficialų vadovą ir periodiškai peržiūrėkite pastabas.

Šaltiniai

Sistemingam darbui naudingas derinys DI klonas + Antrosios smegenys + Konteksto inžinerija.

Atidarykite Ailoot.

Išsamiau

Klausimai ir atsakymai

Kodėl įjungus atmintį nepasirodo išsaugotos pastabos?

Išsaugotos pastabos pridedamos pirmame naujos sesijos ėjime. Įjungę atmintį pradėkite naują sesiją ir per grok inspect patikrinkite rodomą būseną; procesas, paleistas su GROK_MEMORY= 0, negali jos įjungti sesijos jungikliu.

Ar išjungus atmintį ištrinami jos failai?

Ne. Išjungus atmintį pašalinama prieiga prie jos įrankių, tačiau Markdown pastabos lieka diske. Jei reikia pašalinti įrašą, saugomas pastabas peržiūrėkite ar redaguokite atskirai.

Visi straipsniai