[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:sr":3,"public-menus:all":38,"post:ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context:sr":205,"related:post:ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context:sr:1":1498},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","sr","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,181,193],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-folder","custom",[],{"id":176,"title":177,"url":179,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":180},"item-28",{"de":178,"en":178,"es":178,"fr":178,"it":178,"ru":178,"sr":178,"zh":178},"Solr Suggester","\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",[],{"id":182,"title":183,"url":191,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":192},"item-27",{"de":184,"en":185,"es":186,"fr":187,"it":188,"ru":189,"sr":190,"zh":185},"Firmenwebseite SEO","Company Website SEO","Sitio web corporativo SEO","Site web d’entreprise SEO","Sito web aziendale SEO","Корпоративный сайт SEO","Пословна веб-страница SEO","\u002Fportfolio\u002Fseo-sem-branding-mobile-webseite-muenchen",[],{"id":194,"title":195,"url":203,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":204},"item-31",{"de":196,"en":197,"es":198,"fr":199,"it":200,"ru":201,"sr":202,"zh":197},"Digitalisierungsportal","Digitalization Portal","Portal de digitalización","Portail de numérisation","Portale di digitalizzazione","Портал цифровизации","Портал за дигитализацију","\u002Fportfolio\u002Fdigitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods",[],{"statusCode":4,"data":206,"message":1497},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":757,"featuredImage":758,"featuredImageAlt":759,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":760,"publishedAt":761,"createdAt":762,"updatedAt":763,"seoLocalePaths":764,"categories":773,"author":786,"translations":791},"468","Memorija AI agenta nije RAG: Kako razdvojiti memoriju, pronalaženje, stanje i kontekst","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Sadržaj\">\u003Cstrong class=\"editorjs-toc__title\">Sadržaj\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-5\" class=\"editorjs-toc__link\">Kategorijalna greška: tretiranje svega što deluje postojano kao memorije\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-8\" class=\"editorjs-toc__link\">Četvoroslojna arhitektura: stanje, memorija, preuzimanje, kontekst\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-10\" class=\"editorjs-toc__link\">1. Stanje: šta je sada tačno\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-13\" class=\"editorjs-toc__link\">2. Memorija: šta iz prošlosti treba da opstane\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-16\" class=\"editorjs-toc__link\">3. Preuzimanje: šta sada treba izabrati\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-19\" class=\"editorjs-toc__link\">4. Kontekst: šta model zapravo može da iskoristi u ovom trenutku\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-22\" class=\"editorjs-toc__link\">Kako slojevi interaguju\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">Zašto RAG nije memorija\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-28\" class=\"editorjs-toc__link\">Test razdvajanja na četiri sloja\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-32\" class=\"editorjs-toc__link\">Modeli otkazivanja uzrokovani spajanjem slojeva\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-34\" class=\"editorjs-toc__link\">Šta treba zapamtiti, preuzeti, ponovo izračunati ili ponovo pročitati?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">Sistemu memorije je potrebna politika upisa, a ne samo politika preuzimanja\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Poreklo je most između memorije i pouzdanih dokaza\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-43\" class=\"editorjs-toc__link\">Više memorije ne znači više konteksta\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-46\" class=\"editorjs-toc__link\">Kontrolna lista za produkcioni dizajn\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Šta bi promenilo ovaj odgovor?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-51\" class=\"editorjs-toc__link\">Ograničenja\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Zaključak\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-56\" class=\"editorjs-toc__link\">Česta pitanja\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">Rečnik pojmova\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-60\" class=\"editorjs-toc__link\">Primarni izvori i dodatna literatura\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Cp>O memoriji AI agenata, generisanju potpomognutom preuzimanjem (RAG), stanju u toku izvršavanja (runtime state) i kontekstu modela često se raspravlja kao da su zamenljivi pojmovi. Oni to nisu. Njihovo svođenje na jedan koncept otežava rasuđivanje o agentskim sistemima, čini njihovo debagovanje težim i povećava šansu da postanu zastareli ili nebezbedni.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Direktan odgovor\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;RAG nije memorija agenta.&lt;\u002Fstrong&gt; RAG je obrazac preuzimanja: on bira informacije koje mogu biti korisne za trenutni poziv modela. Memorija je perzistentna informacija izvedena iz prethodne interakcije ili iskustva i njome se upravlja kroz vreme. Stanje predstavlja ono što je trenutno tačno o zadatku koji se izvršava ili o okruženju. Kontekst je informacija koja je zapravo stavljena na raspolaganje modelu za trenutno zaključivanje. Produkcijski agent može koristiti sva četiri, ali oni rešavaju različite probleme.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">O modelu korišćenom u ovom članku\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Četvoroslojno razdvajanje u nastavku predstavlja praktičan arhitektonski model, a ne formalni industrijski standard. Dobavljači i istraživački radovi koriste terminologiju koja se preklapa. Svrha je operativna: da učini odluke o dizajnu, vlasništvo, analizu grešaka i testiranje jasnijim.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-5\">Kategorijalna greška: tretiranje svega što deluje postojano kao memorije\u003C\u002Fh2>\n\u003Cp>Vektorska baza podataka može čuvati fragmente razgovora. Objekat sesije može prenositi nedavne korake u dijalogu. Red u bazi podataka može sadržati trenutni status radnog toka. Modul za sažimanje može sažeti prethodni rad. Mehanizam za preuzimanje može dohvatiti stare dokaze. Sve ovo može učiniti da izgleda kao da se agent „seća“, ali ovi elementi nemaju istu semantiku.\u003C\u002Fp>\n\u003Cp>Ova razlika je važna jer se zahtevana pravila tačnosti razlikuju. Trenutno stanje mora biti autoritativno i sveže. Memoriji su potrebna pravila životnog ciklusa za upisivanje, reviziju, zaboravljanje i rešavanje konflikata. Preuzimanju je potrebna relevantnost i kvalitet odabira dokaza. Kontekstu je potrebna disciplina budžeta tokena i zaštita od irelevantnog ili kontradiktornog materijala.\u003C\u002Fp>\n\u003Ch2 id=\"section-8\">Četvoroslojna arhitektura: stanje, memorija, preuzimanje, kontekst\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Sloj\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ključno pitanje\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Tipični primeri\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Primarna briga o tačnosti\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Stanje\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Šta je sada tačno?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Status zadatka, sadržaj korpe, korak u radnom toku, aktivne dozvole, trenutno stanje igre\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Svežina i autoritativnost\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Memorija\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Šta iz prošlosti treba da opstane?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Korisnička preferencija, prethodna odluka, naučeno ograničenje, rešeni problem, trajna činjenica o projektu\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Životni ciklus, revizija, poreklo, zaboravljanje\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Preuzimanje\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Koje informacije sada treba izabrati?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vektorska pretraga, pretraga po ključnim rečima, pretraga grafa, ponovno rangiranje, pretraga dokumenata\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Relevantnost i odabir dokaza\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Kontekst\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Šta model vidi za ovaj poziv?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sistemske instrukcije, trenutni zahtev, preuzeti odlomci, rezultati alata, sažeci\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Korisnost po tokenu, redosled, doslednost, šum\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch3 id=\"section-10\">1. Stanje: šta je sada tačno\u003C\u002Fh3>\n\u003Cp>Stanje pripada pokrenutom sistemu, a ne sećanju modela. Ako je porudžbina otkazana, primena (deployment) pauzirana, korisnik izgubi dozvolu, ili zadatak pređe iz statusa „u toku“ u „odobreno“, autoritativna vrednost treba da potiče iz sistema koji je vlasnik te činjenice.\u003C\u002Fp>\n\u003Cp>Opasan dizajn je dopuštanje da stari sažetak razgovora postane zamena za trenutno stanje. Agent se može tačno sećati da je porudžbina juče bila aktivna i svejedno biti u krivu danas. Stanju je stoga potrebno eksplicitno vlasništvo, verzionisanje ili vremenske oznake tamo gde je to relevantno, kao i putanja za ponovno očitavanje izvora istine pre preduzimanja radnji sa značajnim posledicama.\u003C\u002Fp>\n\u003Ch3 id=\"section-13\">2. Memorija: šta iz prošlosti treba da opstane\u003C\u002Fh3>\n\u003Cp>Memorija nije prosto „sve što možemo da sačuvamo“. Koristan sloj memorije odlučuje šta zaslužuje trajnost, u kom obliku, koliko dugo, sa kojim poreklom i pod kojim uslovima mora biti revidirano ili uklonjeno.\u003C\u002Fp>\n\u003Cp>Nedavna istraživanja o memoriji agenata sve više tretiraju čuvanje sirovih transkripata kao nedovoljno. Microsoftov rad PlugMem fokusira se na transformaciju sirovih istorija interakcija u strukturirano znanje za višekratnu upotrebu. Memora razdvaja bogat sačuvani sadržaj od lakših apstrakcija i smernica za preuzimanje, tako da sistemi dugog vremenskog horizonta ne moraju da biraju između detalja i skalabilnog pristupa.\u003C\u002Fp>\n\u003Ch3 id=\"section-16\">3. Preuzimanje: šta sada treba izabrati\u003C\u002Fh3>\n\u003Cp>Preuzimanje je mehanizam odabira. Ono može pretraživati spoljne dokumente, interne baze znanja, sačuvane memorije, dnevnike rada, grafove, baze podataka ili kombinovane izvore. RAG se obično nalazi ovde: preuzmi dokaze, ubaci odabrani materijal u radni ulaz modela, a zatim generiši odgovor.\u003C\u002Fp>\n\u003Cp>Taj mehanizam ne postaje memorija samo zato što pretraživani korpus sadrži prošle interakcije. Isti mehanizam za preuzimanje može pretraživati dokumente o pravilima koje agent nikada nije iskusio, podatke o proizvodima iz drugog sistema ili prethodne odluke korisnika. Preuzimanje opisuje kako se informacije biraju; memorija opisuje zašto neke informacije opstaju kroz vreme i kako se tom trajnošću upravlja.\u003C\u002Fp>\n\u003Ch3 id=\"section-19\">4. Kontekst: šta model zapravo može da iskoristi u ovom trenutku\u003C\u002Fh3>\n\u003Cp>Kontekst je sloj okrenut prema modelu. Anthropic opisuje inženjering konteksta kao odlučivanje o tome koja konfiguracija konteksta ima najveću verovatnoću da proizvede željeno ponašanje, pri čemu kontekst predstavljaju tokeni dostupni modelu tokom generisanja. OpenAI-jeve smernice za memoriju sesije slično tretiraju skraćivanje i kompresiju kao tehnike upravljanja kontekstom za dugotrajne interakcije agenata.\u003C\u002Fp>\n\u003Cp>Zbog toga sistem može imati odličnu memoriju, a da ipak podbaci. Relevantna memorija može postojati, ali da ne bude preuzeta. Može biti preuzeta, ali smeštena u kontekst pored snažnijeg protivrečnog teksta. Može biti komprimovana do te mere da presudni detalj nestane. Ili model može primiti toliko materijala da korisni dokazi budu razvodnjeni šumom.\u003C\u002Fp>\n\u003Ch2 id=\"section-22\">Kako slojevi interaguju\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Jedan mogući produkcioni tok\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Čitanje merodavnog stanja\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Učitavanje činjenica o trenutnom zadatku, korisniku, sistemu ili okruženju iz sistema koji njima upravljaju.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Identifikovanje potreba za memorijom\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Utvrđivanje da li su prethodne odluke, preferencije, naučene lekcije ili dugoročna ograničenja relevantni.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Preuzimanje dokaza\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Pretraživanje memorije i spoljašnjeg znanja korišćenjem semantičkog, leksičkog, grafičkog, strukturiranog ili hibridnog preuzimanja.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Izgradnja konteksta\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Sklapanje instrukcija, trenutnog stanja, odabranih dokaza i sažete istorije unutar upotrebljivog konteksta modela.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Generisanje ili delovanje\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Model rasuđuje na osnovu sklopljenog konteksta i generiše odgovor, plan ili poziv alata.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Validacija i upisivanje nazad\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Validacija konsekventnih izlaza, ažuriranje merodavnog stanja gde je dozvoljeno i perzistiranje samo onih memorija koje prolaze politiku upisa.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-24\">Zašto RAG nije memorija\u003C\u002Fh2>\n\u003Cp>Najjednostavniji test je sledeći: RAG sistem može da preuzme informacije koje agent nikada ranije nije video. To samo po sebi pokazuje da su preuzimanje i memorija različite apstrakcije.\u003C\u002Fp>\n\u003Cp>RAG odgovara na pitanje: „Koje dokaze treba da dobavim?“ Sistem memorije dodatno mora da odgovori na pitanja kao što su: „Da li ovaj događaj treba da postane trajno znanje?“, „Da li ova nova informacija zamenjuje stariju memoriju?“, „Može li se ovoj memoriji i dalje verovati?“, „Kome je dozvoljeno da je čita?“ i „Kada je treba zaboraviti?“\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Uobičajena zamka u dizajnu\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Ako se svaki korak razgovora ugradi u vektorsko skladište i kasnije preuzima na osnovu sličnosti, sistem ima mogućnost trajnog pronalaženja, ali ne nužno i dobro uređenu arhitekturu memorije. Sama perzistencija ne određuje kvalitet memorije.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-28\">Test razdvajanja na četiri sloja\u003C\u002Fh2>\n\u003Cp>Kada se neka funkcionalnost nazove „memorijom“, postavite sledeća četiri pitanja. Odgovori obično otkrivaju o kom sloju se zapravo radi.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Pitanje\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ako je odgovor da, prvenstveno se bavite sledećim\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Da li ovo predstavlja trenutno merodavno stanje zadatka ili okruženja?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Stanje\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Mora li ova informacija da preživi trenutno izvršavanje zato što beleži korisno prethodno iskustvo, preferenciju ili odluku?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Memorija\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Da li je glavni problem odlučivanje o tome koje su sačuvane ili spoljašnje informacije relevantne za trenutni zahtev?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Preuzimanje\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Da li je glavni problem odlučivanje o tome koje informacije treba postaviti unutar trenutnog poziva modela?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Kontekst\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Jedna komponenta može učestvovati u više slojeva. Baza podataka može skladištiti i stanje i memoriju. Vektorski indeks može preuzimati i spoljašnje znanje i memorije. Razdvajanje je semantičko, ne nužno fizičko.\u003C\u002Fp>\n\u003Ch2 id=\"section-32\">Modeli otkazivanja uzrokovani spajanjem slojeva\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Model otkazivanja\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Šta se dogodilo\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Rezultat\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Zastarelo stanje prerušeno u memoriju\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Veruje se starom rezimeu umesto ponovnog čitanja merodavnog sistema\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Agent postupa na osnovu činjenica koje su nekada bile tačne\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Memorija tretirana kao nepromenljiva činjenica\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Prethodna preferencija ili odluka je sačuvana bez pravila revizije\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Zamenjena informacija nastavlja da utiče na buduće odgovore\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pogodak preuzimanja tretiran kao istina\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Visoka sličnost je pogrešno protumačena kao činjenični autoritet\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Dokazi koji deluju relevantno, ali su netačni, preuzimaju primat\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Preopterećenje konteksta\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ubačeno je previše preuzetih odlomaka, memorija, zapisa i instrukcija\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Presudni dokazi bivaju razvodnjeni ili u suprotnosti sa drugima\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Nekontrolisano upisivanje memorije\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Interpretacije koje je model generisao automatski se skladište kao trajna memorija\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Greške postaju trajne i same sebe pojačavaju\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Nedostatak granice porekla\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sistem ne može da razlikuje izjavu korisnika, izvornu činjenicu, zaključak modela i generisani rezime\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Kasnije preuzimanje gubi dokazni status informacije\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-34\">Šta treba zapamtiti, preuzeti, ponovo izračunati ili ponovo pročitati?\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Tip informacije\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Preporučeni tretman\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Razlog\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Trenutna dozvola, status porudžbine, inventar, status toka posla\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ponovo pročitati merodavno stanje\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ažurnost je važnija od prisećanja\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Stabilna korisnička preferencija koju je korisnik izričito naveo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Memorija, sa semantikom izmene\u002Fbrisanja\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Korisna je kroz više sesija i u vlasništvu je korisnika\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Odluka doneta tokom dugotrajnog projekta\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Memorija sa vremenskom oznakom, poreklom i pravilima zamene\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Istorijat je važan, ali se odluke mogu promeniti\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Specifikacija proizvoda ili javni dokument o pravilima\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Preuzeti iz izvora\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Spoljašnje znanje treba da ostane povezano sa svojim dokazima\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Izvedena metrika koja se može jeftino ponovo izračunati\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ponovo izračunati\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Izbeći perzistiranje zastarelih izvedenih vrednosti\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Dugačak sirovi izlaz alata\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sačuvati eksterno; preuzeti ili rezimirati po potrebi\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ne trošiti kontekst trajno\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Hipoteza modela ili nesigurna interpretacija\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ne unapređivati automatski u trajnu memoriju\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Zaključak nije ekvivalentan činjenici\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-36\">Sistemu memorije je potrebna politika upisa, a ne samo politika preuzimanja\u003C\u002Fh2>\n\u003Cp>Diskusije o RAG arhitekturi često se fokusiraju na kvalitet pretrage: segmentaciju (chunking), ugrađene reprezentacije (embeddings), ponovno rangiranje, hibridnu pretragu i utemeljenje (grounding). Dugoročna memorija uvodi drugu stranu problema: šta uopšte sme da uđe u trajnu bazu podataka?\u003C\u002Fp>\n\u003Cp>Za trajnu memoriju agenata, praktična politika upisa treba da klasifikuje potencijalnu memoriju, očuva poreklo (provenance), otkrije konflikte sa postojećim unosima, razlikuje zapažanje od zaključivanja, definiše osetljivost i opseg pristupa, i odluči da li informacija treba da istekne, da bude revidirana ili da zahteva potvrdu korisnika.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--tip my-6 rounded-xl border p-5 border-violet-300 bg-violet-50 dark:border-violet-900 dark:bg-violet-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Princip dizajna\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Što pogrešna memorija vremenom postaje skuplja, to politika upisa mora biti stroža. Loše preuzimanje utiče na jedan odgovor. Loša trajna memorija može uticati na svaki budući odgovor koji je preuzme.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-40\">Poreklo je most između memorije i pouzdanih dokaza\u003C\u002Fh2>\n\u003Cp>Unos u memoriju bi idealno trebalo da zadrži dovoljno podataka o poreklu kako bi odgovorio na pitanja: odakle ovo potiče, kada je primećeno, ko ili šta je to tvrdilo, da li je podatak pružio korisnik ili ga je model zaključio, koji izvor ga podržava i da li ga je nešto zamenilo?\u003C\u002Fp>\n\u003Cp>Bez porekla, sažeta memorija može postati merodavnija od dokaza koji su je stvorili. Ovo je posebno rizično kod agenata koji dugo rade, gde se sažeci i apstrakcije iznova koriste. Sistem može sačuvati zaključak, a izgubiti uslove pod kojima je taj zaključak bio važeći.\u003C\u002Fp>\n\u003Ch2 id=\"section-43\">Više memorije ne znači više konteksta\u003C\u002Fh2>\n\u003Cp>Dugovečni agent može akumulirati gigabajte stanja, istorije, dokumenata i naučenih informacija. Modelu nije potrebno — i obično ne bi ni trebalo da dobije — sve to za svaki korak. Svrha pronalaženja, sažimanja, zbijanja i strukturirane memorije jeste pretvaranje velikog prostora trajnih informacija u mali, relevantan radni kontekst.\u003C\u002Fp>\n\u003Cp>To je takođe razlog zašto veći kontekstualni prozori ne eliminišu potrebu za arhitekturom memorije. Kapacitet smanjuje deo pritiska, ali ne rešava svežinu, autoritet, protivrečne dokaze, opseg privatnosti, kvalitet upisa, reviziju niti odlučivanje o tome šta zaslužuje pažnju.\u003C\u002Fp>\n\u003Ch2 id=\"section-46\">Kontrolna lista za produkcioni dizajn\u003C\u002Fh2>\n\u003Cul>\u003Cli>Definišite koji sistemi poseduju autoritativno stanje tokom izvršavanja.\u003C\u002Fli>\u003Cli>Definišite koje informacije ispunjavaju uslove da postanu trajna memorija.\u003C\u002Fli>\u003Cli>Održavajte jasnu razliku između činjenica koje je pružio korisnik, spoljnih dokaza i zaključaka modela.\u003C\u002Fli>\u003Cli>Pridružite vremenske oznake, poreklo, opseg i semantiku revizije važnim memorijama.\u003C\u002Fli>\u003Cli>Tretirajte relevantnost pretrage drugačije od činjeničnog autoriteta.\u003C\u002Fli>\u003Cli>Gradite kontekst s namerom umesto da ubacujete sav preuzeti materijal.\u003C\u002Fli>\u003Cli>Ponovo pročitajte promenljive činjenice umesto da verujete starim memorijama.\u003C\u002Fli>\u003Cli>Ponovo izračunajte jeftine izvedene vrednosti kada bi zastarelost bila skupa.\u003C\u002Fli>\u003Cli>Testirajte upise u memoriju jednako pažljivo kao i čitanja iz memorije.\u003C\u002Fli>\u003Cli>Merite greške odvojeno: greška stanja, greška memorije, greška pretrage, greška konstrukcije konteksta, greška rezonovanja i greška akcije.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-48\">Šta bi promenilo ovaj odgovor?\u003C\u002Fh2>\n\u003Cp>Granica između ovih slojeva može se pomerati kako se platforme za agente razvijaju. Provajder može ponuditi upravljanu uslugu memorije koja interno obavlja skladištenje, reviziju, pretragu, sažimanje i konstrukciju konteksta. To može objediniti komponente implementacije, ali ne eliminiše arhitektonska pitanja. I dalje morate znati da li je vraćena stavka trenutno stanje, trajna memorija, pronađeni dokaz ili jednostavno tekst ubačen u kontekst.\u003C\u002Fp>\n\u003Cp>Preporuka bi se takođe promenila za sisteme bez kontinuiteta između sesija, sisteme gde svaki zadatak počinje od čistog, nepromenljivog korpusa ili za strogo ograničene radne tokove gde celokupno relevantno stanje bezbedno staje unutar jednog poziva. U tim slučajevima, namenski sloj dugoročne memorije može uneti složenost bez dovoljne vrednosti.\u003C\u002Fp>\n\u003Ch2 id=\"section-51\">Ograničenja\u003C\u002Fh2>\n\u003Cp>Terminologija u sistemima agenata se i dalje brzo razvija. Neki okviri istoriju razgovora nazivaju „memorijom“, drugi koriste „sesija“, „kontrolna tačka“, „skladište“, „kontekst“ ili „stanje“. Istraživački sistemi takođe definišu memoriju na različitim nivoima, od trajnog pretraživanja do naučene unutrašnje adaptacije. Model u ovom članku namerno razdvaja operativne odgovornosti umesto da pokušava da nametne jedan univerzalni rečnik.\u003C\u002Fp>\n\u003Ch2 id=\"section-53\">Zaključak\u003C\u002Fh2>\n\u003Cp>Korisno pitanje nije „Da li ovaj agent ima memoriju?“ već: Šta je stanje, šta se čuva iz iskustva, kako se pronalaze relevantne informacije i šta na kraju stiže do modela kao kontekst?\u003C\u002Fp>\n\u003Cp>Kada se te odgovornosti razdvoje, odluke o dizajnu postaje lakše testirati. Zastarele činjenice se mogu pratiti do vlasništva nad stanjem. Loš odziv se može pratiti do životnog ciklusa memorije ili dohvatanja informacija. Preopterećeni promptovi se mogu pratiti do konstrukcije konteksta. Uporne halucinacije se mogu pratiti do politike upisivanja i porekla. RAG ostaje važan alat, ali je samo jedan deo pouzdane arhitekture dugotrajnih agenata.\u003C\u002Fp>\n\u003Ch2 id=\"section-56\">Česta pitanja\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Memorija AI agenta, RAG, stanje i kontekst\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Da li je RAG isto što i memorija AI agenta?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Ne. RAG je prvenstveno obrazac dohvatanja podataka koji bira informacije za poziv modela. Memorija se bavi time koje informacije iz prethodnih interakcija ili iskustava opstaju tokom vremena i kako se tim informacijama upravlja.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Da li je vektorska baza podataka memorija agenta?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Može biti deo nje, ali vektorska baza podataka sama po sebi predstavlja komponentu za skladištenje i dohvatanje. Produkciona arhitektura memorije takođe zahteva odluke o tome šta treba sačuvati, o poreklu, reviziji, konfliktima, pristupu, isteku i zaboravljanju.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Da li veći kontekstni prozor uklanja potrebu za memorijom?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Ne nužno. Veći kontekst pomaže kod kapaciteta, ali ne rešava perzistentno znanje kroz sesije, svežinu, poreklo, opseg privatnosti, reviziju niti odlučivanje o tome šta bi trebalo ponovo iskoristiti kasnije.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Da li trenutno stanje aplikacije treba čuvati kao memoriju?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Obično bi autoritativni sistem aplikacije ili domena trebalo da ostane izvor istine za promenljivo stanje. Memorija može beležiti istoriju ili značaj promena stanja, ali akcije od značaja bi trebalo ponovo da pročitaju trenutne autoritativne vrednosti.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-58\">Rečnik pojmova\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Ključni pojmovi\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"state\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Stanje (State)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Trenutno autoritativno stanje zadatka, aplikacije, korisnika, toka rada ili okruženja.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"memory\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Memorija (Memory)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Informacije iz prethodnog iskustva ili interakcije koje opstaju zato što mogu biti korisne kasnije i podležu pravilima životnog ciklusa.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"retrieval\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Dohvatanje (Retrieval)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Mehanizam koji se koristi za odabir potencijalno relevantnih informacija iz memorije, spoljnog znanja, baza podataka, grafova ili drugih skladišta.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"context\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Kontekst (Context)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Informacije koje su zapravo dostupne jezičkom modelu tokom određenog koraka inferencije ili generisanja.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"rag\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">RAG\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Generisanje potpomognuto dohvatanjem (Retrieval-augmented generation): obrazac u kojem se spoljne ili sačuvane informacije dohvataju i prosleđuju generativnom modelu radi poboljšanja trenutnog izlaza.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"provenance\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Poreklo (Provenance)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Metapodaci koji opisuju odakle informacija potiče, kada je uočena, ko ili šta ju je tvrdilo i kako je transformisana.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-60\">Primarni izvori i dodatna literatura\u003C\u002Fh2>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fagents_sdk\u002Fsession_memory\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Context Engineering: Short-Term Memory Management with Sessions\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Smernice kompanije OpenAI o skraćivanju i kompresiji za kontekst dugotrajnih agenata.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\u002Fsandboxes\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Sandbox Agents\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Dokumentacija koja prikazuje trajnu memoriju kao sposobnost sa progresivnim otkrivanjem i ponašanjem čitanja\u002Fpisanja.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Anthropic — Effective Context Engineering for AI Agents\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Inženjerske smernice o uređivanju ograničenog konteksta modela radi pouzdanog ponašanja agenata.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fmemora-a-harmonic-memory-representation-balancing-abstraction-and-specificity\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Microsoft Research — Memora\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Istraživanje o balansiranju apstrakcije i specifičnosti u dugoročnoj memoriji agenata.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Ffrom-raw-interaction-to-reusable-knowledge-rethinking-memory-for-ai-agents\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Microsoft Research — PlugMem\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Istraživanje o pretvaranju sirove istorije interakcija agenata u višekratno upotrebljivo strukturirano znanje.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpublication\u002Fagentic-context-engineering-evolving-contexts-for-self-improving-language-models\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Microsoft Research — Agentic Context Engineering (ACE)\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Istraživanje o razvijanju konteksta kao strukturiranih priručnika umesto uzastopnog prepisivanja ili kompresovanja svega.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":756},1790369809620,[214,222,228,236,243,248,253,258,263,294,299,304,309,314,319,324,329,334,339,344,349,354,359,385,390,395,400,407,412,417,433,438,443,476,481,518,523,528,533,540,545,550,555,560,565,570,575,593,598,603,608,613,618,623,628,633,638,660,665,695,700,711,720,729,738,747],{"id":215,"data":216,"type":220,"tunes":221},"_4kVYTpqbe",{"title":217,"maxLevel":218,"minLevel":219},"Sadržaj",3,2,"tableOfContents",{},{"id":223,"data":224,"type":226,"tunes":227},"intro",{"text":225},"O memoriji AI agenata, generisanju potpomognutom preuzimanjem (RAG), stanju u toku izvršavanja (runtime state) i kontekstu modela često se raspravlja kao da su zamenljivi pojmovi. Oni to nisu. Njihovo svođenje na jedan koncept otežava rasuđivanje o agentskim sistemima, čini njihovo debagovanje težim i povećava šansu da postanu zastareli ili nebezbedni.","paragraph",{},{"id":229,"data":230,"type":234,"tunes":235},"direct",{"body":231,"title":232,"variant":233},"\u003Cstrong>RAG nije memorija agenta.\u003C\u002Fstrong> RAG je obrazac preuzimanja: on bira informacije koje mogu biti korisne za trenutni poziv modela. Memorija je perzistentna informacija izvedena iz prethodne interakcije ili iskustva i njome se upravlja kroz vreme. Stanje predstavlja ono što je trenutno tačno o zadatku koji se izvršava ili o okruženju. Kontekst je informacija koja je zapravo stavljena na raspolaganje modelu za trenutno zaključivanje. Produkcijski agent može koristiti sva četiri, ali oni rešavaju različite probleme.","Direktan odgovor","info","callout",{},{"id":237,"data":238,"type":234,"tunes":242},"model-note",{"body":239,"title":240,"variant":241},"Četvoroslojno razdvajanje u nastavku predstavlja praktičan arhitektonski model, a ne formalni industrijski standard. Dobavljači i istraživački radovi koriste terminologiju koja se preklapa. Svrha je operativna: da učini odluke o dizajnu, vlasništvo, analizu grešaka i testiranje jasnijim.","O modelu korišćenom u ovom članku","note",{},{"id":244,"data":245,"type":42,"tunes":247},"h-category",{"text":246,"level":219},"Kategorijalna greška: tretiranje svega što deluje postojano kao memorije",{},{"id":249,"data":250,"type":226,"tunes":252},"p-cat-1",{"text":251},"Vektorska baza podataka može čuvati fragmente razgovora. Objekat sesije može prenositi nedavne korake u dijalogu. Red u bazi podataka može sadržati trenutni status radnog toka. Modul za sažimanje može sažeti prethodni rad. Mehanizam za preuzimanje može dohvatiti stare dokaze. Sve ovo može učiniti da izgleda kao da se agent „seća“, ali ovi elementi nemaju istu semantiku.",{},{"id":254,"data":255,"type":226,"tunes":257},"p-cat-2",{"text":256},"Ova razlika je važna jer se zahtevana pravila tačnosti razlikuju. Trenutno stanje mora biti autoritativno i sveže. Memoriji su potrebna pravila životnog ciklusa za upisivanje, reviziju, zaboravljanje i rešavanje konflikata. Preuzimanju je potrebna relevantnost i kvalitet odabira dokaza. Kontekstu je potrebna disciplina budžeta tokena i zaštita od irelevantnog ili kontradiktornog materijala.",{},{"id":259,"data":260,"type":42,"tunes":262},"h-layers",{"text":261,"level":219},"Četvoroslojna arhitektura: stanje, memorija, preuzimanje, kontekst",{},{"id":264,"data":265,"type":292,"tunes":293},"table-layers",{"content":266,"stretched":43,"withHeadings":14},[267,272,277,282,287],[268,269,270,271],"Sloj","Ključno pitanje","Tipični primeri","Primarna briga o tačnosti",[273,274,275,276],"Stanje","Šta je sada tačno?","Status zadatka, sadržaj korpe, korak u radnom toku, aktivne dozvole, trenutno stanje igre","Svežina i autoritativnost",[278,279,280,281],"Memorija","Šta iz prošlosti treba da opstane?","Korisnička preferencija, prethodna odluka, naučeno ograničenje, rešeni problem, trajna činjenica o projektu","Životni ciklus, revizija, poreklo, zaboravljanje",[283,284,285,286],"Preuzimanje","Koje informacije sada treba izabrati?","Vektorska pretraga, pretraga po ključnim rečima, pretraga grafa, ponovno rangiranje, pretraga dokumenata","Relevantnost i odabir dokaza",[288,289,290,291],"Kontekst","Šta model vidi za ovaj poziv?","Sistemske instrukcije, trenutni zahtev, preuzeti odlomci, rezultati alata, sažeci","Korisnost po tokenu, redosled, doslednost, šum","table",{},{"id":295,"data":296,"type":42,"tunes":298},"h-state",{"text":297,"level":218},"1. Stanje: šta je sada tačno",{},{"id":300,"data":301,"type":226,"tunes":303},"p-state-1",{"text":302},"Stanje pripada pokrenutom sistemu, a ne sećanju modela. Ako je porudžbina otkazana, primena (deployment) pauzirana, korisnik izgubi dozvolu, ili zadatak pređe iz statusa „u toku“ u „odobreno“, autoritativna vrednost treba da potiče iz sistema koji je vlasnik te činjenice.",{},{"id":305,"data":306,"type":226,"tunes":308},"p-state-2",{"text":307},"Opasan dizajn je dopuštanje da stari sažetak razgovora postane zamena za trenutno stanje. Agent se može tačno sećati da je porudžbina juče bila aktivna i svejedno biti u krivu danas. Stanju je stoga potrebno eksplicitno vlasništvo, verzionisanje ili vremenske oznake tamo gde je to relevantno, kao i putanja za ponovno očitavanje izvora istine pre preduzimanja radnji sa značajnim posledicama.",{},{"id":310,"data":311,"type":42,"tunes":313},"h-memory",{"text":312,"level":218},"2. Memorija: šta iz prošlosti treba da opstane",{},{"id":315,"data":316,"type":226,"tunes":318},"p-memory-1",{"text":317},"Memorija nije prosto „sve što možemo da sačuvamo“. Koristan sloj memorije odlučuje šta zaslužuje trajnost, u kom obliku, koliko dugo, sa kojim poreklom i pod kojim uslovima mora biti revidirano ili uklonjeno.",{},{"id":320,"data":321,"type":226,"tunes":323},"p-memory-2",{"text":322},"Nedavna istraživanja o memoriji agenata sve više tretiraju čuvanje sirovih transkripata kao nedovoljno. Microsoftov rad PlugMem fokusira se na transformaciju sirovih istorija interakcija u strukturirano znanje za višekratnu upotrebu. Memora razdvaja bogat sačuvani sadržaj od lakših apstrakcija i smernica za preuzimanje, tako da sistemi dugog vremenskog horizonta ne moraju da biraju između detalja i skalabilnog pristupa.",{},{"id":325,"data":326,"type":42,"tunes":328},"h-retrieval",{"text":327,"level":218},"3. Preuzimanje: šta sada treba izabrati",{},{"id":330,"data":331,"type":226,"tunes":333},"p-ret-1",{"text":332},"Preuzimanje je mehanizam odabira. Ono može pretraživati spoljne dokumente, interne baze znanja, sačuvane memorije, dnevnike rada, grafove, baze podataka ili kombinovane izvore. RAG se obično nalazi ovde: preuzmi dokaze, ubaci odabrani materijal u radni ulaz modela, a zatim generiši odgovor.",{},{"id":335,"data":336,"type":226,"tunes":338},"p-ret-2",{"text":337},"Taj mehanizam ne postaje memorija samo zato što pretraživani korpus sadrži prošle interakcije. Isti mehanizam za preuzimanje može pretraživati dokumente o pravilima koje agent nikada nije iskusio, podatke o proizvodima iz drugog sistema ili prethodne odluke korisnika. Preuzimanje opisuje kako se informacije biraju; memorija opisuje zašto neke informacije opstaju kroz vreme i kako se tom trajnošću upravlja.",{},{"id":340,"data":341,"type":42,"tunes":343},"h-context",{"text":342,"level":218},"4. Kontekst: šta model zapravo može da iskoristi u ovom trenutku",{},{"id":345,"data":346,"type":226,"tunes":348},"p-ctx-1",{"text":347},"Kontekst je sloj okrenut prema modelu. Anthropic opisuje inženjering konteksta kao odlučivanje o tome koja konfiguracija konteksta ima najveću verovatnoću da proizvede željeno ponašanje, pri čemu kontekst predstavljaju tokeni dostupni modelu tokom generisanja. OpenAI-jeve smernice za memoriju sesije slično tretiraju skraćivanje i kompresiju kao tehnike upravljanja kontekstom za dugotrajne interakcije agenata.",{},{"id":350,"data":351,"type":226,"tunes":353},"p-ctx-2",{"text":352},"Zbog toga sistem može imati odličnu memoriju, a da ipak podbaci. Relevantna memorija može postojati, ali da ne bude preuzeta. Može biti preuzeta, ali smeštena u kontekst pored snažnijeg protivrečnog teksta. Može biti komprimovana do te mere da presudni detalj nestane. Ili model može primiti toliko materijala da korisni dokazi budu razvodnjeni šumom.",{},{"id":355,"data":356,"type":42,"tunes":358},"h-flow",{"text":357,"level":219},"Kako slojevi interaguju",{},{"id":360,"data":361,"type":383,"tunes":384},"flow",{"steps":362,"title":381,"orientation":382},[363,366,369,372,375,378],{"label":364,"description":365},"1. Čitanje merodavnog stanja","Učitavanje činjenica o trenutnom zadatku, korisniku, sistemu ili okruženju iz sistema koji njima upravljaju.",{"label":367,"description":368},"2. Identifikovanje potreba za memorijom","Utvrđivanje da li su prethodne odluke, preferencije, naučene lekcije ili dugoročna ograničenja relevantni.",{"label":370,"description":371},"3. Preuzimanje dokaza","Pretraživanje memorije i spoljašnjeg znanja korišćenjem semantičkog, leksičkog, grafičkog, strukturiranog ili hibridnog preuzimanja.",{"label":373,"description":374},"4. Izgradnja konteksta","Sklapanje instrukcija, trenutnog stanja, odabranih dokaza i sažete istorije unutar upotrebljivog konteksta modela.",{"label":376,"description":377},"5. Generisanje ili delovanje","Model rasuđuje na osnovu sklopljenog konteksta i generiše odgovor, plan ili poziv alata.",{"label":379,"description":380},"6. Validacija i upisivanje nazad","Validacija konsekventnih izlaza, ažuriranje merodavnog stanja gde je dozvoljeno i perzistiranje samo onih memorija koje prolaze politiku upisa.","Jedan mogući produkcioni tok","auto","processFlow",{},{"id":386,"data":387,"type":42,"tunes":389},"h-rag",{"text":388,"level":219},"Zašto RAG nije memorija",{},{"id":391,"data":392,"type":226,"tunes":394},"p-rag-1",{"text":393},"Najjednostavniji test je sledeći: RAG sistem može da preuzme informacije koje agent nikada ranije nije video. To samo po sebi pokazuje da su preuzimanje i memorija različite apstrakcije.",{},{"id":396,"data":397,"type":226,"tunes":399},"p-rag-2",{"text":398},"RAG odgovara na pitanje: „Koje dokaze treba da dobavim?“ Sistem memorije dodatno mora da odgovori na pitanja kao što su: „Da li ovaj događaj treba da postane trajno znanje?“, „Da li ova nova informacija zamenjuje stariju memoriju?“, „Može li se ovoj memoriji i dalje verovati?“, „Kome je dozvoljeno da je čita?“ i „Kada je treba zaboraviti?“",{},{"id":401,"data":402,"type":234,"tunes":406},"rag-trap",{"body":403,"title":404,"variant":405},"Ako se svaki korak razgovora ugradi u vektorsko skladište i kasnije preuzima na osnovu sličnosti, sistem ima mogućnost trajnog pronalaženja, ali ne nužno i dobro uređenu arhitekturu memorije. Sama perzistencija ne određuje kvalitet memorije.","Uobičajena zamka u dizajnu","warning",{},{"id":408,"data":409,"type":42,"tunes":411},"h-test",{"text":410,"level":219},"Test razdvajanja na četiri sloja",{},{"id":413,"data":414,"type":226,"tunes":416},"p-test",{"text":415},"Kada se neka funkcionalnost nazove „memorijom“, postavite sledeća četiri pitanja. Odgovori obično otkrivaju o kom sloju se zapravo radi.",{},{"id":418,"data":419,"type":292,"tunes":432},"table-test",{"content":420,"stretched":43,"withHeadings":14},[421,424,426,428,430],[422,423],"Pitanje","Ako je odgovor da, prvenstveno se bavite sledećim",[425,273],"Da li ovo predstavlja trenutno merodavno stanje zadatka ili okruženja?",[427,278],"Mora li ova informacija da preživi trenutno izvršavanje zato što beleži korisno prethodno iskustvo, preferenciju ili odluku?",[429,283],"Da li je glavni problem odlučivanje o tome koje su sačuvane ili spoljašnje informacije relevantne za trenutni zahtev?",[431,288],"Da li je glavni problem odlučivanje o tome koje informacije treba postaviti unutar trenutnog poziva modela?",{},{"id":434,"data":435,"type":226,"tunes":437},"p-test-note",{"text":436},"Jedna komponenta može učestvovati u više slojeva. Baza podataka može skladištiti i stanje i memoriju. Vektorski indeks može preuzimati i spoljašnje znanje i memorije. Razdvajanje je semantičko, ne nužno fizičko.",{},{"id":439,"data":440,"type":42,"tunes":442},"h-fail",{"text":441,"level":219},"Modeli otkazivanja uzrokovani spajanjem slojeva",{},{"id":444,"data":445,"type":292,"tunes":475},"table-fail",{"content":446,"stretched":43,"withHeadings":14},[447,451,455,459,463,467,471],[448,449,450],"Model otkazivanja","Šta se dogodilo","Rezultat",[452,453,454],"Zastarelo stanje prerušeno u memoriju","Veruje se starom rezimeu umesto ponovnog čitanja merodavnog sistema","Agent postupa na osnovu činjenica koje su nekada bile tačne",[456,457,458],"Memorija tretirana kao nepromenljiva činjenica","Prethodna preferencija ili odluka je sačuvana bez pravila revizije","Zamenjena informacija nastavlja da utiče na buduće odgovore",[460,461,462],"Pogodak preuzimanja tretiran kao istina","Visoka sličnost je pogrešno protumačena kao činjenični autoritet","Dokazi koji deluju relevantno, ali su netačni, preuzimaju primat",[464,465,466],"Preopterećenje konteksta","Ubačeno je previše preuzetih odlomaka, memorija, zapisa i instrukcija","Presudni dokazi bivaju razvodnjeni ili u suprotnosti sa drugima",[468,469,470],"Nekontrolisano upisivanje memorije","Interpretacije koje je model generisao automatski se skladište kao trajna memorija","Greške postaju trajne i same sebe pojačavaju",[472,473,474],"Nedostatak granice porekla","Sistem ne može da razlikuje izjavu korisnika, izvornu činjenicu, zaključak modela i generisani rezime","Kasnije preuzimanje gubi dokazni status informacije",{},{"id":477,"data":478,"type":42,"tunes":480},"h-decision",{"text":479,"level":219},"Šta treba zapamtiti, preuzeti, ponovo izračunati ili ponovo pročitati?",{},{"id":482,"data":483,"type":292,"tunes":517},"table-decision",{"content":484,"stretched":43,"withHeadings":14},[485,489,493,497,501,505,509,513],[486,487,488],"Tip informacije","Preporučeni tretman","Razlog",[490,491,492],"Trenutna dozvola, status porudžbine, inventar, status toka posla","Ponovo pročitati merodavno stanje","Ažurnost je važnija od prisećanja",[494,495,496],"Stabilna korisnička preferencija koju je korisnik izričito naveo","Memorija, sa semantikom izmene\u002Fbrisanja","Korisna je kroz više sesija i u vlasništvu je korisnika",[498,499,500],"Odluka doneta tokom dugotrajnog projekta","Memorija sa vremenskom oznakom, poreklom i pravilima zamene","Istorijat je važan, ali se odluke mogu promeniti",[502,503,504],"Specifikacija proizvoda ili javni dokument o pravilima","Preuzeti iz izvora","Spoljašnje znanje treba da ostane povezano sa svojim dokazima",[506,507,508],"Izvedena metrika koja se može jeftino ponovo izračunati","Ponovo izračunati","Izbeći perzistiranje zastarelih izvedenih vrednosti",[510,511,512],"Dugačak sirovi izlaz alata","Sačuvati eksterno; preuzeti ili rezimirati po potrebi","Ne trošiti kontekst trajno",[514,515,516],"Hipoteza modela ili nesigurna interpretacija","Ne unapređivati automatski u trajnu memoriju","Zaključak nije ekvivalentan činjenici",{},{"id":519,"data":520,"type":42,"tunes":522},"h-write",{"text":521,"level":219},"Sistemu memorije je potrebna politika upisa, a ne samo politika preuzimanja",{},{"id":524,"data":525,"type":226,"tunes":527},"p-write-1",{"text":526},"Diskusije o RAG arhitekturi često se fokusiraju na kvalitet pretrage: segmentaciju (chunking), ugrađene reprezentacije (embeddings), ponovno rangiranje, hibridnu pretragu i utemeljenje (grounding). Dugoročna memorija uvodi drugu stranu problema: šta uopšte sme da uđe u trajnu bazu podataka?",{},{"id":529,"data":530,"type":226,"tunes":532},"p-write-2",{"text":531},"Za trajnu memoriju agenata, praktična politika upisa treba da klasifikuje potencijalnu memoriju, očuva poreklo (provenance), otkrije konflikte sa postojećim unosima, razlikuje zapažanje od zaključivanja, definiše osetljivost i opseg pristupa, i odluči da li informacija treba da istekne, da bude revidirana ili da zahteva potvrdu korisnika.",{},{"id":534,"data":535,"type":234,"tunes":539},"write-tip",{"body":536,"title":537,"variant":538},"Što pogrešna memorija vremenom postaje skuplja, to politika upisa mora biti stroža. Loše preuzimanje utiče na jedan odgovor. Loša trajna memorija može uticati na svaki budući odgovor koji je preuzme.","Princip dizajna","tip",{},{"id":541,"data":542,"type":42,"tunes":544},"h-prov",{"text":543,"level":219},"Poreklo je most između memorije i pouzdanih dokaza",{},{"id":546,"data":547,"type":226,"tunes":549},"p-prov-1",{"text":548},"Unos u memoriju bi idealno trebalo da zadrži dovoljno podataka o poreklu kako bi odgovorio na pitanja: odakle ovo potiče, kada je primećeno, ko ili šta je to tvrdilo, da li je podatak pružio korisnik ili ga je model zaključio, koji izvor ga podržava i da li ga je nešto zamenilo?",{},{"id":551,"data":552,"type":226,"tunes":554},"p-prov-2",{"text":553},"Bez porekla, sažeta memorija može postati merodavnija od dokaza koji su je stvorili. Ovo je posebno rizično kod agenata koji dugo rade, gde se sažeci i apstrakcije iznova koriste. Sistem može sačuvati zaključak, a izgubiti uslove pod kojima je taj zaključak bio važeći.",{},{"id":556,"data":557,"type":42,"tunes":559},"h-budget",{"text":558,"level":219},"Više memorije ne znači više konteksta",{},{"id":561,"data":562,"type":226,"tunes":564},"p-budget-1",{"text":563},"Dugovečni agent može akumulirati gigabajte stanja, istorije, dokumenata i naučenih informacija. Modelu nije potrebno — i obično ne bi ni trebalo da dobije — sve to za svaki korak. Svrha pronalaženja, sažimanja, zbijanja i strukturirane memorije jeste pretvaranje velikog prostora trajnih informacija u mali, relevantan radni kontekst.",{},{"id":566,"data":567,"type":226,"tunes":569},"p-budget-2",{"text":568},"To je takođe razlog zašto veći kontekstualni prozori ne eliminišu potrebu za arhitekturom memorije. Kapacitet smanjuje deo pritiska, ali ne rešava svežinu, autoritet, protivrečne dokaze, opseg privatnosti, kvalitet upisa, reviziju niti odlučivanje o tome šta zaslužuje pažnju.",{},{"id":571,"data":572,"type":42,"tunes":574},"h-check",{"text":573,"level":219},"Kontrolna lista za produkcioni dizajn",{},{"id":576,"data":577,"type":591,"tunes":592},"checklist",{"meta":578,"items":579,"style":590},{},[580,581,582,583,584,585,586,587,588,589],"Definišite koji sistemi poseduju autoritativno stanje tokom izvršavanja.","Definišite koje informacije ispunjavaju uslove da postanu trajna memorija.","Održavajte jasnu razliku između činjenica koje je pružio korisnik, spoljnih dokaza i zaključaka modela.","Pridružite vremenske oznake, poreklo, opseg i semantiku revizije važnim memorijama.","Tretirajte relevantnost pretrage drugačije od činjeničnog autoriteta.","Gradite kontekst s namerom umesto da ubacujete sav preuzeti materijal.","Ponovo pročitajte promenljive činjenice umesto da verujete starim memorijama.","Ponovo izračunajte jeftine izvedene vrednosti kada bi zastarelost bila skupa.","Testirajte upise u memoriju jednako pažljivo kao i čitanja iz memorije.","Merite greške odvojeno: greška stanja, greška memorije, greška pretrage, greška konstrukcije konteksta, greška rezonovanja i greška akcije.","unordered","list",{},{"id":594,"data":595,"type":42,"tunes":597},"h-change",{"text":596,"level":219},"Šta bi promenilo ovaj odgovor?",{},{"id":599,"data":600,"type":226,"tunes":602},"p-change-1",{"text":601},"Granica između ovih slojeva može se pomerati kako se platforme za agente razvijaju. Provajder može ponuditi upravljanu uslugu memorije koja interno obavlja skladištenje, reviziju, pretragu, sažimanje i konstrukciju konteksta. To može objediniti komponente implementacije, ali ne eliminiše arhitektonska pitanja. I dalje morate znati da li je vraćena stavka trenutno stanje, trajna memorija, pronađeni dokaz ili jednostavno tekst ubačen u kontekst.",{},{"id":604,"data":605,"type":226,"tunes":607},"p-change-2",{"text":606},"Preporuka bi se takođe promenila za sisteme bez kontinuiteta između sesija, sisteme gde svaki zadatak počinje od čistog, nepromenljivog korpusa ili za strogo ograničene radne tokove gde celokupno relevantno stanje bezbedno staje unutar jednog poziva. U tim slučajevima, namenski sloj dugoročne memorije može uneti složenost bez dovoljne vrednosti.",{},{"id":609,"data":610,"type":42,"tunes":612},"h-limit",{"text":611,"level":219},"Ograničenja",{},{"id":614,"data":615,"type":226,"tunes":617},"p-limit",{"text":616},"Terminologija u sistemima agenata se i dalje brzo razvija. Neki okviri istoriju razgovora nazivaju „memorijom“, drugi koriste „sesija“, „kontrolna tačka“, „skladište“, „kontekst“ ili „stanje“. Istraživački sistemi takođe definišu memoriju na različitim nivoima, od trajnog pretraživanja do naučene unutrašnje adaptacije. Model u ovom članku namerno razdvaja operativne odgovornosti umesto da pokušava da nametne jedan univerzalni rečnik.",{},{"id":619,"data":620,"type":42,"tunes":622},"h-conclusion",{"text":621,"level":219},"Zaključak",{},{"id":624,"data":625,"type":226,"tunes":627},"p-conclusion-1",{"text":626},"Korisno pitanje nije „Da li ovaj agent ima memoriju?“ već: Šta je stanje, šta se čuva iz iskustva, kako se pronalaze relevantne informacije i šta na kraju stiže do modela kao kontekst?",{},{"id":629,"data":630,"type":226,"tunes":632},"p-conclusion-2",{"text":631},"Kada se te odgovornosti razdvoje, odluke o dizajnu postaje lakše testirati. Zastarele činjenice se mogu pratiti do vlasništva nad stanjem. Loš odziv se može pratiti do životnog ciklusa memorije ili dohvatanja informacija. Preopterećeni promptovi se mogu pratiti do konstrukcije konteksta. Uporne halucinacije se mogu pratiti do politike upisivanja i porekla. RAG ostaje važan alat, ali je samo jedan deo pouzdane arhitekture dugotrajnih agenata.",{},{"id":634,"data":635,"type":42,"tunes":637},"h-faq",{"text":636,"level":219},"Česta pitanja",{},{"id":639,"data":640,"type":639,"tunes":659},"faq",{"items":641,"title":658},[642,646,650,654],{"id":643,"answer":644,"question":645},"faq1","Ne. RAG je prvenstveno obrazac dohvatanja podataka koji bira informacije za poziv modela. Memorija se bavi time koje informacije iz prethodnih interakcija ili iskustava opstaju tokom vremena i kako se tim informacijama upravlja.","Da li je RAG isto što i memorija AI agenta?",{"id":647,"answer":648,"question":649},"faq2","Može biti deo nje, ali vektorska baza podataka sama po sebi predstavlja komponentu za skladištenje i dohvatanje. Produkciona arhitektura memorije takođe zahteva odluke o tome šta treba sačuvati, o poreklu, reviziji, konfliktima, pristupu, isteku i zaboravljanju.","Da li je vektorska baza podataka memorija agenta?",{"id":651,"answer":652,"question":653},"faq3","Ne nužno. Veći kontekst pomaže kod kapaciteta, ali ne rešava perzistentno znanje kroz sesije, svežinu, poreklo, opseg privatnosti, reviziju niti odlučivanje o tome šta bi trebalo ponovo iskoristiti kasnije.","Da li veći kontekstni prozor uklanja potrebu za memorijom?",{"id":655,"answer":656,"question":657},"faq4","Obično bi autoritativni sistem aplikacije ili domena trebalo da ostane izvor istine za promenljivo stanje. Memorija može beležiti istoriju ili značaj promena stanja, ali akcije od značaja bi trebalo ponovo da pročitaju trenutne autoritativne vrednosti.","Da li trenutno stanje aplikacije treba čuvati kao memoriju?","Memorija AI agenta, RAG, stanje i kontekst",{},{"id":661,"data":662,"type":42,"tunes":664},"h-glossary",{"text":663,"level":219},"Rečnik pojmova",{},{"id":666,"data":667,"type":666,"tunes":694},"glossary",{"title":668,"entries":669},"Ključni pojmovi",[670,674,678,682,686,690],{"term":671,"anchor":672,"definition":673},"Stanje (State)","state","Trenutno autoritativno stanje zadatka, aplikacije, korisnika, toka rada ili okruženja.",{"term":675,"anchor":676,"definition":677},"Memorija (Memory)","memory","Informacije iz prethodnog iskustva ili interakcije koje opstaju zato što mogu biti korisne kasnije i podležu pravilima životnog ciklusa.",{"term":679,"anchor":680,"definition":681},"Dohvatanje (Retrieval)","retrieval","Mehanizam koji se koristi za odabir potencijalno relevantnih informacija iz memorije, spoljnog znanja, baza podataka, grafova ili drugih skladišta.",{"term":683,"anchor":684,"definition":685},"Kontekst (Context)","context","Informacije koje su zapravo dostupne jezičkom modelu tokom određenog koraka inferencije ili generisanja.",{"term":687,"anchor":688,"definition":689},"RAG","rag","Generisanje potpomognuto dohvatanjem (Retrieval-augmented generation): obrazac u kojem se spoljne ili sačuvane informacije dohvataju i prosleđuju generativnom modelu radi poboljšanja trenutnog izlaza.",{"term":691,"anchor":692,"definition":693},"Poreklo (Provenance)","provenance","Metapodaci koji opisuju odakle informacija potiče, kada je uočena, ko ili šta ju je tvrdilo i kako je transformisana.",{},{"id":696,"data":697,"type":42,"tunes":699},"h-sources",{"text":698,"level":219},"Primarni izvori i dodatna literatura",{},{"id":701,"data":702,"type":709,"tunes":710},"openai-session",{"link":703,"meta":704},"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fagents_sdk\u002Fsession_memory",{"image":705,"title":707,"description":708},{"url":706},"","OpenAI — Context Engineering: Short-Term Memory Management with Sessions","Smernice kompanije OpenAI o skraćivanju i kompresiji za kontekst dugotrajnih agenata.","linkTool",{},{"id":712,"data":713,"type":709,"tunes":719},"openai-sandbox",{"link":714,"meta":715},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\u002Fsandboxes",{"image":716,"title":717,"description":718},{"url":706},"OpenAI — Sandbox Agents","Dokumentacija koja prikazuje trajnu memoriju kao sposobnost sa progresivnim otkrivanjem i ponašanjem čitanja\u002Fpisanja.",{},{"id":721,"data":722,"type":709,"tunes":728},"anthropic-context",{"link":723,"meta":724},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"image":725,"title":726,"description":727},{"url":706},"Anthropic — Effective Context Engineering for AI Agents","Inženjerske smernice o uređivanju ograničenog konteksta modela radi pouzdanog ponašanja agenata.",{},{"id":730,"data":731,"type":709,"tunes":737},"ms-memora",{"link":732,"meta":733},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fmemora-a-harmonic-memory-representation-balancing-abstraction-and-specificity\u002F",{"image":734,"title":735,"description":736},{"url":706},"Microsoft Research — Memora","Istraživanje o balansiranju apstrakcije i specifičnosti u dugoročnoj memoriji agenata.",{},{"id":739,"data":740,"type":709,"tunes":746},"ms-plugmem",{"link":741,"meta":742},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Ffrom-raw-interaction-to-reusable-knowledge-rethinking-memory-for-ai-agents\u002F",{"image":743,"title":744,"description":745},{"url":706},"Microsoft Research — PlugMem","Istraživanje o pretvaranju sirove istorije interakcija agenata u višekratno upotrebljivo strukturirano znanje.",{},{"id":748,"data":749,"type":709,"tunes":755},"ms-ace",{"link":750,"meta":751},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpublication\u002Fagentic-context-engineering-evolving-contexts-for-self-improving-language-models\u002F",{"image":752,"title":753,"description":754},{"url":706},"Microsoft Research — Agentic Context Engineering (ACE)","Istraživanje o razvijanju konteksta kao strukturiranih priručnika umesto uzastopnog prepisivanja ili kompresovanja svega.",{},"2.31","Memorija agenta, RAG, stanje i kontekst često se koriste kao da su međusobno zamenjivi. Oni to nisu. Ovaj praktični arhitektonski model razdvaja ova četiri sloja, pokazuje gde svaki pripada i objašnjava šta se kvari kada ih sistemi stope u jedno.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context-1790350560308-np0xy6.webp","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context-1790350560308-np0xy6","PUBLISHED","2026-09-25T11:34:00.000Z","2026-09-25T15:34:35.975Z","2026-09-25T21:01:33.061Z",{"en":765,"de":766,"sr":767,"es":768,"fr":769,"it":770,"ru":771,"zh":772},"\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fde\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fsr\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fes\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Ffr\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fit\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fru\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fzh\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context",[774,778,782],{"id":775,"name":776,"slug":777},64,"Informaciona arhitektura","information-architecture",{"id":779,"name":780,"slug":781},57,"Granice podataka","data-boundaries",{"id":783,"name":784,"slug":785},85,"Gate-ovi kvaliteta","quality-gates",{"id":787,"login":788,"email":789,"displayName":790},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[792,1234],{"lang":793,"title":794,"content":795,"contentJson":796,"excerpt":1233},"en","AI Agent Memory Is Not RAG: How to Separate Memory, Retrieval, State and Context","{\"time\":1790350647507,\"blocks\":[{\"id\":\"_4kVYTpqbe\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contents\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"AI agent memory, retrieval-augmented generation (RAG), runtime state, and model context are often discussed as if they were interchangeable. They are not. Collapsing them into one concept makes agent systems harder to reason about, harder to debug, and easier to make stale or unsafe.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direct answer\",\"body\":\"\u003Cstrong>RAG is not agent memory.\u003C\u002Fstrong> RAG is a retrieval pattern: it selects information that may be useful for the current model call. Memory is persistent information derived from prior interaction or experience and managed across time. State represents what is currently true about the running task or environment. Context is the information actually made available to the model for the current inference. A production agent may use all four, but they solve different problems.\"},\"tunes\":{}},{\"id\":\"model-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"About the model used in this article\",\"body\":\"The four-layer separation below is a practical architecture model, not a formal industry standard. Vendors and research papers use overlapping terminology. The purpose is operational: to make design decisions, ownership, failure analysis, and testing clearer.\"},\"tunes\":{}},{\"id\":\"h-category\",\"type\":\"header\",\"data\":{\"text\":\"The category error: treating every persistent-looking thing as memory\",\"level\":2},\"tunes\":{}},{\"id\":\"p-cat-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A vector database can store conversation fragments. A session object can carry recent turns. A database row can hold the current workflow status. A summarizer can compress previous work. A retriever can fetch old evidence. All of these can make an agent appear to “remember,” but they do not have the same semantics.\"},\"tunes\":{}},{\"id\":\"p-cat-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The distinction matters because the required correctness rules are different. Current state must be authoritative and fresh. Memory needs lifecycle rules for writing, revising, forgetting, and conflict handling. Retrieval needs relevance and evidence-selection quality. Context needs token-budget discipline and protection against irrelevant or conflicting material.\"},\"tunes\":{}},{\"id\":\"h-layers\",\"type\":\"header\",\"data\":{\"text\":\"A four-layer architecture: state, memory, retrieval, context\",\"level\":2},\"tunes\":{}},{\"id\":\"table-layers\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Layer\",\"Core question\",\"Typical examples\",\"Primary correctness concern\"],[\"State\",\"What is true now?\",\"Task status, cart contents, workflow step, active permissions, current game state\",\"Freshness and authority\"],[\"Memory\",\"What from the past should persist?\",\"User preference, prior decision, learned constraint, resolved failure, durable project fact\",\"Lifecycle, revision, provenance, forgetting\"],[\"Retrieval\",\"What information should be selected now?\",\"Vector search, keyword search, graph lookup, reranking, document search\",\"Relevance and evidence selection\"],[\"Context\",\"What does the model see for this call?\",\"System instructions, current request, retrieved passages, tool results, summaries\",\"Utility per token, ordering, consistency, noise\"]]},\"tunes\":{}},{\"id\":\"h-state\",\"type\":\"header\",\"data\":{\"text\":\"1. State: what is true now\",\"level\":3},\"tunes\":{}},{\"id\":\"p-state-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"State belongs to the running system, not to the model's recollection. If an order is cancelled, a deployment is paused, a user loses a permission, or a task moves from “in progress” to “approved,” the authoritative value should come from the system that owns that fact.\"},\"tunes\":{}},{\"id\":\"p-state-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A dangerous design is to let an old conversation summary become a substitute for current state. The agent may accurately remember that the order was active yesterday and still be wrong today. State therefore needs explicit ownership, versioning or timestamps where relevant, and a path to re-read the source of truth before consequential actions.\"},\"tunes\":{}},{\"id\":\"h-memory\",\"type\":\"header\",\"data\":{\"text\":\"2. Memory: what from the past should persist\",\"level\":3},\"tunes\":{}},{\"id\":\"p-memory-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Memory is not simply “everything we can store.” A useful memory layer decides what deserves persistence, in what form, for how long, with what provenance, and under what conditions it must be revised or removed.\"},\"tunes\":{}},{\"id\":\"p-memory-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Recent agent-memory research increasingly treats raw transcript storage as insufficient. Microsoft's PlugMem work focuses on transforming raw interaction histories into structured reusable knowledge. Memora separates rich stored content from lighter abstractions and retrieval cues so that long-horizon systems do not have to choose between detail and scalable access.\"},\"tunes\":{}},{\"id\":\"h-retrieval\",\"type\":\"header\",\"data\":{\"text\":\"3. Retrieval: what should be selected now\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ret-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Retrieval is a selection mechanism. It can search external documents, internal knowledge bases, stored memories, logs, graphs, databases, or mixed sources. RAG normally sits here: retrieve evidence, place selected material into the model's working input, then generate an answer.\"},\"tunes\":{}},{\"id\":\"p-ret-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"That mechanism does not become memory merely because the retrieved corpus contains past interactions. The same retriever can search policy documents that the agent never experienced, product data from another system, or a user's prior decisions. Retrieval describes how information is selected; memory describes why some information persists across time and how that persistence is governed.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"4. Context: what the model can actually use right now\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ctx-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Context is the model-facing layer. Anthropic describes context engineering as deciding what configuration of context is most likely to produce the desired behaviour, with context being the tokens available to the model during generation. OpenAI's session-memory guidance similarly treats trimming and compression as context-management techniques for long-running agent interactions.\"},\"tunes\":{}},{\"id\":\"p-ctx-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is why a system can have excellent memory and still fail. The relevant memory may exist but not be retrieved. It may be retrieved but placed into context next to stronger conflicting text. It may be compressed until the decisive detail disappears. Or the model may receive so much material that useful evidence is diluted by noise.\"},\"tunes\":{}},{\"id\":\"h-flow\",\"type\":\"header\",\"data\":{\"text\":\"How the layers interact\",\"level\":2},\"tunes\":{}},{\"id\":\"flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"One possible production flow\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Read authoritative state\",\"description\":\"Load current task, user, system, or environment facts from the systems that own them.\"},{\"label\":\"2. Identify memory needs\",\"description\":\"Determine whether prior decisions, preferences, lessons, or long-term constraints are relevant.\"},{\"label\":\"3. Retrieve evidence\",\"description\":\"Search memory and external knowledge using semantic, lexical, graph, structured, or hybrid retrieval.\"},{\"label\":\"4. Build context\",\"description\":\"Assemble instructions, current state, selected evidence, and compacted history within the model's usable context.\"},{\"label\":\"5. Generate or act\",\"description\":\"The model reasons over the assembled context and produces an answer, plan, or tool call.\"},{\"label\":\"6. Validate and write back\",\"description\":\"Validate consequential outputs, update authoritative state where permitted, and persist only memories that pass the write policy.\"}]},\"tunes\":{}},{\"id\":\"h-rag\",\"type\":\"header\",\"data\":{\"text\":\"Why RAG is not memory\",\"level\":2},\"tunes\":{}},{\"id\":\"p-rag-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The simplest test is this: a RAG system can retrieve information the agent has never seen before. That alone shows that retrieval and memory are different abstractions.\"},\"tunes\":{}},{\"id\":\"p-rag-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG answers: “Which evidence should I fetch?” A memory system must additionally answer questions such as: “Should this event become durable knowledge?”, “Does this new information supersede an older memory?”, “Can this memory still be trusted?”, “Who is allowed to read it?”, and “When should it be forgotten?”\"},\"tunes\":{}},{\"id\":\"rag-trap\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"A common design trap\",\"body\":\"If every conversation turn is embedded into a vector store and later retrieved by similarity, the system has persistent lookup, but not necessarily a well-governed memory architecture. Persistence alone does not define memory quality.\"},\"tunes\":{}},{\"id\":\"h-test\",\"type\":\"header\",\"data\":{\"text\":\"The four-layer separation test\",\"level\":2},\"tunes\":{}},{\"id\":\"p-test\",\"type\":\"paragraph\",\"data\":{\"text\":\"When a feature is called “memory,” ask the following four questions. The answers usually reveal which layer is actually involved.\"},\"tunes\":{}},{\"id\":\"table-test\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Question\",\"If yes, you are primarily dealing with\"],[\"Does this represent the current authoritative condition of the task or environment?\",\"State\"],[\"Must this information survive the current run because it captures useful prior experience, preference, or decision?\",\"Memory\"],[\"Is the main problem deciding which stored or external information is relevant to the current request?\",\"Retrieval\"],[\"Is the main problem deciding what information to place inside the current model call?\",\"Context\"]]},\"tunes\":{}},{\"id\":\"p-test-note\",\"type\":\"paragraph\",\"data\":{\"text\":\"A single component can participate in more than one layer. A database may store both state and memory. A vector index may retrieve both external knowledge and memories. The separation is semantic, not necessarily physical.\"},\"tunes\":{}},{\"id\":\"h-fail\",\"type\":\"header\",\"data\":{\"text\":\"Failure modes caused by collapsing the layers\",\"level\":2},\"tunes\":{}},{\"id\":\"table-fail\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Failure mode\",\"What happened\",\"Result\"],[\"Stale state disguised as memory\",\"An old summary is trusted instead of re-reading the authoritative system\",\"The agent acts on facts that were once true\"],[\"Memory treated as immutable fact\",\"A prior preference or decision is stored without revision rules\",\"Superseded information keeps influencing future answers\"],[\"Retrieval hit treated as truth\",\"High similarity is mistaken for factual authority\",\"Relevant-looking but incorrect evidence dominates\"],[\"Context overload\",\"Too many retrieved passages, memories, logs, and instructions are injected\",\"The decisive evidence is diluted or contradicted\"],[\"Uncontrolled memory write\",\"Model-generated interpretations are stored automatically as durable memory\",\"Errors become persistent and self-reinforcing\"],[\"No provenance boundary\",\"The system cannot distinguish user statement, source fact, model inference, and generated summary\",\"Later retrieval loses the evidential status of the information\"]]},\"tunes\":{}},{\"id\":\"h-decision\",\"type\":\"header\",\"data\":{\"text\":\"What should be remembered, retrieved, recomputed, or re-read?\",\"level\":2},\"tunes\":{}},{\"id\":\"table-decision\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Information type\",\"Preferred treatment\",\"Reason\"],[\"Current permission, order status, inventory, workflow status\",\"Re-read authoritative state\",\"Freshness matters more than recollection\"],[\"Stable user preference explicitly provided by the user\",\"Memory, with edit\u002Fdelete semantics\",\"Useful across sessions and owned by the user\"],[\"Decision made during a long-running project\",\"Memory with timestamp, provenance, and supersession rules\",\"The history matters, but decisions can change\"],[\"Product specification or public policy document\",\"Retrieve from source\",\"External knowledge should remain tied to its evidence\"],[\"Derived metric that can be cheaply recalculated\",\"Recompute\",\"Avoid persisting stale derived values\"],[\"Long raw tool output\",\"Store externally; retrieve or summarize when needed\",\"Do not consume context permanently\"],[\"Model hypothesis or uncertain interpretation\",\"Do not promote automatically to durable memory\",\"Inference is not equivalent to fact\"]]},\"tunes\":{}},{\"id\":\"h-write\",\"type\":\"header\",\"data\":{\"text\":\"A memory system needs a write policy, not only a retrieval policy\",\"level\":2},\"tunes\":{}},{\"id\":\"p-write-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG architecture discussions often focus on retrieval quality: chunking, embeddings, reranking, hybrid search, and grounding. Long-term memory introduces another side of the problem: what is allowed to enter the persistent store in the first place?\"},\"tunes\":{}},{\"id\":\"p-write-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"For durable agent memory, a practical write policy should classify the candidate memory, preserve provenance, detect conflicts with existing entries, distinguish observation from inference, define sensitivity and access scope, and decide whether the information should expire, be revised, or require user confirmation.\"},\"tunes\":{}},{\"id\":\"write-tip\",\"type\":\"callout\",\"data\":{\"variant\":\"tip\",\"title\":\"Design principle\",\"body\":\"The more expensive a wrong memory becomes over time, the stricter the write policy should be. A bad retrieval affects one answer. A bad durable memory can affect every future answer that retrieves it.\"},\"tunes\":{}},{\"id\":\"h-prov\",\"type\":\"header\",\"data\":{\"text\":\"Provenance is the bridge between memory and reliable evidence\",\"level\":2},\"tunes\":{}},{\"id\":\"p-prov-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A memory entry should ideally retain enough provenance to answer: where did this come from, when was it observed, who or what asserted it, was it user-provided or model-inferred, what source supported it, and has anything superseded it?\"},\"tunes\":{}},{\"id\":\"p-prov-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Without provenance, a compressed memory can become more authoritative than the evidence that created it. This is especially risky in long-running agents where summaries and abstractions are repeatedly reused. The system may preserve the conclusion while losing the conditions under which the conclusion was valid.\"},\"tunes\":{}},{\"id\":\"h-budget\",\"type\":\"header\",\"data\":{\"text\":\"More memory does not mean more context\",\"level\":2},\"tunes\":{}},{\"id\":\"p-budget-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A long-lived agent may accumulate gigabytes of state, history, documents, and learned information. The model does not need — and usually should not receive — all of it for each step. The purpose of retrieval, summarization, compaction, and structured memory is to convert a large persistent information space into a small, relevant working context.\"},\"tunes\":{}},{\"id\":\"p-budget-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is also why larger context windows do not eliminate memory architecture. Capacity reduces some pressure, but it does not solve freshness, authority, conflicting evidence, privacy scope, write quality, revision, or deciding what deserves attention.\"},\"tunes\":{}},{\"id\":\"h-check\",\"type\":\"header\",\"data\":{\"text\":\"Production design checklist\",\"level\":2},\"tunes\":{}},{\"id\":\"checklist\",\"type\":\"list\",\"data\":{\"style\":\"unordered\",\"meta\":{},\"items\":[\"Define which systems own authoritative runtime state.\",\"Define which information is eligible to become durable memory.\",\"Keep user-provided facts, external evidence, and model inference distinguishable.\",\"Attach timestamps, provenance, scope, and revision semantics to important memories.\",\"Treat retrieval relevance as different from factual authority.\",\"Build context intentionally instead of injecting all retrieved material.\",\"Re-read volatile facts instead of trusting old memories.\",\"Recompute cheap derived values when staleness would be costly.\",\"Test memory writes as carefully as memory reads.\",\"Measure failures separately: state error, memory error, retrieval error, context-construction error, reasoning error, and action error.\"]},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The boundary between these layers can move as agent platforms evolve. A vendor may offer a managed memory service that internally performs storage, revision, retrieval, summarization, and context construction. That can collapse implementation components, but it does not eliminate the architectural questions. You still need to know whether a returned item is current state, persistent memory, retrieved evidence, or simply text placed into context.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The recommendation would also change for systems with no cross-session continuity, systems where every task starts from a clean immutable corpus, or tightly bounded workflows where all relevant state fits safely inside one call. In those cases, a dedicated long-term memory layer may add complexity without enough value.\"},\"tunes\":{}},{\"id\":\"h-limit\",\"type\":\"header\",\"data\":{\"text\":\"Limitations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit\",\"type\":\"paragraph\",\"data\":{\"text\":\"Terminology in agent systems is still moving quickly. Some frameworks call conversation history “memory,” others use “session,” “checkpoint,” “store,” “context,” or “state.” Research systems also define memory at different levels, from persistent lookup to learned internal adaptation. The model in this article deliberately separates operational responsibilities rather than trying to impose one universal vocabulary.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The useful question is not “Does this agent have memory?” It is: What is state, what is persisted from experience, how is relevant information retrieved, and what finally reaches the model as context?\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Once those responsibilities are separated, design choices become easier to test. Stale facts can be traced to state ownership. Bad recall can be traced to memory lifecycle or retrieval. Overloaded prompts can be traced to context construction. Persistent hallucinations can be traced to write policy and provenance. RAG remains an important tool, but it is only one part of a reliable long-running agent architecture.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"AI agent memory, RAG, state and context\",\"items\":[{\"id\":\"faq1\",\"question\":\"Is RAG the same as AI agent memory?\",\"answer\":\"No. RAG is primarily a retrieval pattern that selects information for a model call. Memory concerns what information from prior interactions or experience persists across time and how that information is governed.\"},{\"id\":\"faq2\",\"question\":\"Is a vector database an agent memory?\",\"answer\":\"It can be part of one, but a vector database by itself is a storage and retrieval component. A production memory architecture also needs decisions about what to store, provenance, revision, conflicts, access, expiration, and forgetting.\"},{\"id\":\"faq3\",\"question\":\"Does a larger context window remove the need for memory?\",\"answer\":\"Not necessarily. Larger context helps with capacity, but it does not solve persistent knowledge across sessions, freshness, provenance, privacy scope, revision, or deciding what should be reused later.\"},{\"id\":\"faq4\",\"question\":\"Should current application state be stored as memory?\",\"answer\":\"Usually the authoritative application or domain system should remain the source of truth for volatile state. Memory may record the history or significance of state changes, but consequential actions should re-read current authoritative values.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Key terms\",\"entries\":[{\"term\":\"State\",\"definition\":\"The current authoritative condition of a task, application, user, workflow, or environment.\",\"anchor\":\"state\"},{\"term\":\"Memory\",\"definition\":\"Information from prior experience or interaction that persists because it may be useful later and is subject to lifecycle rules.\",\"anchor\":\"memory\"},{\"term\":\"Retrieval\",\"definition\":\"The mechanism used to select potentially relevant information from memory, external knowledge, databases, graphs, or other stores.\",\"anchor\":\"retrieval\"},{\"term\":\"Context\",\"definition\":\"The information actually available to the language model during a particular inference or generation step.\",\"anchor\":\"context\"},{\"term\":\"RAG\",\"definition\":\"Retrieval-augmented generation: a pattern in which external or stored information is retrieved and supplied to a generative model to improve the current output.\",\"anchor\":\"rag\"},{\"term\":\"Provenance\",\"definition\":\"Metadata describing where information came from, when it was observed, who or what asserted it, and how it was transformed.\",\"anchor\":\"provenance\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primary sources and further reading\",\"level\":2},\"tunes\":{}},{\"id\":\"openai-session\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fagents_sdk\u002Fsession_memory\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Context Engineering: Short-Term Memory Management with Sessions\",\"description\":\"OpenAI guidance on trimming and compression for long-running agent context.\"}},\"tunes\":{}},{\"id\":\"openai-sandbox\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\u002Fsandboxes\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Sandbox Agents\",\"description\":\"Documentation showing persistent memory as a capability with progressive disclosure and read\u002Fwrite behaviour.\"}},\"tunes\":{}},{\"id\":\"anthropic-context\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Anthropic — Effective Context Engineering for AI Agents\",\"description\":\"Engineering guidance on curating finite model context for reliable agent behaviour.\"}},\"tunes\":{}},{\"id\":\"ms-memora\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fmemora-a-harmonic-memory-representation-balancing-abstraction-and-specificity\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Microsoft Research — Memora\",\"description\":\"Research on balancing abstraction and specificity in long-horizon agent memory.\"}},\"tunes\":{}},{\"id\":\"ms-plugmem\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Ffrom-raw-interaction-to-reusable-knowledge-rethinking-memory-for-ai-agents\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Microsoft Research — PlugMem\",\"description\":\"Research on converting raw agent interaction histories into reusable structured knowledge.\"}},\"tunes\":{}},{\"id\":\"ms-ace\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpublication\u002Fagentic-context-engineering-evolving-contexts-for-self-improving-language-models\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Microsoft Research — Agentic Context Engineering (ACE)\",\"description\":\"Research on evolving context as structured playbooks rather than repeatedly rewriting or compressing everything.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":797,"blocks":798,"version":1232},1790350647507,[799,803,807,812,817,821,825,829,833,862,866,870,874,878,882,886,890,894,898,902,906,910,914,937,941,945,949,954,958,962,977,981,985,1017,1021,1057,1061,1065,1069,1074,1078,1082,1086,1090,1094,1098,1102,1117,1121,1125,1129,1133,1137,1141,1145,1149,1153,1170,1174,1192,1196,1202,1208,1214,1220,1226],{"id":215,"data":800,"type":220,"tunes":802},{"title":801,"maxLevel":218,"minLevel":219},"Contents",{},{"id":223,"data":804,"type":226,"tunes":806},{"text":805},"AI agent memory, retrieval-augmented generation (RAG), runtime state, and model context are often discussed as if they were interchangeable. They are not. Collapsing them into one concept makes agent systems harder to reason about, harder to debug, and easier to make stale or unsafe.",{},{"id":229,"data":808,"type":234,"tunes":811},{"body":809,"title":810,"variant":233},"\u003Cstrong>RAG is not agent memory.\u003C\u002Fstrong> RAG is a retrieval pattern: it selects information that may be useful for the current model call. Memory is persistent information derived from prior interaction or experience and managed across time. State represents what is currently true about the running task or environment. Context is the information actually made available to the model for the current inference. A production agent may use all four, but they solve different problems.","Direct answer",{},{"id":237,"data":813,"type":234,"tunes":816},{"body":814,"title":815,"variant":241},"The four-layer separation below is a practical architecture model, not a formal industry standard. Vendors and research papers use overlapping terminology. The purpose is operational: to make design decisions, ownership, failure analysis, and testing clearer.","About the model used in this article",{},{"id":244,"data":818,"type":42,"tunes":820},{"text":819,"level":219},"The category error: treating every persistent-looking thing as memory",{},{"id":249,"data":822,"type":226,"tunes":824},{"text":823},"A vector database can store conversation fragments. A session object can carry recent turns. A database row can hold the current workflow status. A summarizer can compress previous work. A retriever can fetch old evidence. All of these can make an agent appear to “remember,” but they do not have the same semantics.",{},{"id":254,"data":826,"type":226,"tunes":828},{"text":827},"The distinction matters because the required correctness rules are different. Current state must be authoritative and fresh. Memory needs lifecycle rules for writing, revising, forgetting, and conflict handling. Retrieval needs relevance and evidence-selection quality. Context needs token-budget discipline and protection against irrelevant or conflicting material.",{},{"id":259,"data":830,"type":42,"tunes":832},{"text":831,"level":219},"A four-layer architecture: state, memory, retrieval, context",{},{"id":264,"data":834,"type":292,"tunes":861},{"content":835,"stretched":43,"withHeadings":14},[836,841,846,851,856],[837,838,839,840],"Layer","Core question","Typical examples","Primary correctness concern",[842,843,844,845],"State","What is true now?","Task status, cart contents, workflow step, active permissions, current game state","Freshness and authority",[847,848,849,850],"Memory","What from the past should persist?","User preference, prior decision, learned constraint, resolved failure, durable project fact","Lifecycle, revision, provenance, forgetting",[852,853,854,855],"Retrieval","What information should be selected now?","Vector search, keyword search, graph lookup, reranking, document search","Relevance and evidence selection",[857,858,859,860],"Context","What does the model see for this call?","System instructions, current request, retrieved passages, tool results, summaries","Utility per token, ordering, consistency, noise",{},{"id":295,"data":863,"type":42,"tunes":865},{"text":864,"level":218},"1. State: what is true now",{},{"id":300,"data":867,"type":226,"tunes":869},{"text":868},"State belongs to the running system, not to the model's recollection. If an order is cancelled, a deployment is paused, a user loses a permission, or a task moves from “in progress” to “approved,” the authoritative value should come from the system that owns that fact.",{},{"id":305,"data":871,"type":226,"tunes":873},{"text":872},"A dangerous design is to let an old conversation summary become a substitute for current state. The agent may accurately remember that the order was active yesterday and still be wrong today. State therefore needs explicit ownership, versioning or timestamps where relevant, and a path to re-read the source of truth before consequential actions.",{},{"id":310,"data":875,"type":42,"tunes":877},{"text":876,"level":218},"2. Memory: what from the past should persist",{},{"id":315,"data":879,"type":226,"tunes":881},{"text":880},"Memory is not simply “everything we can store.” A useful memory layer decides what deserves persistence, in what form, for how long, with what provenance, and under what conditions it must be revised or removed.",{},{"id":320,"data":883,"type":226,"tunes":885},{"text":884},"Recent agent-memory research increasingly treats raw transcript storage as insufficient. Microsoft's PlugMem work focuses on transforming raw interaction histories into structured reusable knowledge. Memora separates rich stored content from lighter abstractions and retrieval cues so that long-horizon systems do not have to choose between detail and scalable access.",{},{"id":325,"data":887,"type":42,"tunes":889},{"text":888,"level":218},"3. Retrieval: what should be selected now",{},{"id":330,"data":891,"type":226,"tunes":893},{"text":892},"Retrieval is a selection mechanism. It can search external documents, internal knowledge bases, stored memories, logs, graphs, databases, or mixed sources. RAG normally sits here: retrieve evidence, place selected material into the model's working input, then generate an answer.",{},{"id":335,"data":895,"type":226,"tunes":897},{"text":896},"That mechanism does not become memory merely because the retrieved corpus contains past interactions. The same retriever can search policy documents that the agent never experienced, product data from another system, or a user's prior decisions. Retrieval describes how information is selected; memory describes why some information persists across time and how that persistence is governed.",{},{"id":340,"data":899,"type":42,"tunes":901},{"text":900,"level":218},"4. Context: what the model can actually use right now",{},{"id":345,"data":903,"type":226,"tunes":905},{"text":904},"Context is the model-facing layer. Anthropic describes context engineering as deciding what configuration of context is most likely to produce the desired behaviour, with context being the tokens available to the model during generation. OpenAI's session-memory guidance similarly treats trimming and compression as context-management techniques for long-running agent interactions.",{},{"id":350,"data":907,"type":226,"tunes":909},{"text":908},"This is why a system can have excellent memory and still fail. The relevant memory may exist but not be retrieved. It may be retrieved but placed into context next to stronger conflicting text. It may be compressed until the decisive detail disappears. Or the model may receive so much material that useful evidence is diluted by noise.",{},{"id":355,"data":911,"type":42,"tunes":913},{"text":912,"level":219},"How the layers interact",{},{"id":360,"data":915,"type":383,"tunes":936},{"steps":916,"title":935,"orientation":382},[917,920,923,926,929,932],{"label":918,"description":919},"1. Read authoritative state","Load current task, user, system, or environment facts from the systems that own them.",{"label":921,"description":922},"2. Identify memory needs","Determine whether prior decisions, preferences, lessons, or long-term constraints are relevant.",{"label":924,"description":925},"3. Retrieve evidence","Search memory and external knowledge using semantic, lexical, graph, structured, or hybrid retrieval.",{"label":927,"description":928},"4. Build context","Assemble instructions, current state, selected evidence, and compacted history within the model's usable context.",{"label":930,"description":931},"5. Generate or act","The model reasons over the assembled context and produces an answer, plan, or tool call.",{"label":933,"description":934},"6. Validate and write back","Validate consequential outputs, update authoritative state where permitted, and persist only memories that pass the write policy.","One possible production flow",{},{"id":386,"data":938,"type":42,"tunes":940},{"text":939,"level":219},"Why RAG is not memory",{},{"id":391,"data":942,"type":226,"tunes":944},{"text":943},"The simplest test is this: a RAG system can retrieve information the agent has never seen before. That alone shows that retrieval and memory are different abstractions.",{},{"id":396,"data":946,"type":226,"tunes":948},{"text":947},"RAG answers: “Which evidence should I fetch?” A memory system must additionally answer questions such as: “Should this event become durable knowledge?”, “Does this new information supersede an older memory?”, “Can this memory still be trusted?”, “Who is allowed to read it?”, and “When should it be forgotten?”",{},{"id":401,"data":950,"type":234,"tunes":953},{"body":951,"title":952,"variant":405},"If every conversation turn is embedded into a vector store and later retrieved by similarity, the system has persistent lookup, but not necessarily a well-governed memory architecture. Persistence alone does not define memory quality.","A common design trap",{},{"id":408,"data":955,"type":42,"tunes":957},{"text":956,"level":219},"The four-layer separation test",{},{"id":413,"data":959,"type":226,"tunes":961},{"text":960},"When a feature is called “memory,” ask the following four questions. The answers usually reveal which layer is actually involved.",{},{"id":418,"data":963,"type":292,"tunes":976},{"content":964,"stretched":43,"withHeadings":14},[965,968,970,972,974],[966,967],"Question","If yes, you are primarily dealing with",[969,842],"Does this represent the current authoritative condition of the task or environment?",[971,847],"Must this information survive the current run because it captures useful prior experience, preference, or decision?",[973,852],"Is the main problem deciding which stored or external information is relevant to the current request?",[975,857],"Is the main problem deciding what information to place inside the current model call?",{},{"id":434,"data":978,"type":226,"tunes":980},{"text":979},"A single component can participate in more than one layer. A database may store both state and memory. A vector index may retrieve both external knowledge and memories. The separation is semantic, not necessarily physical.",{},{"id":439,"data":982,"type":42,"tunes":984},{"text":983,"level":219},"Failure modes caused by collapsing the layers",{},{"id":444,"data":986,"type":292,"tunes":1016},{"content":987,"stretched":43,"withHeadings":14},[988,992,996,1000,1004,1008,1012],[989,990,991],"Failure mode","What happened","Result",[993,994,995],"Stale state disguised as memory","An old summary is trusted instead of re-reading the authoritative system","The agent acts on facts that were once true",[997,998,999],"Memory treated as immutable fact","A prior preference or decision is stored without revision rules","Superseded information keeps influencing future answers",[1001,1002,1003],"Retrieval hit treated as truth","High similarity is mistaken for factual authority","Relevant-looking but incorrect evidence dominates",[1005,1006,1007],"Context overload","Too many retrieved passages, memories, logs, and instructions are injected","The decisive evidence is diluted or contradicted",[1009,1010,1011],"Uncontrolled memory write","Model-generated interpretations are stored automatically as durable memory","Errors become persistent and self-reinforcing",[1013,1014,1015],"No provenance boundary","The system cannot distinguish user statement, source fact, model inference, and generated summary","Later retrieval loses the evidential status of the information",{},{"id":477,"data":1018,"type":42,"tunes":1020},{"text":1019,"level":219},"What should be remembered, retrieved, recomputed, or re-read?",{},{"id":482,"data":1022,"type":292,"tunes":1056},{"content":1023,"stretched":43,"withHeadings":14},[1024,1028,1032,1036,1040,1044,1048,1052],[1025,1026,1027],"Information type","Preferred treatment","Reason",[1029,1030,1031],"Current permission, order status, inventory, workflow status","Re-read authoritative state","Freshness matters more than recollection",[1033,1034,1035],"Stable user preference explicitly provided by the user","Memory, with edit\u002Fdelete semantics","Useful across sessions and owned by the user",[1037,1038,1039],"Decision made during a long-running project","Memory with timestamp, provenance, and supersession rules","The history matters, but decisions can change",[1041,1042,1043],"Product specification or public policy document","Retrieve from source","External knowledge should remain tied to its evidence",[1045,1046,1047],"Derived metric that can be cheaply recalculated","Recompute","Avoid persisting stale derived values",[1049,1050,1051],"Long raw tool output","Store externally; retrieve or summarize when needed","Do not consume context permanently",[1053,1054,1055],"Model hypothesis or uncertain interpretation","Do not promote automatically to durable memory","Inference is not equivalent to fact",{},{"id":519,"data":1058,"type":42,"tunes":1060},{"text":1059,"level":219},"A memory system needs a write policy, not only a retrieval policy",{},{"id":524,"data":1062,"type":226,"tunes":1064},{"text":1063},"RAG architecture discussions often focus on retrieval quality: chunking, embeddings, reranking, hybrid search, and grounding. Long-term memory introduces another side of the problem: what is allowed to enter the persistent store in the first place?",{},{"id":529,"data":1066,"type":226,"tunes":1068},{"text":1067},"For durable agent memory, a practical write policy should classify the candidate memory, preserve provenance, detect conflicts with existing entries, distinguish observation from inference, define sensitivity and access scope, and decide whether the information should expire, be revised, or require user confirmation.",{},{"id":534,"data":1070,"type":234,"tunes":1073},{"body":1071,"title":1072,"variant":538},"The more expensive a wrong memory becomes over time, the stricter the write policy should be. A bad retrieval affects one answer. A bad durable memory can affect every future answer that retrieves it.","Design principle",{},{"id":541,"data":1075,"type":42,"tunes":1077},{"text":1076,"level":219},"Provenance is the bridge between memory and reliable evidence",{},{"id":546,"data":1079,"type":226,"tunes":1081},{"text":1080},"A memory entry should ideally retain enough provenance to answer: where did this come from, when was it observed, who or what asserted it, was it user-provided or model-inferred, what source supported it, and has anything superseded it?",{},{"id":551,"data":1083,"type":226,"tunes":1085},{"text":1084},"Without provenance, a compressed memory can become more authoritative than the evidence that created it. This is especially risky in long-running agents where summaries and abstractions are repeatedly reused. The system may preserve the conclusion while losing the conditions under which the conclusion was valid.",{},{"id":556,"data":1087,"type":42,"tunes":1089},{"text":1088,"level":219},"More memory does not mean more context",{},{"id":561,"data":1091,"type":226,"tunes":1093},{"text":1092},"A long-lived agent may accumulate gigabytes of state, history, documents, and learned information. The model does not need — and usually should not receive — all of it for each step. The purpose of retrieval, summarization, compaction, and structured memory is to convert a large persistent information space into a small, relevant working context.",{},{"id":566,"data":1095,"type":226,"tunes":1097},{"text":1096},"This is also why larger context windows do not eliminate memory architecture. Capacity reduces some pressure, but it does not solve freshness, authority, conflicting evidence, privacy scope, write quality, revision, or deciding what deserves attention.",{},{"id":571,"data":1099,"type":42,"tunes":1101},{"text":1100,"level":219},"Production design checklist",{},{"id":576,"data":1103,"type":591,"tunes":1116},{"meta":1104,"items":1105,"style":590},{},[1106,1107,1108,1109,1110,1111,1112,1113,1114,1115],"Define which systems own authoritative runtime state.","Define which information is eligible to become durable memory.","Keep user-provided facts, external evidence, and model inference distinguishable.","Attach timestamps, provenance, scope, and revision semantics to important memories.","Treat retrieval relevance as different from factual authority.","Build context intentionally instead of injecting all retrieved material.","Re-read volatile facts instead of trusting old memories.","Recompute cheap derived values when staleness would be costly.","Test memory writes as carefully as memory reads.","Measure failures separately: state error, memory error, retrieval error, context-construction error, reasoning error, and action error.",{},{"id":594,"data":1118,"type":42,"tunes":1120},{"text":1119,"level":219},"What would change this answer?",{},{"id":599,"data":1122,"type":226,"tunes":1124},{"text":1123},"The boundary between these layers can move as agent platforms evolve. A vendor may offer a managed memory service that internally performs storage, revision, retrieval, summarization, and context construction. That can collapse implementation components, but it does not eliminate the architectural questions. You still need to know whether a returned item is current state, persistent memory, retrieved evidence, or simply text placed into context.",{},{"id":604,"data":1126,"type":226,"tunes":1128},{"text":1127},"The recommendation would also change for systems with no cross-session continuity, systems where every task starts from a clean immutable corpus, or tightly bounded workflows where all relevant state fits safely inside one call. In those cases, a dedicated long-term memory layer may add complexity without enough value.",{},{"id":609,"data":1130,"type":42,"tunes":1132},{"text":1131,"level":219},"Limitations",{},{"id":614,"data":1134,"type":226,"tunes":1136},{"text":1135},"Terminology in agent systems is still moving quickly. Some frameworks call conversation history “memory,” others use “session,” “checkpoint,” “store,” “context,” or “state.” Research systems also define memory at different levels, from persistent lookup to learned internal adaptation. The model in this article deliberately separates operational responsibilities rather than trying to impose one universal vocabulary.",{},{"id":619,"data":1138,"type":42,"tunes":1140},{"text":1139,"level":219},"Conclusion",{},{"id":624,"data":1142,"type":226,"tunes":1144},{"text":1143},"The useful question is not “Does this agent have memory?” It is: What is state, what is persisted from experience, how is relevant information retrieved, and what finally reaches the model as context?",{},{"id":629,"data":1146,"type":226,"tunes":1148},{"text":1147},"Once those responsibilities are separated, design choices become easier to test. Stale facts can be traced to state ownership. Bad recall can be traced to memory lifecycle or retrieval. Overloaded prompts can be traced to context construction. Persistent hallucinations can be traced to write policy and provenance. RAG remains an important tool, but it is only one part of a reliable long-running agent architecture.",{},{"id":634,"data":1150,"type":42,"tunes":1152},{"text":1151,"level":219},"FAQ",{},{"id":639,"data":1154,"type":639,"tunes":1169},{"items":1155,"title":1168},[1156,1159,1162,1165],{"id":643,"answer":1157,"question":1158},"No. RAG is primarily a retrieval pattern that selects information for a model call. Memory concerns what information from prior interactions or experience persists across time and how that information is governed.","Is RAG the same as AI agent memory?",{"id":647,"answer":1160,"question":1161},"It can be part of one, but a vector database by itself is a storage and retrieval component. A production memory architecture also needs decisions about what to store, provenance, revision, conflicts, access, expiration, and forgetting.","Is a vector database an agent memory?",{"id":651,"answer":1163,"question":1164},"Not necessarily. Larger context helps with capacity, but it does not solve persistent knowledge across sessions, freshness, provenance, privacy scope, revision, or deciding what should be reused later.","Does a larger context window remove the need for memory?",{"id":655,"answer":1166,"question":1167},"Usually the authoritative application or domain system should remain the source of truth for volatile state. Memory may record the history or significance of state changes, but consequential actions should re-read current authoritative values.","Should current application state be stored as memory?","AI agent memory, RAG, state and context",{},{"id":661,"data":1171,"type":42,"tunes":1173},{"text":1172,"level":219},"Glossary",{},{"id":666,"data":1175,"type":666,"tunes":1191},{"title":1176,"entries":1177},"Key terms",[1178,1180,1182,1184,1186,1188],{"term":842,"anchor":672,"definition":1179},"The current authoritative condition of a task, application, user, workflow, or environment.",{"term":847,"anchor":676,"definition":1181},"Information from prior experience or interaction that persists because it may be useful later and is subject to lifecycle rules.",{"term":852,"anchor":680,"definition":1183},"The mechanism used to select potentially relevant information from memory, external knowledge, databases, graphs, or other stores.",{"term":857,"anchor":684,"definition":1185},"The information actually available to the language model during a particular inference or generation step.",{"term":687,"anchor":688,"definition":1187},"Retrieval-augmented generation: a pattern in which external or stored information is retrieved and supplied to a generative model to improve the current output.",{"term":1189,"anchor":692,"definition":1190},"Provenance","Metadata describing where information came from, when it was observed, who or what asserted it, and how it was transformed.",{},{"id":696,"data":1193,"type":42,"tunes":1195},{"text":1194,"level":219},"Primary sources and further reading",{},{"id":701,"data":1197,"type":709,"tunes":1201},{"link":703,"meta":1198},{"image":1199,"title":707,"description":1200},{"url":706},"OpenAI guidance on trimming and compression for long-running agent context.",{},{"id":712,"data":1203,"type":709,"tunes":1207},{"link":714,"meta":1204},{"image":1205,"title":717,"description":1206},{"url":706},"Documentation showing persistent memory as a capability with progressive disclosure and read\u002Fwrite behaviour.",{},{"id":721,"data":1209,"type":709,"tunes":1213},{"link":723,"meta":1210},{"image":1211,"title":726,"description":1212},{"url":706},"Engineering guidance on curating finite model context for reliable agent behaviour.",{},{"id":730,"data":1215,"type":709,"tunes":1219},{"link":732,"meta":1216},{"image":1217,"title":735,"description":1218},{"url":706},"Research on balancing abstraction and specificity in long-horizon agent memory.",{},{"id":739,"data":1221,"type":709,"tunes":1225},{"link":741,"meta":1222},{"image":1223,"title":744,"description":1224},{"url":706},"Research on converting raw agent interaction histories into reusable structured knowledge.",{},{"id":748,"data":1227,"type":709,"tunes":1231},{"link":750,"meta":1228},{"image":1229,"title":753,"description":1230},{"url":706},"Research on evolving context as structured playbooks rather than repeatedly rewriting or compressing everything.",{},"2.31.6","Agent memory, RAG, state, and context are often used as if they were interchangeable. They are not. This practical architecture model separates the four layers, shows where each belongs, and explains what breaks when systems collapse them into one.",{"lang":7,"title":208,"content":210,"contentJson":1235,"excerpt":757},{"time":212,"blocks":1236,"version":756},[1237,1240,1243,1246,1249,1252,1255,1258,1261,1270,1273,1276,1279,1282,1285,1288,1291,1294,1297,1300,1303,1306,1309,1319,1322,1325,1328,1331,1334,1337,1346,1349,1352,1363,1366,1378,1381,1384,1387,1390,1393,1396,1399,1402,1405,1408,1411,1416,1419,1422,1425,1428,1431,1434,1437,1440,1443,1451,1454,1464,1467,1472,1477,1482,1487,1492],{"id":215,"data":1238,"type":220,"tunes":1239},{"title":217,"maxLevel":218,"minLevel":219},{},{"id":223,"data":1241,"type":226,"tunes":1242},{"text":225},{},{"id":229,"data":1244,"type":234,"tunes":1245},{"body":231,"title":232,"variant":233},{},{"id":237,"data":1247,"type":234,"tunes":1248},{"body":239,"title":240,"variant":241},{},{"id":244,"data":1250,"type":42,"tunes":1251},{"text":246,"level":219},{},{"id":249,"data":1253,"type":226,"tunes":1254},{"text":251},{},{"id":254,"data":1256,"type":226,"tunes":1257},{"text":256},{},{"id":259,"data":1259,"type":42,"tunes":1260},{"text":261,"level":219},{},{"id":264,"data":1262,"type":292,"tunes":1269},{"content":1263,"stretched":43,"withHeadings":14},[1264,1265,1266,1267,1268],[268,269,270,271],[273,274,275,276],[278,279,280,281],[283,284,285,286],[288,289,290,291],{},{"id":295,"data":1271,"type":42,"tunes":1272},{"text":297,"level":218},{},{"id":300,"data":1274,"type":226,"tunes":1275},{"text":302},{},{"id":305,"data":1277,"type":226,"tunes":1278},{"text":307},{},{"id":310,"data":1280,"type":42,"tunes":1281},{"text":312,"level":218},{},{"id":315,"data":1283,"type":226,"tunes":1284},{"text":317},{},{"id":320,"data":1286,"type":226,"tunes":1287},{"text":322},{},{"id":325,"data":1289,"type":42,"tunes":1290},{"text":327,"level":218},{},{"id":330,"data":1292,"type":226,"tunes":1293},{"text":332},{},{"id":335,"data":1295,"type":226,"tunes":1296},{"text":337},{},{"id":340,"data":1298,"type":42,"tunes":1299},{"text":342,"level":218},{},{"id":345,"data":1301,"type":226,"tunes":1302},{"text":347},{},{"id":350,"data":1304,"type":226,"tunes":1305},{"text":352},{},{"id":355,"data":1307,"type":42,"tunes":1308},{"text":357,"level":219},{},{"id":360,"data":1310,"type":383,"tunes":1318},{"steps":1311,"title":381,"orientation":382},[1312,1313,1314,1315,1316,1317],{"label":364,"description":365},{"label":367,"description":368},{"label":370,"description":371},{"label":373,"description":374},{"label":376,"description":377},{"label":379,"description":380},{},{"id":386,"data":1320,"type":42,"tunes":1321},{"text":388,"level":219},{},{"id":391,"data":1323,"type":226,"tunes":1324},{"text":393},{},{"id":396,"data":1326,"type":226,"tunes":1327},{"text":398},{},{"id":401,"data":1329,"type":234,"tunes":1330},{"body":403,"title":404,"variant":405},{},{"id":408,"data":1332,"type":42,"tunes":1333},{"text":410,"level":219},{},{"id":413,"data":1335,"type":226,"tunes":1336},{"text":415},{},{"id":418,"data":1338,"type":292,"tunes":1345},{"content":1339,"stretched":43,"withHeadings":14},[1340,1341,1342,1343,1344],[422,423],[425,273],[427,278],[429,283],[431,288],{},{"id":434,"data":1347,"type":226,"tunes":1348},{"text":436},{},{"id":439,"data":1350,"type":42,"tunes":1351},{"text":441,"level":219},{},{"id":444,"data":1353,"type":292,"tunes":1362},{"content":1354,"stretched":43,"withHeadings":14},[1355,1356,1357,1358,1359,1360,1361],[448,449,450],[452,453,454],[456,457,458],[460,461,462],[464,465,466],[468,469,470],[472,473,474],{},{"id":477,"data":1364,"type":42,"tunes":1365},{"text":479,"level":219},{},{"id":482,"data":1367,"type":292,"tunes":1377},{"content":1368,"stretched":43,"withHeadings":14},[1369,1370,1371,1372,1373,1374,1375,1376],[486,487,488],[490,491,492],[494,495,496],[498,499,500],[502,503,504],[506,507,508],[510,511,512],[514,515,516],{},{"id":519,"data":1379,"type":42,"tunes":1380},{"text":521,"level":219},{},{"id":524,"data":1382,"type":226,"tunes":1383},{"text":526},{},{"id":529,"data":1385,"type":226,"tunes":1386},{"text":531},{},{"id":534,"data":1388,"type":234,"tunes":1389},{"body":536,"title":537,"variant":538},{},{"id":541,"data":1391,"type":42,"tunes":1392},{"text":543,"level":219},{},{"id":546,"data":1394,"type":226,"tunes":1395},{"text":548},{},{"id":551,"data":1397,"type":226,"tunes":1398},{"text":553},{},{"id":556,"data":1400,"type":42,"tunes":1401},{"text":558,"level":219},{},{"id":561,"data":1403,"type":226,"tunes":1404},{"text":563},{},{"id":566,"data":1406,"type":226,"tunes":1407},{"text":568},{},{"id":571,"data":1409,"type":42,"tunes":1410},{"text":573,"level":219},{},{"id":576,"data":1412,"type":591,"tunes":1415},{"meta":1413,"items":1414,"style":590},{},[580,581,582,583,584,585,586,587,588,589],{},{"id":594,"data":1417,"type":42,"tunes":1418},{"text":596,"level":219},{},{"id":599,"data":1420,"type":226,"tunes":1421},{"text":601},{},{"id":604,"data":1423,"type":226,"tunes":1424},{"text":606},{},{"id":609,"data":1426,"type":42,"tunes":1427},{"text":611,"level":219},{},{"id":614,"data":1429,"type":226,"tunes":1430},{"text":616},{},{"id":619,"data":1432,"type":42,"tunes":1433},{"text":621,"level":219},{},{"id":624,"data":1435,"type":226,"tunes":1436},{"text":626},{},{"id":629,"data":1438,"type":226,"tunes":1439},{"text":631},{},{"id":634,"data":1441,"type":42,"tunes":1442},{"text":636,"level":219},{},{"id":639,"data":1444,"type":639,"tunes":1450},{"items":1445,"title":658},[1446,1447,1448,1449],{"id":643,"answer":644,"question":645},{"id":647,"answer":648,"question":649},{"id":651,"answer":652,"question":653},{"id":655,"answer":656,"question":657},{},{"id":661,"data":1452,"type":42,"tunes":1453},{"text":663,"level":219},{},{"id":666,"data":1455,"type":666,"tunes":1463},{"title":668,"entries":1456},[1457,1458,1459,1460,1461,1462],{"term":671,"anchor":672,"definition":673},{"term":675,"anchor":676,"definition":677},{"term":679,"anchor":680,"definition":681},{"term":683,"anchor":684,"definition":685},{"term":687,"anchor":688,"definition":689},{"term":691,"anchor":692,"definition":693},{},{"id":696,"data":1465,"type":42,"tunes":1466},{"text":698,"level":219},{},{"id":701,"data":1468,"type":709,"tunes":1471},{"link":703,"meta":1469},{"image":1470,"title":707,"description":708},{"url":706},{},{"id":712,"data":1473,"type":709,"tunes":1476},{"link":714,"meta":1474},{"image":1475,"title":717,"description":718},{"url":706},{},{"id":721,"data":1478,"type":709,"tunes":1481},{"link":723,"meta":1479},{"image":1480,"title":726,"description":727},{"url":706},{},{"id":730,"data":1483,"type":709,"tunes":1486},{"link":732,"meta":1484},{"image":1485,"title":735,"description":736},{"url":706},{},{"id":739,"data":1488,"type":709,"tunes":1491},{"link":741,"meta":1489},{"image":1490,"title":744,"description":745},{"url":706},{},{"id":748,"data":1493,"type":709,"tunes":1496},{"link":750,"meta":1494},{"image":1495,"title":753,"description":754},{"url":706},{},"Post erfolgreich abgerufen",{"items":1499,"source":1570,"manualIds":1571,"manualMatchedIds":1572},[1500,1507,1514,1521,1528,1535,1542,1549,1556,1563],{"id":1501,"slug":1502,"title":1503,"excerpt":1504,"featuredImage":1505,"publishedAt":1506},"363","front-und-backend-entwicklung","Frontend i Backend Razvoj","Front-end i back-end razvoj je suštinski deo veb razvoja i obuhvata kreiranje veb aplikacija i veb-sajtova. Front-end razvoj se fokusira na korisnički interfejs, dok je back-end razvoj odgovoran za programiranje i upravljanje serverskom stranom.","\u002Fuploads\u002F2026\u002F03\u002Ffront-und-backend-entwicklung-1774872219531-wyu4i1.webp","2023-04-12T11:11:00.000Z",{"id":1508,"slug":1509,"title":1510,"excerpt":1511,"featuredImage":1512,"publishedAt":1513},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG nije uspeo — ali koji sloj je zapravo zakazao? Dijagnostička metoda","Kada je RAG odgovor pogrešan, kriviti pretragu ili model je previše neodređeno. Ova dijagnostička metoda izoluje pokrivenost izvora, konstrukciju upita, pretragu, rangiranje, sastavljanje konteksta, generisanje, pripisivanje dokaza i svežinu—tako da se stvarni kvar može reprodukovati i ispraviti.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z",{"id":1515,"slug":1516,"title":1517,"excerpt":1518,"featuredImage":1519,"publishedAt":1520},"467","the-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers","Granica valjanosti odgovora: Nedostajući sloj između relevantnosti i pouzdanih AI odgovora","Izvor može biti relevantan, autoritativan i ipak pogrešan za pitanje koje se postavlja. Sloj koji nedostaje je primenljivost: uslovi pod kojima odgovor važi i promene koje ga primoravaju na preispitivanje. Ovaj članak predstavlja Granicu važenja odgovora kao obrazac za dizajn izvora za ljude, AI pretragu i RAG sisteme.","\u002Fuploads\u002F2026\u002F09\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers-1790272901306-1g5jly.webp","2026-09-24T11:59:00.000Z",{"id":1522,"slug":1523,"title":1524,"excerpt":1525,"featuredImage":1526,"publishedAt":1527},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama nije proizvod: Izgradnja aplikacija spremnih za produkciju sa otvorenim LLM-ovima","Pokretanje lokalnog modela pomoću Ollama-e je jednostavno. Izgradnja Open-LLM aplikacije spremne za produkciju je teža: zahteva RAG, kontrolu pristupa, apstrakciju provajdera, evaluaciju, logovanje, disciplinu puštanja u rad i kontrolisani aplikativni sloj oko modela.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1529,"slug":1530,"title":1531,"excerpt":1532,"featuredImage":1533,"publishedAt":1534},"472","why-more-context-can-make-ai-answers-worse","Zašto više konteksta može pogoršati AI odgovore","Veći kontekstni prozor ne garantuje bolji odgovor. Ovaj članak objašnjava kako razblaživanje signala, protivrečni dokazi, zastarelo stanje, osetljivost na poziciju i kompresija sa gubicima mogu smanjiti pouzdanost veštačke inteligencije—i uvodi praktičan test pritiska konteksta.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-more-context-can-make-ai-answers-worse-1790351615793-2ntv2v.webp","2026-09-25T11:51:00.000Z",{"id":1536,"slug":1537,"title":1538,"excerpt":1539,"featuredImage":1540,"publishedAt":1541},"470","what-should-an-ai-agent-remember-forget-recompute-or-retrieve-again","Šta bi AI agent trebalo da zapamti, zaboravi, ponovo izračuna ili ponovo preuzme?","Dugotrajni agenti ne bi trebalo da pamte sve. Ovaj članak pruža praktičan model životnog ciklusa za odlučivanje o tome šta pripada trajnoj memoriji, šta bi trebalo ponovo preuzeti, šta je bezbednije ponovo izračunati i šta bi trebalo da istekne ili bude zamenjeno.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-should-an-ai-agent-remember-forget-recompute-or-retrieve-again-1790351131087-iehz28.webp","2026-09-25T09:43:00.000Z",{"id":1543,"slug":1544,"title":1545,"excerpt":1546,"featuredImage":1547,"publishedAt":1548},"476","mcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained","MCP vs A2A vs UCP vs AP2 vs A2UI: Objašnjen stek agentskih protokola","MCP, A2A, UCP, AP2 i A2UI se često predstavljaju kao konkurentski standardi za agente. Oni uglavnom rešavaju različite probleme interoperabilnosti. Ovaj vodič mapira svaki protokol na granicu koju zapravo standardizuje—i pokazuje kako oni mogu da rade zajedno u jednom produkcionom sistemu.","\u002Fuploads\u002F2026\u002F09\u002Fmcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained-1790352625869-2ezle0.webp","2026-09-25T12:09:00.000Z",{"id":1550,"slug":1551,"title":1552,"excerpt":1553,"featuredImage":1554,"publishedAt":1555},"466","the-gpu-is-not-the-product-future-proof-private-ai-architecture","GPU nije proizvod: Privatna AI arhitektura spremna za budućnost","Privatna AI infrastruktura ne bi trebalo da bude projektovana oko jednog GPU-a ili jednog modela. Otporniji pristup kombinuje brze GPU-ove za inferenciju, memorijski bogate AI sisteme, čvorove za fizički AI i opcione vodeće modele u oblaku iza sloja za rutiranje koji prepoznaje mogućnosti.","\u002Fuploads\u002F2026\u002F09\u002Fthe-gpu-is-not-the-product-future-proof-private-ai-architecture-1790140878812-8hsl39.webp","2026-09-23T01:19:00.000Z",{"id":1557,"slug":1558,"title":1559,"excerpt":1560,"featuredImage":1561,"publishedAt":1562},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Šta je RAG? Najjednostavnije objašnjenje kako funkcioniše","RAG zvuči komplikovano, ali ideja je jednostavna: pre nego što AI odgovori, prvo potraži korisne informacije iz izvora znanja i daje te informacije jezičkom modelu. Ovaj vodič objašnjava RAG, LLM-ove, stanje, memoriju i alate koristeći jedan jednostavan mentalni model.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z",{"id":1564,"slug":1565,"title":1566,"excerpt":1567,"featuredImage":1568,"publishedAt":1569},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Ovladavanje SEO radnim tokom: Ključne strategije optimizacije za organski rast","Strukturiran SEO tok posla je ključan za održiv organski rast. Naučite deset osnovnih strategija, od istraživanja ključnih reči i tehničke optimizacije do kvaliteta sadržaja i analize performansi.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z","fallback",[],[]]