[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:ru":3,"public-menus:all":38,"post:ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context:ru":205,"related:post:ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context:ru:1":1499},{"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","ru","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":1498},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":758,"featuredImage":759,"featuredImageAlt":760,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":761,"publishedAt":762,"createdAt":763,"updatedAt":764,"seoLocalePaths":765,"categories":774,"author":787,"translations":792},"468","Память ИИ-агента — это не RAG: как разграничить память, извлечение, состояние и контекст","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Содержание\">\u003Cstrong class=\"editorjs-toc__title\">Содержание\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\">Категориальная ошибка: считать памятью все, что сохраняет данные\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-8\" class=\"editorjs-toc__link\">Четырехслойная архитектура: состояние, память, поиск, контекст\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. Состояние: что истинно прямо сейчас\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-13\" class=\"editorjs-toc__link\">2. Память: что из прошлого должно сохраниться\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-16\" class=\"editorjs-toc__link\">3. Поиск: что следует отобрать сейчас\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-19\" class=\"editorjs-toc__link\">4. Контекст: что модель может реально использовать прямо сейчас\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-22\" class=\"editorjs-toc__link\">Как взаимодействуют слои\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">Почему RAG — это не память\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-28\" class=\"editorjs-toc__link\">Тест на разделение четырех слоев\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-32\" class=\"editorjs-toc__link\">Типичные сбои из-за смешения слоев\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-34\" class=\"editorjs-toc__link\">Что следует помнить, извлекать, пересчитывать или перечитывать?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">Системе памяти необходима политика записи, а не только политика извлечения\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Происхождение данных — мост между памятью и достоверными доказательствами\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-43\" class=\"editorjs-toc__link\">Больше памяти не означает больше контекста\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-46\" class=\"editorjs-toc__link\">Чек-лист для проектирования продакшен-систем\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Что могло бы изменить эти выводы?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-51\" class=\"editorjs-toc__link\">Ограничения\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Заключение\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-56\" class=\"editorjs-toc__link\">Часто задаваемые вопросы (FAQ)\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">Глоссарий\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-60\" class=\"editorjs-toc__link\">Первоисточники и материалы для дальнейшего чтения\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Cp>Память ИИ-агентов, генерацию с расширенным поиском (RAG), состояние во время выполнения (state) и контекст модели часто обсуждают так, будто они взаимозаменяемы. Но это не так. Сведение их к единому понятию затрудняет проектирование агентных систем, усложняет отладку и повышает риск использования устаревших или небезопасных данных.\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\">Краткий ответ\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;RAG — это не память агента.&lt;\u002Fstrong&gt; RAG — это паттерн поиска (retrieval): он отбирает информацию, которая может быть полезна для текущего вызова модели. Память — это сохраняемая информация, полученная из прошлого взаимодействия или опыта и управляемая во времени. Состояние представляет то, что истинно в текущий момент для запущенной задачи или среды. Контекст — это информация, фактически предоставленная модели для текущего вывода. Продакшн-агент может использовать все четыре компонента, но они решают разные задачи.\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\">О модели, используемой в этой статье\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Представленное ниже четырехслойное разделение — это практическая архитектурная модель, а не формальный отраслевой стандарт. Поставщики решений и исследовательские статьи часто используют пересекающуюся терминологию. Цель этой модели практическая: сделать проектные решения, распределение ответственности, анализ сбоев и тестирование более четкими.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-5\">Категориальная ошибка: считать памятью все, что сохраняет данные\u003C\u002Fh2>\n\u003Cp>Векторная база данных может хранить фрагменты диалогов. Объект сессии может содержать последние реплики. Строка в базе данных может хранить текущий статус рабочего процесса. Суммаризатор может сжимать результаты предыдущей работы. Ретривер может извлекать прошлые свидетельства. Все это может создавать впечатление, будто агент «помнит», но семантика у этих механизмов совершенно разная.\u003C\u002Fp>\n\u003Cp>Это различие критически важно, поскольку к каждому компоненту предъявляются свои требования корректности. Текущее состояние должно быть авторитетным и актуальным. Памяти требуются правила жизненного цикла: записи, пересмотра, забывания и разрешения конфликтов. Поиску необходимы релевантность и качество отбора свидетельств. Контексту нужны дисциплина расхода токенов и защита от нерелевантных или противоречивых данных.\u003C\u002Fp>\n\u003Ch2 id=\"section-8\">Четырехслойная архитектура: состояние, память, поиск, контекст\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\">Уровень\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ключевой вопрос\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Типичные примеры\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Основное требование корректности\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Состояние (State)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Что истинно прямо сейчас?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Статус задачи, содержимое корзины, шаг рабочего процесса, активные права доступа, текущее состояние игры\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Актуальность и авторитетность\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Память (Memory)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Что из прошлого должно сохраниться?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Предпочтение пользователя, прошлое решение, усвоенное ограничение, устраненный сбой, неизменный факт о проекте\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Жизненный цикл, пересмотр, происхождение данных, забывание\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Поиск (Retrieval)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Какую информацию следует отобрать сейчас?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Векторный поиск, поиск по ключевым словам, обход графа, реранкинг, поиск по документам\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Релевантность и отбор свидетельств\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Контекст (Context)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Что видит модель при данном вызове?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Системные инструкции, текущий запрос, извлеченные фрагменты, результаты работы инструментов, сводки\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Полезность на токен, порядок, согласованность, уровень шума\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch3 id=\"section-10\">1. Состояние: что истинно прямо сейчас\u003C\u002Fh3>\n\u003Cp>Состояние принадлежит работающей системе, а не воспоминаниям модели. Если заказ отменен, деплой приостановлен, пользователь лишен прав или задача перешла из статуса «в работе» в статус «одобрено», авторитетное значение должно поступать из системы, владеющей этим фактом.\u003C\u002Fp>\n\u003Cp>Опасный паттерн проектирования — позволить старой сводке диалога подменять собой текущее состояние. Агент может безошибочно помнить, что вчера заказ был активен, но сегодня это утверждение уже неверно. Поэтому состоянию требуются явный владелец данных, версионирование или временные метки (где это применимо), а также механизм повторного чтения первоисточника перед выполнением критически важных действий.\u003C\u002Fp>\n\u003Ch3 id=\"section-13\">2. Память: что из прошлого должно сохраниться\u003C\u002Fh3>\n\u003Cp>Память — это не просто «все, что мы можем сохранить». Полноценный слой памяти определяет, что заслуживает сохранения, в каком виде, на какой срок, с каким источником происхождения и при каких условиях эти данные должны быть пересмотрены или удалены.\u003C\u002Fp>\n\u003Cp>В современных исследованиях памяти агентов хранение сырых логов диалогов все чаще признается недостаточным. Проект PlugMem от Microsoft ориентирован на преобразование необработанных историй взаимодействия в структурированные знания повторного использования. Memora отделяет детализированный хранимый контент от более легковесных абстракций и поисковых ориентиров, избавляя системы с длительным циклом работы от необходимости выбирать между детализацией и масштабируемым доступом.\u003C\u002Fp>\n\u003Ch3 id=\"section-16\">3. Поиск: что следует отобрать сейчас\u003C\u002Fh3>\n\u003Cp>Поиск — это механизм отбора. Он может искать по внешним документам, внутренним базам знаний, сохраненной памяти, логам, графам, базам данных или смешанным источникам. RAG обычно находится именно здесь: извлечь свидетельства, поместить отобранные материалы в рабочий ввод модели и затем сгенерировать ответ.\u003C\u002Fp>\n\u003Cp>Этот механизм не становится памятью только из-за того, что поисковый корпус содержит прошлые взаимодействия. Один и тот же ретривер может искать документы регламентов, с которыми агент никогда не сталкивался, данные о продуктах из сторонней системы или прошлые решения пользователя. Поиск описывает, как отбирается информация; память описывает, почему определенная информация сохраняется во времени и как управляется это хранение.\u003C\u002Fp>\n\u003Ch3 id=\"section-19\">4. Контекст: что модель может реально использовать прямо сейчас\u003C\u002Fh3>\n\u003Cp>Контекст — это слой, обращенный непосредственно к модели. Anthropic описывает контекстную инженерию как определение такой конфигурации контекста, которая с наибольшей вероятностью приведет к желаемому поведению, где контекст — это токены, доступные модели в процессе генерации. В руководстве OpenAI по сессионной памяти обрезка и сжатие аналогичным образом рассматриваются как методы управления контекстом при длительных взаимодействиях с агентом.\u003C\u002Fp>\n\u003Cp>Именно поэтому система может обладать превосходной памятью, но все равно давать сбой. Нужное воспоминание может существовать, но не быть извлеченным. Оно может быть извлечено, но помещено в контекст рядом с более убедительным противоречащим текстом. Оно может быть сжато настолько, что исчезнет ключевая деталь. Или же модель может получить такой объем данных, что полезные факты просто растворятся в шуме.\u003C\u002Fp>\n\u003Ch2 id=\"section-22\">Как взаимодействуют слои\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Один из возможных производственных процессов\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. Чтение авторитетного состояния\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Загрузка актуальных фактов о задаче, пользователе, системе или среде из систем, которые ими владеют.\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. Определение потребности в памяти\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Определение того, имеют ли значение прошлые решения, предпочтения, полученный опыт или долгосрочные ограничения.\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. Извлечение свидетельств\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Поиск в памяти и внешних знаниях с использованием семантического, лексического, графового, структурированного или гибридного поиска.\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. Формирование контекста\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Компоновка инструкций, текущего состояния, выбранных фактов и сжатой истории в пределах доступного контекстного окна модели.\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. Генерация или действие\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Модель рассуждает на основе собранного контекста и формирует ответ, план или вызов инструмента.\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. Валидация и обратная запись\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Проверка критически важных результатов, обновление авторитетного состояния там, где это разрешено, и сохранение только тех воспоминаний, которые соответствуют политике записи.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-24\">Почему RAG — это не память\u003C\u002Fh2>\n\u003Cp>Самый простой тест таков: система RAG может извлечь информацию, которую агент никогда раньше не видел. Одно это доказывает, что поиск и память представляют собой разные абстракции.\u003C\u002Fp>\n\u003Cp>RAG отвечает на вопрос: «Какие свидетельства мне следует получить?» Система памяти должна дополнительно отвечать на такие вопросы, как: «Должно ли это событие стать долговременным знанием?», «Заменяет ли эта новая информация более старое воспоминание?», «Можно ли по-прежнему доверять этому воспоминанию?», «Кому разрешено его читать?» и «Когда его следует забыть?»\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\">Распространенная архитектурная ловушка\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Если каждая реплика диалога преобразуется в векторные эмбеддинги, отправляется в хранилище и затем извлекается по сходству, система получает возможность долговременного поиска, но вовсе не обязательно управляемую архитектуру памяти. Само по себе постоянное хранение еще не гарантирует качество памяти.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-28\">Тест на разделение четырех слоев\u003C\u002Fh2>\n\u003Cp>Когда какую-либо функцию называют «памятью», задайте следующие четыре вопроса. Ответы на них обычно показывают, о каком слое идет речь на самом деле.\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\">Вопрос\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Если да, то в первую очередь вы имеете дело с\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Отражает ли это текущее авторитетное состояние задачи или среды?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Состоянием (State)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Должна ли эта информация пережить текущий запуск, поскольку она фиксирует полезный прошлый опыт, предпочтение или решение?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Памятью (Memory)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Заключается ли главная задача в определении того, какая сохраненная или внешняя информация актуальна для текущего запроса?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Поиском\u002Fизвлечением (Retrieval)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Заключается ли главная задача в определении того, какую информацию поместить в текущий вызов модели?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Контекстом (Context)\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Один и тот же компонент может участвовать в работе более чем одного слоя. База данных может хранить как состояние, так и память. Векторный индекс может извлекать как внешние знания, так и воспоминания. Это разделение является семантическим, а не обязательно физическим.\u003C\u002Fp>\n\u003Ch2 id=\"section-32\">Типичные сбои из-за смешения слоев\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\">Тип сбоя\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Что произошло\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Результат\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Устаревшее состояние под видом памяти\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Доверие оказывается старой сводке вместо повторного чтения данных из авторитетной системы\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Агент действует на основе фактов, которые когда-то были правдой\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Отношение к памяти как к непреложному факту\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Прошлое предпочтение или решение сохраняется без правил пересмотра\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Устаревшая информация продолжает влиять на последующие ответы\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Результат поиска принимается за истину\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокая степень схожести ошибочно принимается за фактическую достоверность\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Правдоподобные, но некорректные свидетельства берут верх\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Перегрузка контекста\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">В контекст передается слишком много найденных фрагментов, воспоминаний, логов и инструкций\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Решающие свидетельства размываются или нейтрализуются противоречиями\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Неконтролируемая запись в память\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Сгенерированные моделью интерпретации автоматически сохраняются как долговременная память\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ошибки закрепляются и усиливают сами себя\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Отсутствие отслеживания происхождения данных\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Система не способна отличить утверждение пользователя от исходного факта, вывода модели или сгенерированной сводки\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Последующее извлечение данных лишает информацию статуса доказательности\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-34\">Что следует помнить, извлекать, пересчитывать или перечитывать?\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\">Тип информации\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Предпочтительный подход\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Причина\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Текущие права доступа, статус заказа, складские запасы, этап рабочего процесса\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Повторно считывать авторитетное состояние\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Свежесть важнее воспоминаний\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Устойчивое предпочтение, явно указанное пользователем\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Память с семантикой редактирования и удаления\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Полезно между сессиями и принадлежит пользователю\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Решение, принятое в ходе длительного проекта\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Память с временной меткой, источником происхождения и правилами замещения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">История имеет значение, но решения могут меняться\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Спецификация продукта или общедоступный нормативный документ\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Извлекать из источника\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Внешние знания должны оставаться привязанными к своим подтверждающим источникам\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Производная метрика, которую можно легко рассчитать заново\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Пересчитывать\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Позволяет избежать сохранения устаревших вычисленных значений\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Длинный сырой вывод инструмента\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Хранить во внешней системе; извлекать или суммаризировать по необходимости\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Не расходует контекст на постоянной основе\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Гипотеза модели или неопределенная интерпретация\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Не переносить автоматически в долговременную память\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Логический вывод не равнозначен факту\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-36\">Системе памяти необходима политика записи, а не только политика извлечения\u003C\u002Fh2>\n\u003Cp>Обсуждения архитектуры RAG часто сосредоточены на качестве поиска: чанкинге, эмбеддингах, переранжировании, гибридном поиске и заземлении (grounding). Долгосрочная память обнажает другую сторону проблемы: что вообще допустимо сохранять в постоянное хранилище?\u003C\u002Fp>\n\u003Cp>Для долговременной памяти агента практичная политика записи должна классифицировать потенциальные воспоминания, сохранять сведения о происхождении данных (provenance), выявлять конфликты с существующими записями, отличать непосредственные наблюдения от умозаключений, определять уровень конфиденциальности и область доступа, а также решать, должна ли информация устаревать, обновляться или требовать подтверждения пользователя.\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\">Принцип проектирования\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Чем дороже со временем обходится ошибочное воспоминание, тем строже должна быть политика записи. Неудачный поиск влияет лишь на один ответ. Ошибочная долговременная память может повлиять на каждый будущий ответ, в котором она используется.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-40\">Происхождение данных — мост между памятью и достоверными доказательствами\u003C\u002Fh2>\n\u003Cp>Запись в памяти в идеале должна сохранять достаточно сведений о происхождении, чтобы ответить на вопросы: откуда это взялось, когда было зафиксировано, кто или что это утверждало, было ли это предоставлено пользователем или выведено моделью, какой источник это подтверждал и не появилось ли что-то, что это отменяет?\u003C\u002Fp>\n\u003Cp>Без сведений о происхождении сжатое воспоминание может стать более авторитетным, чем породившие его свидетельства. Это особенно рискованно в долгоживущих агентах, где саммари и абстракции используются повторно снова и снова. Система может сохранить вывод, потеряв условия, при которых этот вывод был верен.\u003C\u002Fp>\n\u003Ch2 id=\"section-43\">Больше памяти не означает больше контекста\u003C\u002Fh2>\n\u003Cp>Долгоживущий агент может накапливать гигабайты состояния, истории, документов и усвоенной информации. Модели не требуется — и обычно не следует передавать — все эти данные на каждом шаге. Цель поиска, обобщения, сжатия и структурированной памяти — преобразовать обширное постоянное информационное пространство в компактный, релевантный рабочий контекст.\u003C\u002Fp>\n\u003Cp>Именно поэтому увеличение контекстного окна не устраняет необходимость в архитектуре памяти. Вместимость снижает часть ограничений, но не решает проблем актуальности, авторитетности, противоречивых свидетельств, разграничения доступа, качества записи, обновления данных или выбора того, что действительно заслуживает внимания.\u003C\u002Fp>\n\u003Ch2 id=\"section-46\">Чек-лист для проектирования продакшен-систем\u003C\u002Fh2>\n\u003Cul>\u003Cli>Определите, какие системы владеют авторитетным состоянием во время выполнения.\u003C\u002Fli>\u003Cli>Определите, какая информация имеет право сохраняться в долговременную память.\u003C\u002Fli>\u003Cli>Сохраняйте четкое различие между фактами от пользователя, внешними свидетельствами и выводами модели.\u003C\u002Fli>\u003Cli>Прикрепляйте временные метки, сведения о происхождении, область видимости и семантику версионирования к важным воспоминаниям.\u003C\u002Fli>\u003Cli>Разделяйте релевантность при поиске и фактическую авторитетность.\u003C\u002Fli>\u003Cli>Формируйте контекст осмысленно, а не внедряйте все извлеченные материалы без разбора.\u003C\u002Fli>\u003Cli>Перечитывайте изменчивые факты вместо того, чтобы полагаться на старые воспоминания.\u003C\u002Fli>\u003Cli>Пересчитывайте простые производные значения заново, если цена их устаревания слишком высока.\u003C\u002Fli>\u003Cli>Тестируйте операции записи в память так же тщательно, как и операции чтения.\u003C\u002Fli>\u003Cli>Классифицируйте и измеряйте сбои раздельно: ошибки состояния, ошибки памяти, ошибки поиска, ошибки сборки контекста, ошибки рассуждения и ошибки действий.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-48\">Что могло бы изменить эти выводы?\u003C\u002Fh2>\n\u003Cp>Граница между этими слоями может смещаться по мере развития платформ для агентов. Провайдер может предложить управляемый сервис памяти, который берет на себя хранение, ревизию, поиск, обобщение и формирование контекста. Это может объединить компоненты реализации, но не снимает архитектурных вопросов. Вам по-прежнему необходимо понимать, является ли возвращенный элемент текущим состоянием, долговременной памятью, извлеченным свидетельством или просто текстом, помещенным в контекст.\u003C\u002Fp>\n\u003Cp>Рекомендация также изменилась бы для систем без преемственности между сессиями, систем, где каждая задача начинается с чистого неизменяемого корпуса, или жестко ограниченных рабочих процессов, где все необходимое состояние гарантированно помещается в один вызов. В таких случаях выделенный уровень долгосрочной памяти может лишь усложнить систему, не принося достаточной пользы.\u003C\u002Fp>\n\u003Ch2 id=\"section-51\">Ограничения\u003C\u002Fh2>\n\u003Cp>Терминология в сфере агентных систем все еще стремительно формируется. Некоторые фреймворки называют историю диалога «памятью», другие используют понятия «сессия», «чекпоинт», «хранилище», «контекст» или «состояние». Исследовательские системы также определяют память на разных уровнях — от персистентного поиска до обученной внутренней адаптации. Модель, описанная в этой статье, намеренно разделяет эксплуатационные обязанности, вместо того чтобы пытаться навязать единый универсальный словарь.\u003C\u002Fp>\n\u003Ch2 id=\"section-53\">Заключение\u003C\u002Fh2>\n\u003Cp>Практичный вопрос звучит не как «Есть ли у этого агента память?». Он заключается в следующем: что такое состояние, что сохраняется из накопленного опыта, как извлекается нужная информация и что в конечном итоге поступает в модель в виде контекста?\u003C\u002Fp>\n\u003Cp>Когда эти зоны ответственности разделены, проектные решения становится проще тестировать. Устаревшие факты можно свести к владению состоянием. Плохую полноту выборки (recall) можно отследить до жизненного цикла памяти или механизма извлечения данных. Перегруженные промпты — до этапа формирования контекста. Стойкие галлюцинации — до политики записи и происхождения данных (provenance). RAG остается важным инструментом, но это лишь одна из составляющих надежной архитектуры долгоживущих агентов.\u003C\u002Fp>\n\u003Ch2 id=\"section-56\">Часто задаваемые вопросы (FAQ)\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\">Память ИИ-агентов, RAG, состояние и контекст\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\">Является ли RAG тем же самым, что и память ИИ-агента?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Нет. RAG — это прежде всего паттерн извлечения данных, который выбирает информацию для вызова модели. Память же определяет, какая информация из предыдущих взаимодействий или опыта сохраняется во времени и как осуществляется управление этой информацией.\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\">Является ли векторная база данных памятью агента?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Она может быть ее частью, но сама по себе векторная база данных — это компонент хранения и поиска. Продакшн-архитектура памяти также требует решений относительно того, что сохранять, контроля происхождения данных, актуализации, разрешения конфликтов, доступа, срока жизни и механизма забывания.\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\">Устраняет ли увеличенное окно контекста потребность в памяти?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Не обязательно. Больший контекст увеличивает вместимость, но не решает проблемы сохранения знаний между сессиями, их актуальности, происхождения, границ приватности, редактирования или принятия решений о том, что следует использовать повторно в дальнейшем.\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\">Следует ли сохранять текущее состояние приложения как память?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Как правило, авторитетным источником достоверных данных для изменчивого состояния должна оставаться прикладная или доменная система. Память может фиксировать историю или значимость изменений состояния, однако критически важные действия должны заново считывать текущие авторитетные значения.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-58\">Глоссарий\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\">Ключевые термины\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\">Состояние (State)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Текущее эталонное состояние задачи, приложения, пользователя, рабочего процесса или окружения.\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\">Память (Memory)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Информация из предшествующего опыта или взаимодействия, которая сохраняется, поскольку может оказаться полезной в дальнейшем, и подчиняется правилам жизненного цикла.\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\">Извлечение (Retrieval)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Механизм, используемый для выбора потенциально релевантной информации из памяти, внешних баз знаний, баз данных, графов или других хранилищ.\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\">Контекст (Context)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Информация, фактически доступная языковой модели во время конкретного шага инференса или генерации.\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\">Генерация, дополненная поиском (Retrieval-augmented generation): паттерн, при котором внешняя или сохраненная информация извлекается и передается генеративной модели для улучшения текущего ответа.\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\">Происхождение данных (Provenance)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Метаданные, описывающие, откуда поступила информация, когда она была зафиксирована, кто или что ее утвердило и каким трансформациям она подверглась.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-60\">Первоисточники и материалы для дальнейшего чтения\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\">Руководство OpenAI по обрезке и сжатию контекста для долгоживущих агентов.\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\">Документация, демонстрирующая постоянную память как возможность с прогрессивным раскрытием и поведением чтения\u002Fзаписи.\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\">Инженерное руководство по формированию ограниченного контекста модели для обеспечения надежного поведения агентов.\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\">Исследование баланса между абстракцией и детализацией в долговременной памяти агентов.\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\">Исследование преобразования необработанной истории взаимодействий агента в структурированные знания многократного использования.\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\">Исследование эволюции контекста в виде структурированных сценариев вместо постоянного переписывания или сжатия всей информации.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":757},1790370093037,[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,437,442,447,480,485,522,527,532,537,544,549,554,559,564,569,574,579,597,602,607,612,617,622,627,632,637,642,664,669,696,701,712,721,730,739,748],{"id":215,"data":216,"type":220,"tunes":221},"_4kVYTpqbe",{"title":217,"maxLevel":218,"minLevel":219},"Содержание",3,2,"tableOfContents",{},{"id":223,"data":224,"type":226,"tunes":227},"intro",{"text":225},"Память ИИ-агентов, генерацию с расширенным поиском (RAG), состояние во время выполнения (state) и контекст модели часто обсуждают так, будто они взаимозаменяемы. Но это не так. Сведение их к единому понятию затрудняет проектирование агентных систем, усложняет отладку и повышает риск использования устаревших или небезопасных данных.","paragraph",{},{"id":229,"data":230,"type":234,"tunes":235},"direct",{"body":231,"title":232,"variant":233},"\u003Cstrong>RAG — это не память агента.\u003C\u002Fstrong> RAG — это паттерн поиска (retrieval): он отбирает информацию, которая может быть полезна для текущего вызова модели. Память — это сохраняемая информация, полученная из прошлого взаимодействия или опыта и управляемая во времени. Состояние представляет то, что истинно в текущий момент для запущенной задачи или среды. Контекст — это информация, фактически предоставленная модели для текущего вывода. Продакшн-агент может использовать все четыре компонента, но они решают разные задачи.","Краткий ответ","info","callout",{},{"id":237,"data":238,"type":234,"tunes":242},"model-note",{"body":239,"title":240,"variant":241},"Представленное ниже четырехслойное разделение — это практическая архитектурная модель, а не формальный отраслевой стандарт. Поставщики решений и исследовательские статьи часто используют пересекающуюся терминологию. Цель этой модели практическая: сделать проектные решения, распределение ответственности, анализ сбоев и тестирование более четкими.","О модели, используемой в этой статье","note",{},{"id":244,"data":245,"type":42,"tunes":247},"h-category",{"text":246,"level":219},"Категориальная ошибка: считать памятью все, что сохраняет данные",{},{"id":249,"data":250,"type":226,"tunes":252},"p-cat-1",{"text":251},"Векторная база данных может хранить фрагменты диалогов. Объект сессии может содержать последние реплики. Строка в базе данных может хранить текущий статус рабочего процесса. Суммаризатор может сжимать результаты предыдущей работы. Ретривер может извлекать прошлые свидетельства. Все это может создавать впечатление, будто агент «помнит», но семантика у этих механизмов совершенно разная.",{},{"id":254,"data":255,"type":226,"tunes":257},"p-cat-2",{"text":256},"Это различие критически важно, поскольку к каждому компоненту предъявляются свои требования корректности. Текущее состояние должно быть авторитетным и актуальным. Памяти требуются правила жизненного цикла: записи, пересмотра, забывания и разрешения конфликтов. Поиску необходимы релевантность и качество отбора свидетельств. Контексту нужны дисциплина расхода токенов и защита от нерелевантных или противоречивых данных.",{},{"id":259,"data":260,"type":42,"tunes":262},"h-layers",{"text":261,"level":219},"Четырехслойная архитектура: состояние, память, поиск, контекст",{},{"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],"Уровень","Ключевой вопрос","Типичные примеры","Основное требование корректности",[273,274,275,276],"Состояние (State)","Что истинно прямо сейчас?","Статус задачи, содержимое корзины, шаг рабочего процесса, активные права доступа, текущее состояние игры","Актуальность и авторитетность",[278,279,280,281],"Память (Memory)","Что из прошлого должно сохраниться?","Предпочтение пользователя, прошлое решение, усвоенное ограничение, устраненный сбой, неизменный факт о проекте","Жизненный цикл, пересмотр, происхождение данных, забывание",[283,284,285,286],"Поиск (Retrieval)","Какую информацию следует отобрать сейчас?","Векторный поиск, поиск по ключевым словам, обход графа, реранкинг, поиск по документам","Релевантность и отбор свидетельств",[288,289,290,291],"Контекст (Context)","Что видит модель при данном вызове?","Системные инструкции, текущий запрос, извлеченные фрагменты, результаты работы инструментов, сводки","Полезность на токен, порядок, согласованность, уровень шума","table",{},{"id":295,"data":296,"type":42,"tunes":298},"h-state",{"text":297,"level":218},"1. Состояние: что истинно прямо сейчас",{},{"id":300,"data":301,"type":226,"tunes":303},"p-state-1",{"text":302},"Состояние принадлежит работающей системе, а не воспоминаниям модели. Если заказ отменен, деплой приостановлен, пользователь лишен прав или задача перешла из статуса «в работе» в статус «одобрено», авторитетное значение должно поступать из системы, владеющей этим фактом.",{},{"id":305,"data":306,"type":226,"tunes":308},"p-state-2",{"text":307},"Опасный паттерн проектирования — позволить старой сводке диалога подменять собой текущее состояние. Агент может безошибочно помнить, что вчера заказ был активен, но сегодня это утверждение уже неверно. Поэтому состоянию требуются явный владелец данных, версионирование или временные метки (где это применимо), а также механизм повторного чтения первоисточника перед выполнением критически важных действий.",{},{"id":310,"data":311,"type":42,"tunes":313},"h-memory",{"text":312,"level":218},"2. Память: что из прошлого должно сохраниться",{},{"id":315,"data":316,"type":226,"tunes":318},"p-memory-1",{"text":317},"Память — это не просто «все, что мы можем сохранить». Полноценный слой памяти определяет, что заслуживает сохранения, в каком виде, на какой срок, с каким источником происхождения и при каких условиях эти данные должны быть пересмотрены или удалены.",{},{"id":320,"data":321,"type":226,"tunes":323},"p-memory-2",{"text":322},"В современных исследованиях памяти агентов хранение сырых логов диалогов все чаще признается недостаточным. Проект PlugMem от Microsoft ориентирован на преобразование необработанных историй взаимодействия в структурированные знания повторного использования. Memora отделяет детализированный хранимый контент от более легковесных абстракций и поисковых ориентиров, избавляя системы с длительным циклом работы от необходимости выбирать между детализацией и масштабируемым доступом.",{},{"id":325,"data":326,"type":42,"tunes":328},"h-retrieval",{"text":327,"level":218},"3. Поиск: что следует отобрать сейчас",{},{"id":330,"data":331,"type":226,"tunes":333},"p-ret-1",{"text":332},"Поиск — это механизм отбора. Он может искать по внешним документам, внутренним базам знаний, сохраненной памяти, логам, графам, базам данных или смешанным источникам. RAG обычно находится именно здесь: извлечь свидетельства, поместить отобранные материалы в рабочий ввод модели и затем сгенерировать ответ.",{},{"id":335,"data":336,"type":226,"tunes":338},"p-ret-2",{"text":337},"Этот механизм не становится памятью только из-за того, что поисковый корпус содержит прошлые взаимодействия. Один и тот же ретривер может искать документы регламентов, с которыми агент никогда не сталкивался, данные о продуктах из сторонней системы или прошлые решения пользователя. Поиск описывает, как отбирается информация; память описывает, почему определенная информация сохраняется во времени и как управляется это хранение.",{},{"id":340,"data":341,"type":42,"tunes":343},"h-context",{"text":342,"level":218},"4. Контекст: что модель может реально использовать прямо сейчас",{},{"id":345,"data":346,"type":226,"tunes":348},"p-ctx-1",{"text":347},"Контекст — это слой, обращенный непосредственно к модели. Anthropic описывает контекстную инженерию как определение такой конфигурации контекста, которая с наибольшей вероятностью приведет к желаемому поведению, где контекст — это токены, доступные модели в процессе генерации. В руководстве OpenAI по сессионной памяти обрезка и сжатие аналогичным образом рассматриваются как методы управления контекстом при длительных взаимодействиях с агентом.",{},{"id":350,"data":351,"type":226,"tunes":353},"p-ctx-2",{"text":352},"Именно поэтому система может обладать превосходной памятью, но все равно давать сбой. Нужное воспоминание может существовать, но не быть извлеченным. Оно может быть извлечено, но помещено в контекст рядом с более убедительным противоречащим текстом. Оно может быть сжато настолько, что исчезнет ключевая деталь. Или же модель может получить такой объем данных, что полезные факты просто растворятся в шуме.",{},{"id":355,"data":356,"type":42,"tunes":358},"h-flow",{"text":357,"level":219},"Как взаимодействуют слои",{},{"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. Чтение авторитетного состояния","Загрузка актуальных фактов о задаче, пользователе, системе или среде из систем, которые ими владеют.",{"label":367,"description":368},"2. Определение потребности в памяти","Определение того, имеют ли значение прошлые решения, предпочтения, полученный опыт или долгосрочные ограничения.",{"label":370,"description":371},"3. Извлечение свидетельств","Поиск в памяти и внешних знаниях с использованием семантического, лексического, графового, структурированного или гибридного поиска.",{"label":373,"description":374},"4. Формирование контекста","Компоновка инструкций, текущего состояния, выбранных фактов и сжатой истории в пределах доступного контекстного окна модели.",{"label":376,"description":377},"5. Генерация или действие","Модель рассуждает на основе собранного контекста и формирует ответ, план или вызов инструмента.",{"label":379,"description":380},"6. Валидация и обратная запись","Проверка критически важных результатов, обновление авторитетного состояния там, где это разрешено, и сохранение только тех воспоминаний, которые соответствуют политике записи.","Один из возможных производственных процессов","auto","processFlow",{},{"id":386,"data":387,"type":42,"tunes":389},"h-rag",{"text":388,"level":219},"Почему RAG — это не память",{},{"id":391,"data":392,"type":226,"tunes":394},"p-rag-1",{"text":393},"Самый простой тест таков: система RAG может извлечь информацию, которую агент никогда раньше не видел. Одно это доказывает, что поиск и память представляют собой разные абстракции.",{},{"id":396,"data":397,"type":226,"tunes":399},"p-rag-2",{"text":398},"RAG отвечает на вопрос: «Какие свидетельства мне следует получить?» Система памяти должна дополнительно отвечать на такие вопросы, как: «Должно ли это событие стать долговременным знанием?», «Заменяет ли эта новая информация более старое воспоминание?», «Можно ли по-прежнему доверять этому воспоминанию?», «Кому разрешено его читать?» и «Когда его следует забыть?»",{},{"id":401,"data":402,"type":234,"tunes":406},"rag-trap",{"body":403,"title":404,"variant":405},"Если каждая реплика диалога преобразуется в векторные эмбеддинги, отправляется в хранилище и затем извлекается по сходству, система получает возможность долговременного поиска, но вовсе не обязательно управляемую архитектуру памяти. Само по себе постоянное хранение еще не гарантирует качество памяти.","Распространенная архитектурная ловушка","warning",{},{"id":408,"data":409,"type":42,"tunes":411},"h-test",{"text":410,"level":219},"Тест на разделение четырех слоев",{},{"id":413,"data":414,"type":226,"tunes":416},"p-test",{"text":415},"Когда какую-либо функцию называют «памятью», задайте следующие четыре вопроса. Ответы на них обычно показывают, о каком слое идет речь на самом деле.",{},{"id":418,"data":419,"type":292,"tunes":436},"table-test",{"content":420,"stretched":43,"withHeadings":14},[421,424,427,430,433],[422,423],"Вопрос","Если да, то в первую очередь вы имеете дело с",[425,426],"Отражает ли это текущее авторитетное состояние задачи или среды?","Состоянием (State)",[428,429],"Должна ли эта информация пережить текущий запуск, поскольку она фиксирует полезный прошлый опыт, предпочтение или решение?","Памятью (Memory)",[431,432],"Заключается ли главная задача в определении того, какая сохраненная или внешняя информация актуальна для текущего запроса?","Поиском\u002Fизвлечением (Retrieval)",[434,435],"Заключается ли главная задача в определении того, какую информацию поместить в текущий вызов модели?","Контекстом (Context)",{},{"id":438,"data":439,"type":226,"tunes":441},"p-test-note",{"text":440},"Один и тот же компонент может участвовать в работе более чем одного слоя. База данных может хранить как состояние, так и память. Векторный индекс может извлекать как внешние знания, так и воспоминания. Это разделение является семантическим, а не обязательно физическим.",{},{"id":443,"data":444,"type":42,"tunes":446},"h-fail",{"text":445,"level":219},"Типичные сбои из-за смешения слоев",{},{"id":448,"data":449,"type":292,"tunes":479},"table-fail",{"content":450,"stretched":43,"withHeadings":14},[451,455,459,463,467,471,475],[452,453,454],"Тип сбоя","Что произошло","Результат",[456,457,458],"Устаревшее состояние под видом памяти","Доверие оказывается старой сводке вместо повторного чтения данных из авторитетной системы","Агент действует на основе фактов, которые когда-то были правдой",[460,461,462],"Отношение к памяти как к непреложному факту","Прошлое предпочтение или решение сохраняется без правил пересмотра","Устаревшая информация продолжает влиять на последующие ответы",[464,465,466],"Результат поиска принимается за истину","Высокая степень схожести ошибочно принимается за фактическую достоверность","Правдоподобные, но некорректные свидетельства берут верх",[468,469,470],"Перегрузка контекста","В контекст передается слишком много найденных фрагментов, воспоминаний, логов и инструкций","Решающие свидетельства размываются или нейтрализуются противоречиями",[472,473,474],"Неконтролируемая запись в память","Сгенерированные моделью интерпретации автоматически сохраняются как долговременная память","Ошибки закрепляются и усиливают сами себя",[476,477,478],"Отсутствие отслеживания происхождения данных","Система не способна отличить утверждение пользователя от исходного факта, вывода модели или сгенерированной сводки","Последующее извлечение данных лишает информацию статуса доказательности",{},{"id":481,"data":482,"type":42,"tunes":484},"h-decision",{"text":483,"level":219},"Что следует помнить, извлекать, пересчитывать или перечитывать?",{},{"id":486,"data":487,"type":292,"tunes":521},"table-decision",{"content":488,"stretched":43,"withHeadings":14},[489,493,497,501,505,509,513,517],[490,491,492],"Тип информации","Предпочтительный подход","Причина",[494,495,496],"Текущие права доступа, статус заказа, складские запасы, этап рабочего процесса","Повторно считывать авторитетное состояние","Свежесть важнее воспоминаний",[498,499,500],"Устойчивое предпочтение, явно указанное пользователем","Память с семантикой редактирования и удаления","Полезно между сессиями и принадлежит пользователю",[502,503,504],"Решение, принятое в ходе длительного проекта","Память с временной меткой, источником происхождения и правилами замещения","История имеет значение, но решения могут меняться",[506,507,508],"Спецификация продукта или общедоступный нормативный документ","Извлекать из источника","Внешние знания должны оставаться привязанными к своим подтверждающим источникам",[510,511,512],"Производная метрика, которую можно легко рассчитать заново","Пересчитывать","Позволяет избежать сохранения устаревших вычисленных значений",[514,515,516],"Длинный сырой вывод инструмента","Хранить во внешней системе; извлекать или суммаризировать по необходимости","Не расходует контекст на постоянной основе",[518,519,520],"Гипотеза модели или неопределенная интерпретация","Не переносить автоматически в долговременную память","Логический вывод не равнозначен факту",{},{"id":523,"data":524,"type":42,"tunes":526},"h-write",{"text":525,"level":219},"Системе памяти необходима политика записи, а не только политика извлечения",{},{"id":528,"data":529,"type":226,"tunes":531},"p-write-1",{"text":530},"Обсуждения архитектуры RAG часто сосредоточены на качестве поиска: чанкинге, эмбеддингах, переранжировании, гибридном поиске и заземлении (grounding). Долгосрочная память обнажает другую сторону проблемы: что вообще допустимо сохранять в постоянное хранилище?",{},{"id":533,"data":534,"type":226,"tunes":536},"p-write-2",{"text":535},"Для долговременной памяти агента практичная политика записи должна классифицировать потенциальные воспоминания, сохранять сведения о происхождении данных (provenance), выявлять конфликты с существующими записями, отличать непосредственные наблюдения от умозаключений, определять уровень конфиденциальности и область доступа, а также решать, должна ли информация устаревать, обновляться или требовать подтверждения пользователя.",{},{"id":538,"data":539,"type":234,"tunes":543},"write-tip",{"body":540,"title":541,"variant":542},"Чем дороже со временем обходится ошибочное воспоминание, тем строже должна быть политика записи. Неудачный поиск влияет лишь на один ответ. Ошибочная долговременная память может повлиять на каждый будущий ответ, в котором она используется.","Принцип проектирования","tip",{},{"id":545,"data":546,"type":42,"tunes":548},"h-prov",{"text":547,"level":219},"Происхождение данных — мост между памятью и достоверными доказательствами",{},{"id":550,"data":551,"type":226,"tunes":553},"p-prov-1",{"text":552},"Запись в памяти в идеале должна сохранять достаточно сведений о происхождении, чтобы ответить на вопросы: откуда это взялось, когда было зафиксировано, кто или что это утверждало, было ли это предоставлено пользователем или выведено моделью, какой источник это подтверждал и не появилось ли что-то, что это отменяет?",{},{"id":555,"data":556,"type":226,"tunes":558},"p-prov-2",{"text":557},"Без сведений о происхождении сжатое воспоминание может стать более авторитетным, чем породившие его свидетельства. Это особенно рискованно в долгоживущих агентах, где саммари и абстракции используются повторно снова и снова. Система может сохранить вывод, потеряв условия, при которых этот вывод был верен.",{},{"id":560,"data":561,"type":42,"tunes":563},"h-budget",{"text":562,"level":219},"Больше памяти не означает больше контекста",{},{"id":565,"data":566,"type":226,"tunes":568},"p-budget-1",{"text":567},"Долгоживущий агент может накапливать гигабайты состояния, истории, документов и усвоенной информации. Модели не требуется — и обычно не следует передавать — все эти данные на каждом шаге. Цель поиска, обобщения, сжатия и структурированной памяти — преобразовать обширное постоянное информационное пространство в компактный, релевантный рабочий контекст.",{},{"id":570,"data":571,"type":226,"tunes":573},"p-budget-2",{"text":572},"Именно поэтому увеличение контекстного окна не устраняет необходимость в архитектуре памяти. Вместимость снижает часть ограничений, но не решает проблем актуальности, авторитетности, противоречивых свидетельств, разграничения доступа, качества записи, обновления данных или выбора того, что действительно заслуживает внимания.",{},{"id":575,"data":576,"type":42,"tunes":578},"h-check",{"text":577,"level":219},"Чек-лист для проектирования продакшен-систем",{},{"id":580,"data":581,"type":595,"tunes":596},"checklist",{"meta":582,"items":583,"style":594},{},[584,585,586,587,588,589,590,591,592,593],"Определите, какие системы владеют авторитетным состоянием во время выполнения.","Определите, какая информация имеет право сохраняться в долговременную память.","Сохраняйте четкое различие между фактами от пользователя, внешними свидетельствами и выводами модели.","Прикрепляйте временные метки, сведения о происхождении, область видимости и семантику версионирования к важным воспоминаниям.","Разделяйте релевантность при поиске и фактическую авторитетность.","Формируйте контекст осмысленно, а не внедряйте все извлеченные материалы без разбора.","Перечитывайте изменчивые факты вместо того, чтобы полагаться на старые воспоминания.","Пересчитывайте простые производные значения заново, если цена их устаревания слишком высока.","Тестируйте операции записи в память так же тщательно, как и операции чтения.","Классифицируйте и измеряйте сбои раздельно: ошибки состояния, ошибки памяти, ошибки поиска, ошибки сборки контекста, ошибки рассуждения и ошибки действий.","unordered","list",{},{"id":598,"data":599,"type":42,"tunes":601},"h-change",{"text":600,"level":219},"Что могло бы изменить эти выводы?",{},{"id":603,"data":604,"type":226,"tunes":606},"p-change-1",{"text":605},"Граница между этими слоями может смещаться по мере развития платформ для агентов. Провайдер может предложить управляемый сервис памяти, который берет на себя хранение, ревизию, поиск, обобщение и формирование контекста. Это может объединить компоненты реализации, но не снимает архитектурных вопросов. Вам по-прежнему необходимо понимать, является ли возвращенный элемент текущим состоянием, долговременной памятью, извлеченным свидетельством или просто текстом, помещенным в контекст.",{},{"id":608,"data":609,"type":226,"tunes":611},"p-change-2",{"text":610},"Рекомендация также изменилась бы для систем без преемственности между сессиями, систем, где каждая задача начинается с чистого неизменяемого корпуса, или жестко ограниченных рабочих процессов, где все необходимое состояние гарантированно помещается в один вызов. В таких случаях выделенный уровень долгосрочной памяти может лишь усложнить систему, не принося достаточной пользы.",{},{"id":613,"data":614,"type":42,"tunes":616},"h-limit",{"text":615,"level":219},"Ограничения",{},{"id":618,"data":619,"type":226,"tunes":621},"p-limit",{"text":620},"Терминология в сфере агентных систем все еще стремительно формируется. Некоторые фреймворки называют историю диалога «памятью», другие используют понятия «сессия», «чекпоинт», «хранилище», «контекст» или «состояние». Исследовательские системы также определяют память на разных уровнях — от персистентного поиска до обученной внутренней адаптации. Модель, описанная в этой статье, намеренно разделяет эксплуатационные обязанности, вместо того чтобы пытаться навязать единый универсальный словарь.",{},{"id":623,"data":624,"type":42,"tunes":626},"h-conclusion",{"text":625,"level":219},"Заключение",{},{"id":628,"data":629,"type":226,"tunes":631},"p-conclusion-1",{"text":630},"Практичный вопрос звучит не как «Есть ли у этого агента память?». Он заключается в следующем: что такое состояние, что сохраняется из накопленного опыта, как извлекается нужная информация и что в конечном итоге поступает в модель в виде контекста?",{},{"id":633,"data":634,"type":226,"tunes":636},"p-conclusion-2",{"text":635},"Когда эти зоны ответственности разделены, проектные решения становится проще тестировать. Устаревшие факты можно свести к владению состоянием. Плохую полноту выборки (recall) можно отследить до жизненного цикла памяти или механизма извлечения данных. Перегруженные промпты — до этапа формирования контекста. Стойкие галлюцинации — до политики записи и происхождения данных (provenance). RAG остается важным инструментом, но это лишь одна из составляющих надежной архитектуры долгоживущих агентов.",{},{"id":638,"data":639,"type":42,"tunes":641},"h-faq",{"text":640,"level":219},"Часто задаваемые вопросы (FAQ)",{},{"id":643,"data":644,"type":643,"tunes":663},"faq",{"items":645,"title":662},[646,650,654,658],{"id":647,"answer":648,"question":649},"faq1","Нет. RAG — это прежде всего паттерн извлечения данных, который выбирает информацию для вызова модели. Память же определяет, какая информация из предыдущих взаимодействий или опыта сохраняется во времени и как осуществляется управление этой информацией.","Является ли RAG тем же самым, что и память ИИ-агента?",{"id":651,"answer":652,"question":653},"faq2","Она может быть ее частью, но сама по себе векторная база данных — это компонент хранения и поиска. Продакшн-архитектура памяти также требует решений относительно того, что сохранять, контроля происхождения данных, актуализации, разрешения конфликтов, доступа, срока жизни и механизма забывания.","Является ли векторная база данных памятью агента?",{"id":655,"answer":656,"question":657},"faq3","Не обязательно. Больший контекст увеличивает вместимость, но не решает проблемы сохранения знаний между сессиями, их актуальности, происхождения, границ приватности, редактирования или принятия решений о том, что следует использовать повторно в дальнейшем.","Устраняет ли увеличенное окно контекста потребность в памяти?",{"id":659,"answer":660,"question":661},"faq4","Как правило, авторитетным источником достоверных данных для изменчивого состояния должна оставаться прикладная или доменная система. Память может фиксировать историю или значимость изменений состояния, однако критически важные действия должны заново считывать текущие авторитетные значения.","Следует ли сохранять текущее состояние приложения как память?","Память ИИ-агентов, RAG, состояние и контекст",{},{"id":665,"data":666,"type":42,"tunes":668},"h-glossary",{"text":667,"level":219},"Глоссарий",{},{"id":670,"data":671,"type":670,"tunes":695},"glossary",{"title":672,"entries":673},"Ключевые термины",[674,677,680,684,687,691],{"term":273,"anchor":675,"definition":676},"state","Текущее эталонное состояние задачи, приложения, пользователя, рабочего процесса или окружения.",{"term":278,"anchor":678,"definition":679},"memory","Информация из предшествующего опыта или взаимодействия, которая сохраняется, поскольку может оказаться полезной в дальнейшем, и подчиняется правилам жизненного цикла.",{"term":681,"anchor":682,"definition":683},"Извлечение (Retrieval)","retrieval","Механизм, используемый для выбора потенциально релевантной информации из памяти, внешних баз знаний, баз данных, графов или других хранилищ.",{"term":288,"anchor":685,"definition":686},"context","Информация, фактически доступная языковой модели во время конкретного шага инференса или генерации.",{"term":688,"anchor":689,"definition":690},"RAG","rag","Генерация, дополненная поиском (Retrieval-augmented generation): паттерн, при котором внешняя или сохраненная информация извлекается и передается генеративной модели для улучшения текущего ответа.",{"term":692,"anchor":693,"definition":694},"Происхождение данных (Provenance)","provenance","Метаданные, описывающие, откуда поступила информация, когда она была зафиксирована, кто или что ее утвердило и каким трансформациям она подверглась.",{},{"id":697,"data":698,"type":42,"tunes":700},"h-sources",{"text":699,"level":219},"Первоисточники и материалы для дальнейшего чтения",{},{"id":702,"data":703,"type":710,"tunes":711},"openai-session",{"link":704,"meta":705},"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fagents_sdk\u002Fsession_memory",{"image":706,"title":708,"description":709},{"url":707},"","OpenAI — Context Engineering: Short-Term Memory Management with Sessions","Руководство OpenAI по обрезке и сжатию контекста для долгоживущих агентов.","linkTool",{},{"id":713,"data":714,"type":710,"tunes":720},"openai-sandbox",{"link":715,"meta":716},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\u002Fsandboxes",{"image":717,"title":718,"description":719},{"url":707},"OpenAI — Sandbox Agents","Документация, демонстрирующая постоянную память как возможность с прогрессивным раскрытием и поведением чтения\u002Fзаписи.",{},{"id":722,"data":723,"type":710,"tunes":729},"anthropic-context",{"link":724,"meta":725},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"image":726,"title":727,"description":728},{"url":707},"Anthropic — Effective Context Engineering for AI Agents","Инженерное руководство по формированию ограниченного контекста модели для обеспечения надежного поведения агентов.",{},{"id":731,"data":732,"type":710,"tunes":738},"ms-memora",{"link":733,"meta":734},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fmemora-a-harmonic-memory-representation-balancing-abstraction-and-specificity\u002F",{"image":735,"title":736,"description":737},{"url":707},"Microsoft Research — Memora","Исследование баланса между абстракцией и детализацией в долговременной памяти агентов.",{},{"id":740,"data":741,"type":710,"tunes":747},"ms-plugmem",{"link":742,"meta":743},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Ffrom-raw-interaction-to-reusable-knowledge-rethinking-memory-for-ai-agents\u002F",{"image":744,"title":745,"description":746},{"url":707},"Microsoft Research — PlugMem","Исследование преобразования необработанной истории взаимодействий агента в структурированные знания многократного использования.",{},{"id":749,"data":750,"type":710,"tunes":756},"ms-ace",{"link":751,"meta":752},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpublication\u002Fagentic-context-engineering-evolving-contexts-for-self-improving-language-models\u002F",{"image":753,"title":754,"description":755},{"url":707},"Microsoft Research — Agentic Context Engineering (ACE)","Исследование эволюции контекста в виде структурированных сценариев вместо постоянного переписывания или сжатия всей информации.",{},"2.31","Память агента, RAG, состояние и контекст часто используются так, будто они взаимозаменяемы. Это не так. Эта практическая архитектурная модель разделяет четыре уровня, показывает, где место каждого из них, и объясняет, что ломается, когда системы объединяют их в одно целое.","\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":766,"de":767,"sr":768,"es":769,"fr":770,"it":771,"ru":772,"zh":773},"\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",[775,779,783],{"id":776,"name":777,"slug":778},64,"Информационная архитектура","information-architecture",{"id":780,"name":781,"slug":782},57,"Границы данных","data-boundaries",{"id":784,"name":785,"slug":786},85,"Гейты качества","quality-gates",{"id":788,"login":789,"email":790,"displayName":791},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[793,1235],{"lang":794,"title":795,"content":796,"contentJson":797,"excerpt":1234},"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":798,"blocks":799,"version":1233},1790350647507,[800,804,808,813,818,822,826,830,834,863,867,871,875,879,883,887,891,895,899,903,907,911,915,938,942,946,950,955,959,963,978,982,986,1018,1022,1058,1062,1066,1070,1075,1079,1083,1087,1091,1095,1099,1103,1118,1122,1126,1130,1134,1138,1142,1146,1150,1154,1171,1175,1193,1197,1203,1209,1215,1221,1227],{"id":215,"data":801,"type":220,"tunes":803},{"title":802,"maxLevel":218,"minLevel":219},"Contents",{},{"id":223,"data":805,"type":226,"tunes":807},{"text":806},"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":809,"type":234,"tunes":812},{"body":810,"title":811,"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":814,"type":234,"tunes":817},{"body":815,"title":816,"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":819,"type":42,"tunes":821},{"text":820,"level":219},"The category error: treating every persistent-looking thing as memory",{},{"id":249,"data":823,"type":226,"tunes":825},{"text":824},"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":827,"type":226,"tunes":829},{"text":828},"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":831,"type":42,"tunes":833},{"text":832,"level":219},"A four-layer architecture: state, memory, retrieval, context",{},{"id":264,"data":835,"type":292,"tunes":862},{"content":836,"stretched":43,"withHeadings":14},[837,842,847,852,857],[838,839,840,841],"Layer","Core question","Typical examples","Primary correctness concern",[843,844,845,846],"State","What is true now?","Task status, cart contents, workflow step, active permissions, current game state","Freshness and authority",[848,849,850,851],"Memory","What from the past should persist?","User preference, prior decision, learned constraint, resolved failure, durable project fact","Lifecycle, revision, provenance, forgetting",[853,854,855,856],"Retrieval","What information should be selected now?","Vector search, keyword search, graph lookup, reranking, document search","Relevance and evidence selection",[858,859,860,861],"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":864,"type":42,"tunes":866},{"text":865,"level":218},"1. State: what is true now",{},{"id":300,"data":868,"type":226,"tunes":870},{"text":869},"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":872,"type":226,"tunes":874},{"text":873},"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":876,"type":42,"tunes":878},{"text":877,"level":218},"2. Memory: what from the past should persist",{},{"id":315,"data":880,"type":226,"tunes":882},{"text":881},"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":884,"type":226,"tunes":886},{"text":885},"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":888,"type":42,"tunes":890},{"text":889,"level":218},"3. Retrieval: what should be selected now",{},{"id":330,"data":892,"type":226,"tunes":894},{"text":893},"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":896,"type":226,"tunes":898},{"text":897},"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":900,"type":42,"tunes":902},{"text":901,"level":218},"4. Context: what the model can actually use right now",{},{"id":345,"data":904,"type":226,"tunes":906},{"text":905},"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":908,"type":226,"tunes":910},{"text":909},"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":912,"type":42,"tunes":914},{"text":913,"level":219},"How the layers interact",{},{"id":360,"data":916,"type":383,"tunes":937},{"steps":917,"title":936,"orientation":382},[918,921,924,927,930,933],{"label":919,"description":920},"1. Read authoritative state","Load current task, user, system, or environment facts from the systems that own them.",{"label":922,"description":923},"2. Identify memory needs","Determine whether prior decisions, preferences, lessons, or long-term constraints are relevant.",{"label":925,"description":926},"3. Retrieve evidence","Search memory and external knowledge using semantic, lexical, graph, structured, or hybrid retrieval.",{"label":928,"description":929},"4. Build context","Assemble instructions, current state, selected evidence, and compacted history within the model's usable context.",{"label":931,"description":932},"5. Generate or act","The model reasons over the assembled context and produces an answer, plan, or tool call.",{"label":934,"description":935},"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":939,"type":42,"tunes":941},{"text":940,"level":219},"Why RAG is not memory",{},{"id":391,"data":943,"type":226,"tunes":945},{"text":944},"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":947,"type":226,"tunes":949},{"text":948},"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":951,"type":234,"tunes":954},{"body":952,"title":953,"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":956,"type":42,"tunes":958},{"text":957,"level":219},"The four-layer separation test",{},{"id":413,"data":960,"type":226,"tunes":962},{"text":961},"When a feature is called “memory,” ask the following four questions. The answers usually reveal which layer is actually involved.",{},{"id":418,"data":964,"type":292,"tunes":977},{"content":965,"stretched":43,"withHeadings":14},[966,969,971,973,975],[967,968],"Question","If yes, you are primarily dealing with",[970,843],"Does this represent the current authoritative condition of the task or environment?",[972,848],"Must this information survive the current run because it captures useful prior experience, preference, or decision?",[974,853],"Is the main problem deciding which stored or external information is relevant to the current request?",[976,858],"Is the main problem deciding what information to place inside the current model call?",{},{"id":438,"data":979,"type":226,"tunes":981},{"text":980},"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":443,"data":983,"type":42,"tunes":985},{"text":984,"level":219},"Failure modes caused by collapsing the layers",{},{"id":448,"data":987,"type":292,"tunes":1017},{"content":988,"stretched":43,"withHeadings":14},[989,993,997,1001,1005,1009,1013],[990,991,992],"Failure mode","What happened","Result",[994,995,996],"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",[998,999,1000],"Memory treated as immutable fact","A prior preference or decision is stored without revision rules","Superseded information keeps influencing future answers",[1002,1003,1004],"Retrieval hit treated as truth","High similarity is mistaken for factual authority","Relevant-looking but incorrect evidence dominates",[1006,1007,1008],"Context overload","Too many retrieved passages, memories, logs, and instructions are injected","The decisive evidence is diluted or contradicted",[1010,1011,1012],"Uncontrolled memory write","Model-generated interpretations are stored automatically as durable memory","Errors become persistent and self-reinforcing",[1014,1015,1016],"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":481,"data":1019,"type":42,"tunes":1021},{"text":1020,"level":219},"What should be remembered, retrieved, recomputed, or re-read?",{},{"id":486,"data":1023,"type":292,"tunes":1057},{"content":1024,"stretched":43,"withHeadings":14},[1025,1029,1033,1037,1041,1045,1049,1053],[1026,1027,1028],"Information type","Preferred treatment","Reason",[1030,1031,1032],"Current permission, order status, inventory, workflow status","Re-read authoritative state","Freshness matters more than recollection",[1034,1035,1036],"Stable user preference explicitly provided by the user","Memory, with edit\u002Fdelete semantics","Useful across sessions and owned by the user",[1038,1039,1040],"Decision made during a long-running project","Memory with timestamp, provenance, and supersession rules","The history matters, but decisions can change",[1042,1043,1044],"Product specification or public policy document","Retrieve from source","External knowledge should remain tied to its evidence",[1046,1047,1048],"Derived metric that can be cheaply recalculated","Recompute","Avoid persisting stale derived values",[1050,1051,1052],"Long raw tool output","Store externally; retrieve or summarize when needed","Do not consume context permanently",[1054,1055,1056],"Model hypothesis or uncertain interpretation","Do not promote automatically to durable memory","Inference is not equivalent to fact",{},{"id":523,"data":1059,"type":42,"tunes":1061},{"text":1060,"level":219},"A memory system needs a write policy, not only a retrieval policy",{},{"id":528,"data":1063,"type":226,"tunes":1065},{"text":1064},"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":533,"data":1067,"type":226,"tunes":1069},{"text":1068},"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":538,"data":1071,"type":234,"tunes":1074},{"body":1072,"title":1073,"variant":542},"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":545,"data":1076,"type":42,"tunes":1078},{"text":1077,"level":219},"Provenance is the bridge between memory and reliable evidence",{},{"id":550,"data":1080,"type":226,"tunes":1082},{"text":1081},"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":555,"data":1084,"type":226,"tunes":1086},{"text":1085},"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":560,"data":1088,"type":42,"tunes":1090},{"text":1089,"level":219},"More memory does not mean more context",{},{"id":565,"data":1092,"type":226,"tunes":1094},{"text":1093},"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":570,"data":1096,"type":226,"tunes":1098},{"text":1097},"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":575,"data":1100,"type":42,"tunes":1102},{"text":1101,"level":219},"Production design checklist",{},{"id":580,"data":1104,"type":595,"tunes":1117},{"meta":1105,"items":1106,"style":594},{},[1107,1108,1109,1110,1111,1112,1113,1114,1115,1116],"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":598,"data":1119,"type":42,"tunes":1121},{"text":1120,"level":219},"What would change this answer?",{},{"id":603,"data":1123,"type":226,"tunes":1125},{"text":1124},"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":608,"data":1127,"type":226,"tunes":1129},{"text":1128},"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":613,"data":1131,"type":42,"tunes":1133},{"text":1132,"level":219},"Limitations",{},{"id":618,"data":1135,"type":226,"tunes":1137},{"text":1136},"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":623,"data":1139,"type":42,"tunes":1141},{"text":1140,"level":219},"Conclusion",{},{"id":628,"data":1143,"type":226,"tunes":1145},{"text":1144},"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":633,"data":1147,"type":226,"tunes":1149},{"text":1148},"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":638,"data":1151,"type":42,"tunes":1153},{"text":1152,"level":219},"FAQ",{},{"id":643,"data":1155,"type":643,"tunes":1170},{"items":1156,"title":1169},[1157,1160,1163,1166],{"id":647,"answer":1158,"question":1159},"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":651,"answer":1161,"question":1162},"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":655,"answer":1164,"question":1165},"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":659,"answer":1167,"question":1168},"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":665,"data":1172,"type":42,"tunes":1174},{"text":1173,"level":219},"Glossary",{},{"id":670,"data":1176,"type":670,"tunes":1192},{"title":1177,"entries":1178},"Key terms",[1179,1181,1183,1185,1187,1189],{"term":843,"anchor":675,"definition":1180},"The current authoritative condition of a task, application, user, workflow, or environment.",{"term":848,"anchor":678,"definition":1182},"Information from prior experience or interaction that persists because it may be useful later and is subject to lifecycle rules.",{"term":853,"anchor":682,"definition":1184},"The mechanism used to select potentially relevant information from memory, external knowledge, databases, graphs, or other stores.",{"term":858,"anchor":685,"definition":1186},"The information actually available to the language model during a particular inference or generation step.",{"term":688,"anchor":689,"definition":1188},"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":1190,"anchor":693,"definition":1191},"Provenance","Metadata describing where information came from, when it was observed, who or what asserted it, and how it was transformed.",{},{"id":697,"data":1194,"type":42,"tunes":1196},{"text":1195,"level":219},"Primary sources and further reading",{},{"id":702,"data":1198,"type":710,"tunes":1202},{"link":704,"meta":1199},{"image":1200,"title":708,"description":1201},{"url":707},"OpenAI guidance on trimming and compression for long-running agent context.",{},{"id":713,"data":1204,"type":710,"tunes":1208},{"link":715,"meta":1205},{"image":1206,"title":718,"description":1207},{"url":707},"Documentation showing persistent memory as a capability with progressive disclosure and read\u002Fwrite behaviour.",{},{"id":722,"data":1210,"type":710,"tunes":1214},{"link":724,"meta":1211},{"image":1212,"title":727,"description":1213},{"url":707},"Engineering guidance on curating finite model context for reliable agent behaviour.",{},{"id":731,"data":1216,"type":710,"tunes":1220},{"link":733,"meta":1217},{"image":1218,"title":736,"description":1219},{"url":707},"Research on balancing abstraction and specificity in long-horizon agent memory.",{},{"id":740,"data":1222,"type":710,"tunes":1226},{"link":742,"meta":1223},{"image":1224,"title":745,"description":1225},{"url":707},"Research on converting raw agent interaction histories into reusable structured knowledge.",{},{"id":749,"data":1228,"type":710,"tunes":1232},{"link":751,"meta":1229},{"image":1230,"title":754,"description":1231},{"url":707},"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":1236,"excerpt":758},{"time":212,"blocks":1237,"version":757},[1238,1241,1244,1247,1250,1253,1256,1259,1262,1271,1274,1277,1280,1283,1286,1289,1292,1295,1298,1301,1304,1307,1310,1320,1323,1326,1329,1332,1335,1338,1347,1350,1353,1364,1367,1379,1382,1385,1388,1391,1394,1397,1400,1403,1406,1409,1412,1417,1420,1423,1426,1429,1432,1435,1438,1441,1444,1452,1455,1465,1468,1473,1478,1483,1488,1493],{"id":215,"data":1239,"type":220,"tunes":1240},{"title":217,"maxLevel":218,"minLevel":219},{},{"id":223,"data":1242,"type":226,"tunes":1243},{"text":225},{},{"id":229,"data":1245,"type":234,"tunes":1246},{"body":231,"title":232,"variant":233},{},{"id":237,"data":1248,"type":234,"tunes":1249},{"body":239,"title":240,"variant":241},{},{"id":244,"data":1251,"type":42,"tunes":1252},{"text":246,"level":219},{},{"id":249,"data":1254,"type":226,"tunes":1255},{"text":251},{},{"id":254,"data":1257,"type":226,"tunes":1258},{"text":256},{},{"id":259,"data":1260,"type":42,"tunes":1261},{"text":261,"level":219},{},{"id":264,"data":1263,"type":292,"tunes":1270},{"content":1264,"stretched":43,"withHeadings":14},[1265,1266,1267,1268,1269],[268,269,270,271],[273,274,275,276],[278,279,280,281],[283,284,285,286],[288,289,290,291],{},{"id":295,"data":1272,"type":42,"tunes":1273},{"text":297,"level":218},{},{"id":300,"data":1275,"type":226,"tunes":1276},{"text":302},{},{"id":305,"data":1278,"type":226,"tunes":1279},{"text":307},{},{"id":310,"data":1281,"type":42,"tunes":1282},{"text":312,"level":218},{},{"id":315,"data":1284,"type":226,"tunes":1285},{"text":317},{},{"id":320,"data":1287,"type":226,"tunes":1288},{"text":322},{},{"id":325,"data":1290,"type":42,"tunes":1291},{"text":327,"level":218},{},{"id":330,"data":1293,"type":226,"tunes":1294},{"text":332},{},{"id":335,"data":1296,"type":226,"tunes":1297},{"text":337},{},{"id":340,"data":1299,"type":42,"tunes":1300},{"text":342,"level":218},{},{"id":345,"data":1302,"type":226,"tunes":1303},{"text":347},{},{"id":350,"data":1305,"type":226,"tunes":1306},{"text":352},{},{"id":355,"data":1308,"type":42,"tunes":1309},{"text":357,"level":219},{},{"id":360,"data":1311,"type":383,"tunes":1319},{"steps":1312,"title":381,"orientation":382},[1313,1314,1315,1316,1317,1318],{"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":1321,"type":42,"tunes":1322},{"text":388,"level":219},{},{"id":391,"data":1324,"type":226,"tunes":1325},{"text":393},{},{"id":396,"data":1327,"type":226,"tunes":1328},{"text":398},{},{"id":401,"data":1330,"type":234,"tunes":1331},{"body":403,"title":404,"variant":405},{},{"id":408,"data":1333,"type":42,"tunes":1334},{"text":410,"level":219},{},{"id":413,"data":1336,"type":226,"tunes":1337},{"text":415},{},{"id":418,"data":1339,"type":292,"tunes":1346},{"content":1340,"stretched":43,"withHeadings":14},[1341,1342,1343,1344,1345],[422,423],[425,426],[428,429],[431,432],[434,435],{},{"id":438,"data":1348,"type":226,"tunes":1349},{"text":440},{},{"id":443,"data":1351,"type":42,"tunes":1352},{"text":445,"level":219},{},{"id":448,"data":1354,"type":292,"tunes":1363},{"content":1355,"stretched":43,"withHeadings":14},[1356,1357,1358,1359,1360,1361,1362],[452,453,454],[456,457,458],[460,461,462],[464,465,466],[468,469,470],[472,473,474],[476,477,478],{},{"id":481,"data":1365,"type":42,"tunes":1366},{"text":483,"level":219},{},{"id":486,"data":1368,"type":292,"tunes":1378},{"content":1369,"stretched":43,"withHeadings":14},[1370,1371,1372,1373,1374,1375,1376,1377],[490,491,492],[494,495,496],[498,499,500],[502,503,504],[506,507,508],[510,511,512],[514,515,516],[518,519,520],{},{"id":523,"data":1380,"type":42,"tunes":1381},{"text":525,"level":219},{},{"id":528,"data":1383,"type":226,"tunes":1384},{"text":530},{},{"id":533,"data":1386,"type":226,"tunes":1387},{"text":535},{},{"id":538,"data":1389,"type":234,"tunes":1390},{"body":540,"title":541,"variant":542},{},{"id":545,"data":1392,"type":42,"tunes":1393},{"text":547,"level":219},{},{"id":550,"data":1395,"type":226,"tunes":1396},{"text":552},{},{"id":555,"data":1398,"type":226,"tunes":1399},{"text":557},{},{"id":560,"data":1401,"type":42,"tunes":1402},{"text":562,"level":219},{},{"id":565,"data":1404,"type":226,"tunes":1405},{"text":567},{},{"id":570,"data":1407,"type":226,"tunes":1408},{"text":572},{},{"id":575,"data":1410,"type":42,"tunes":1411},{"text":577,"level":219},{},{"id":580,"data":1413,"type":595,"tunes":1416},{"meta":1414,"items":1415,"style":594},{},[584,585,586,587,588,589,590,591,592,593],{},{"id":598,"data":1418,"type":42,"tunes":1419},{"text":600,"level":219},{},{"id":603,"data":1421,"type":226,"tunes":1422},{"text":605},{},{"id":608,"data":1424,"type":226,"tunes":1425},{"text":610},{},{"id":613,"data":1427,"type":42,"tunes":1428},{"text":615,"level":219},{},{"id":618,"data":1430,"type":226,"tunes":1431},{"text":620},{},{"id":623,"data":1433,"type":42,"tunes":1434},{"text":625,"level":219},{},{"id":628,"data":1436,"type":226,"tunes":1437},{"text":630},{},{"id":633,"data":1439,"type":226,"tunes":1440},{"text":635},{},{"id":638,"data":1442,"type":42,"tunes":1443},{"text":640,"level":219},{},{"id":643,"data":1445,"type":643,"tunes":1451},{"items":1446,"title":662},[1447,1448,1449,1450],{"id":647,"answer":648,"question":649},{"id":651,"answer":652,"question":653},{"id":655,"answer":656,"question":657},{"id":659,"answer":660,"question":661},{},{"id":665,"data":1453,"type":42,"tunes":1454},{"text":667,"level":219},{},{"id":670,"data":1456,"type":670,"tunes":1464},{"title":672,"entries":1457},[1458,1459,1460,1461,1462,1463],{"term":273,"anchor":675,"definition":676},{"term":278,"anchor":678,"definition":679},{"term":681,"anchor":682,"definition":683},{"term":288,"anchor":685,"definition":686},{"term":688,"anchor":689,"definition":690},{"term":692,"anchor":693,"definition":694},{},{"id":697,"data":1466,"type":42,"tunes":1467},{"text":699,"level":219},{},{"id":702,"data":1469,"type":710,"tunes":1472},{"link":704,"meta":1470},{"image":1471,"title":708,"description":709},{"url":707},{},{"id":713,"data":1474,"type":710,"tunes":1477},{"link":715,"meta":1475},{"image":1476,"title":718,"description":719},{"url":707},{},{"id":722,"data":1479,"type":710,"tunes":1482},{"link":724,"meta":1480},{"image":1481,"title":727,"description":728},{"url":707},{},{"id":731,"data":1484,"type":710,"tunes":1487},{"link":733,"meta":1485},{"image":1486,"title":736,"description":737},{"url":707},{},{"id":740,"data":1489,"type":710,"tunes":1492},{"link":742,"meta":1490},{"image":1491,"title":745,"description":746},{"url":707},{},{"id":749,"data":1494,"type":710,"tunes":1497},{"link":751,"meta":1495},{"image":1496,"title":754,"description":755},{"url":707},{},"Post erfolgreich abgerufen",{"items":1500,"source":1571,"manualIds":1572,"manualMatchedIds":1573},[1501,1508,1515,1522,1529,1536,1543,1550,1557,1564],{"id":1502,"slug":1503,"title":1504,"excerpt":1505,"featuredImage":1506,"publishedAt":1507},"466","the-gpu-is-not-the-product-future-proof-private-ai-architecture","GPU — не продукт: перспективная архитектура приватного ИИ","Инфраструктура приватного ИИ не должна проектироваться вокруг одного GPU или одной модели. Более устойчивый подход объединяет быстрые GPU для инференса, ИИ-системы с большим объемом памяти, узлы физического ИИ и опциональные передовые облачные модели за уровнем маршрутизации, учитывающим возможности.","\u002Fuploads\u002F2026\u002F09\u002Fthe-gpu-is-not-the-product-future-proof-private-ai-architecture-1790140878812-8hsl39.webp","2026-09-23T01:19:00.000Z",{"id":1509,"slug":1510,"title":1511,"excerpt":1512,"featuredImage":1513,"publishedAt":1514},"470","what-should-an-ai-agent-remember-forget-recompute-or-retrieve-again","Что ИИ-агент должен помнить, забывать, перевычислять или извлекать повторно?","Долгоживущие агенты не должны помнить всё. В этой статье представлена практическая модель жизненного цикла для определения того, что относится к долговременной памяти, что следует извлекать повторно, что безопаснее пересчитать, а что должно истечь по сроку действия или быть заменено.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-should-an-ai-agent-remember-forget-recompute-or-retrieve-again-1790351131087-iehz28.webp","2026-09-25T09:43:00.000Z",{"id":1516,"slug":1517,"title":1518,"excerpt":1519,"featuredImage":1520,"publishedAt":1521},"363","front-und-backend-entwicklung","Фронтенд- и бэкенд-разработка","Фронтенд- и бэкенд-разработка является неотъемлемой частью веб-разработки и включает в себя создание веб-приложений и веб-сайтов. Фронтенд-разработка сосредоточена на пользовательском интерфейсе, в то время как бэкенд-разработка отвечает за программирование и управление серверной частью.","\u002Fuploads\u002F2026\u002F03\u002Ffront-und-backend-entwicklung-1774872219531-wyu4i1.webp","2023-04-12T11:11:00.000Z",{"id":1523,"slug":1524,"title":1525,"excerpt":1526,"featuredImage":1527,"publishedAt":1528},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama — это не продукт: создание готовых к продакшену приложений на базе открытых LLM","Запустить локальную модель с Ollama просто. Создать готовое к продакшену Open-LLM-приложение сложнее: для этого требуются RAG, контроль доступа, абстракция провайдеров, оценка, логирование, дисциплина развертывания и контролируемый уровень приложения вокруг модели.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1530,"slug":1531,"title":1532,"excerpt":1533,"featuredImage":1534,"publishedAt":1535},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Освоение рабочего процесса SEO: Основные стратегии оптимизации для органического роста","Структурированный рабочий процесс SEO крайне важен для устойчивого органического роста. Изучите десять основополагающих стратегий, от исследования ключевых слов и технической оптимизации до качества контента и анализа производительности.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":1537,"slug":1538,"title":1539,"excerpt":1540,"featuredImage":1541,"publishedAt":1542},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG не сработал — но какой именно слой на самом деле отказал? Метод диагностики","Когда ответ RAG неверен, обвинять поиск или модель — слишком расплывчато. Этот диагностический метод изолирует покрытие источников, построение запроса, поиск, ранжирование, сборку контекста, генерацию, атрибуцию доказательств и актуальность — так что фактический сбой можно воспроизвести и исправить.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z",{"id":1544,"slug":1545,"title":1546,"excerpt":1547,"featuredImage":1548,"publishedAt":1549},"467","the-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers","Граница достоверности ответа: недостающий слой между релевантностью и надёжными ответами ИИ","Источник может быть релевантным, авторитетным и при этом неверным для задаваемого вопроса. Недостающий слой — применимость: условия, при которых ответ остаётся в силе, и изменения, вынуждающие пересмотреть его. В этой статье вводится понятие «Граница действительности ответа» как паттерн проектирования источников для людей, ИИ-поиска и RAG-систем.","\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":1551,"slug":1552,"title":1553,"excerpt":1554,"featuredImage":1555,"publishedAt":1556},"476","mcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained","MCP vs A2A vs UCP vs AP2 vs A2UI: разбор стека протоколов агентов","MCP, A2A, UCP, AP2 и A2UI часто представляют как конкурирующие агентские стандарты. В основном они решают разные проблемы интероперабельности. Это руководство сопоставляет каждый протокол с границей, которую он фактически стандартизирует,—и показывает, как они могут работать вместе в одной промышленной системе.","\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":1558,"slug":1559,"title":1560,"excerpt":1561,"featuredImage":1562,"publishedAt":1563},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Что такое RAG? Самое простое объяснение того, как это работает","RAG звучит сложно, но идея проста: прежде чем ИИ ответит, он сначала находит полезную информацию из источника знаний и передаёт эту информацию языковой модели. В этом руководстве объясняются RAG, LLM, состояние, память и инструменты с помощью одной простой ментальной модели.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z",{"id":1565,"slug":1566,"title":1567,"excerpt":1568,"featuredImage":1569,"publishedAt":1570},"472","why-more-context-can-make-ai-answers-worse","Почему больше контекста может ухудшить ответы ИИ","Большее контекстное окно не гарантирует более качественного ответа. В этой статье объясняется, как размывание сигнала, противоречивые данные, устаревшее состояние, чувствительность к позиции и сжатие с потерями могут снизить надежность ИИ — и предлагается практический стресс-тест контекста.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-more-context-can-make-ai-answers-worse-1790351615793-2ntv2v.webp","2026-09-25T11:51:00.000Z","fallback",[],[]]