Пам’ять ШІ-агентів: як створювати ШІ-агентів із постійним контекстом

У цьому посібнику пояснюється, що таке пам’ять ШІ-агентів, як разом працюють робоча, епізодична, семантична та процедурна пам’ять і як створювати й тестувати агентів, що вдосконалюються завдяки постійному контексту.

Post by Aravind Srinivas on Perplexity Computer's background Dream agent, with a diagram of the self-improvement loop: online sessions produce raw history, Dream reads and reconciles it with connectors, then compiles, cites, and commits updates to the Brain, which feeds the next session's context.

Якби вам доводилося щоранку протягом шести місяців проводжати нового колегу до принтера, ви почали б непокоїтися. Якби він міг переказати кожну попередню таку прогулянку в найдрібніших деталях, але все одно потребував супроводу, його пам’ять була б чудовою… проте вам однаково довелося б вставати з-за столу.

Пам’ять ШІ-агентів сьогодні — це своєрідна версія такої нескінченної прогулянки до принтера. Генеральний директор Letta Чарльз Пекер стверджує в The New Stack, що бенчмарки пам’яті досягли насичення, бо вимірюють відтворення інформації, а цю задачу він вважає розв’язаною. Відкритою проблемою залишається інше: як агентові вдосконалюватися у своїй роботі завдяки контексту, який він зберігає, без жодного перенавчання.

Його співзасновниця Сара Вудерс порівнює це з першим днем на новій роботі — бенчмарки дають агентові весь потрібний контекст — і так завдання за завданням, не пов’язаним із попереднім, що зовсім не схоже на те, як працюють люди. Нового співробітника, можливо, доведеться провести до принтера. Але через три роки ви сподіватиметеся, що зможете дати йому завдання одним рядком, не встаючи з-за столу.

Саме до такого стандарту варто прагнути, і саме ця мета стоїть за Brain — нашою самовдосконалюваною системою пам’яті для Perplexity Computer, яка впорядковує минулу роботу та виправлення в базу знань у форматі вікі, що постійно розвивається.

Ми розповімо, що агент має запам’ятовувати і як перевірити, чи допомагає це йому краще виконувати роботу.

Що таке пам’ять ШІ-агента?

Пам’ять ШІ-агента — це інформація, яку агент зберігає з попередніх взаємодій і роботи, а також механізми її оновлення та використання. Постійний контекст пам’яті переносить цю інформацію між сеансами, тож закриття розмови не означає, що наступне завдання доведеться починати з нуля.

Більшість того, що випускають під цією назвою, запам’ятовує користувача. Ваші вподобання, контакти, роль, те, що вам потрібні PDF, а не PNG. Це легша половина.

Коли ми створювали Brain — систему пам’яті, що лежить в основі Perplexity Computer, — ми зосередилися на самій роботі. Який підхід спрацював? Яке джерело забрало двадцять хвилин марно? Що вам довелося виправляти після того, як агент оголосив, що завершив роботу? Ця історія дає наступному завданню кращу відправну точку.

Brain зберігає цю інформацію у вигляді файлів у пісочниці агента, упорядкованих у три рівні:

  • sessions/ містить необроблені стенограми сеансів та їхні підсумки.
  • notes/ містить стислу інформацію, упорядковану за темами.
  • knowledge/ містить саму вікі: пов’язані між собою сторінки Markdown про людей, проєкти та концепції.

Сама по собі жодна з цих частин не вдосконалюється. Уночі фонові агенти, яких ми називаємо «Dream», читають сеанси за день, підсумовують їх і оновлюють вікі там, де картина змінилася. Ми готуємо й перевіряємо ці зміни, перш ніж зафіксувати їх через Git, тож коли щось виглядає не так, є diff, який можна переглянути.

Чи робить це агента кращим у роботі? У нашому 30-денному парному оцінюванні сеанси з увімкненим Brain підвищили правильність на 9,3 відсоткового пункту, а повноту відтворення — на 8,9, використовуючи при цьому приблизно на 15% менше токенів.

Джерело: X

Які бувають типи агентної пам’яті?

Є два основні види, і поділ дуже схожий на той, який ви застосували б до людини: те, що ви тримаєте в голові просто зараз, і те, що ви знатимете й наступного місяця.

Короткочасна пам’ять

Короткочасна пам’ять містить контекст поточної розмови або завдання. Ваш запит, останні повідомлення, результат виклику інструмента, документ, який агент щойно відкрив. Достатньо інформації, щоб зрозуміти, що робити далі.

Її також називають робочою пам’яттю. Для LLM контекстне вікно містить інформацію, доступну під час конкретного виклику моделі. Застосунок може підтримувати додатковий стан завдання й вирішувати, які його частини передавати на кожному кроці.

І короткочасна не обов’язково означає одноразова. Фреймворк може зберегти стан розмови й відновити його завтра — він однаково належатиме цьому треду. Але те, чи зможе інше завдання використати цю інформацію, — окреме проєктне рішення.

Довгочасна пам’ять

Довгочасна пам’ять робить інформацію доступною між сеансами. Стаття CoALA запозичила з когнітивної науки три категорії, давши розробникам агентів словник для опису досвіду та практичних знань:

  • Епізодична пам’ять — це те, що сталося: сюди входять минулі сеанси, кроки, які виконав агент, і отриманий результат. У Brain цю історію забезпечує sessions/ через необроблені стенограми та їхні підсумки.
  • Семантична пам’ять — це те, що агент вважає істиною: це можуть бути факти про користувача, його проєкти та його світ, вилучені з розмов. Вікі knowledge/ у Brain містить саме такий тип інформації з посиланнями на докази.
  • Процедурна пам’ять — це те, як робити речі: це промпти, багаторазові робочі процеси, навички, які створює Perplexity, щоб надати агентам інструкції та інструменти, потрібні для роботи. Можливо, частина цього у вас уже є, хоча ви не називаєте це пам’яттю.

Найцікавіше відбувається між рівнями. Сеанс фіксує, що ви відхилили PNG. Ваша вказівка використовувати PDF стає вподобанням, яке агент може враховувати й надалі. Виправлення в процесі експорту стає тим, чого він зможе дотримуватися наступного разу.

Це перетворення — від «це сталося» до «це правда» і до «ось як ми це робимо» — є частиною проблеми навчання, з якої ми почали, і саме на нього витрачають зусилля нічні запуски агента Dream у Brain.

Припустімо, хтось розігріває рибу в мікрохвильовці на спільній кухні. Лунають скарги, хтось відчиняє вікно. Зрештою з’являється табличка: «НІЯКОЇ РИБИ».

Через пів року порушник уже з’їхав, а табличка лишилася. Це і є довготривале збереження. Типи пам’яті можна пояснити через те, що зберігається:

  • Робоча пам’ять — це те, що ви тримаєте в голові, поки готуєте обід, наприклад, що суп треба помішати.
  • Епізодична пам’ять — це сам інцидент із рибою; запах, який тягнувся за всіма аж до коридору.
  • Семантична пам’ять — це знання, яке ви з цього винесли: розігріта риба може залишати на спільній кухні стійкий запах.
  • Процедурна пам’ять — це інструкція, що визначає подальші дії. Не розігрівайте тут рибу в мікрохвильовці. Табличка дає змогу дотримуватися правила навіть тому, хто пропустив увесь інцидент.

Є ще одна відмінність, бо вона змінює те, що ми створюємо. Огляд Memory in the Age of AI Agents, уперше опублікований у грудні 2025 року, стверджує, що поділу на короткочасну й довгочасну пам’ять недостатньо, — він також класифікує пам’ять за формою:

  • На рівні токенів: це явний вміст, який читає агент. Файли, збережені записи, знайдені фрагменти.
  • Параметрична: це інформація, закодована у вивчених вагах. Щоб оновити її, потрібне навчання або методи редагування моделі.
  • Латентна: це інформація, що зберігається у внутрішніх представленнях, але не записана у вигляді читабельного тексту.

Тут ми зосереджуємося на пам’яті на рівні токенів, тобто на інформації, що зберігається поза моделлю й завантажується в її контекст за потреби. Вікі Brain у форматі Markdown — один із прикладів.

Коли ми оновлюємо сторінку, ми змінюємо те, що агент зможе прочитати під час наступного завдання, але його базові ваги лишаються тими самими. У цьому й полягає думка Пекера зі вступу: ставати кращим завдяки контексту, який зберігає агент, без перенавчання.

Як типи пам’яті агента працюють разом?

Агент може повернутися до попередньої спроби, побачити, де помилився, і завантажити інструкції, які ви дали йому згодом. В одному завданні задіяно кілька видів пам’яті, і їм не потрібно чекати своєї черги чи мати окремі бази даних.

Тут збереження визначає, що залишається доступним після завершення розмови, а пошук — чи побачить агент це взагалі знову.

Тип пам’яті

Що зберігається між сеансами?

Що вона зберігає?

Як Brain/ Computer додає її в контекст?

Робоча

Збережений стан завдання можна відновити, але модель бачить лише те, що застосунок передає для кожного виклику.

Поточний промпт, останні репліки, результати інструментів і знайдена інформація

Індекс допомагає агентові виявити доступну пам’ять; читання файлів додає релевантний вміст.

Епізодична

Збережені записи сеансів і підсумки.

Що сталося: попередні спроби, дії, результати та виправлення.

Коли агентові потрібні подробиці, він переходить за цитуваннями до підтверджувальних даних із сеансів.

Семантична

Підтримувані знання з історією версій там, де її записано.

Факти про людей, проєкти, вподобання та зв’язки між ними.

Агент читає сторінки knowledge/, шукає у файлах і переходить за [[вікіпосиланнями]].

Процедурна

Збережені інструкції, навички та робочі процеси — доки їх не буде змінено або видалено.

Як виконувати завдання.

Computer завантажує релевантні навички та інструкції за потреби.

У Brain ми зберігаємо цей шлях від висновку назад до доказів. Припустімо, ви просите Computer продовжити проєкт із минулого тижня:

  • Індекс Brain підказує йому, які сторінки пам’яті існують і де їх знайти.
  • Brain відкриває сторінку проєкту, щоб прочитати збережені рішення та інструкції.
  • Якщо в нотатці сказано, що ви відхилили певний підхід, агент може перейти за посиланням на джерело назад до розмови й перевірити, чому.

Посилання на пов’язані сторінки дають йому змогу знайти залучених людей або інші проєкти. Агент робить це, читаючи файли й шукаючи в них. Наприклад, grep дає змогу знайти згадки про проєкт за назвою.

Ми також перевірили, що дає агентам можливість досліджувати файли. У внутрішньому бенчмарку зі 150 запитань щодо фінансових документів агент-дослідник зі стандартними файловими інструментами досяг оцінки відповідей 0,627, тоді як семантичний пошук за тим самим корпусом — близько 0,37.

Джерело: X

Як покращити пам’ять ШІ-агента?

Стаття Орогата й Мансура, опублікована в травні 2026 року, визначає чотири повторювані збої пам’яті агентів: сховище постійно розростається, застарілі переконання не переглядаються, інформація забувається, коли закінчується місце, а пошук лише зчитує дані, нічого не дізнаючись із цього звернення.

Автори пропонують перестати розглядати агентну пам’ять як сховище й натомість вважати її «станом», що змінюється через чотири операції: приймання, перегляд, забування, пошук. Це наш контрольний список для цього розділу.

Вибірково підходьте до того, що запам’ятовується

Щойно «поганий» запис потрапляє в пам’ять, його успадковує кожен наступний крок.

У Workday AI Research випробували вибірковий підхід на приблизно 1500 потенційних записах пам’яті з бенчмарку LoCoMo, ставлячи п’ять запитань, перш ніж зберегти будь-який із них:

  • Чи корисно це? Чи ймовірно, що це знадобиться знову?
  • Чи це достовірно? Чи справді це було сказано в розмові, чи модель це домислила?
  • Це нове чи вже збережене?
  • Чи це актуально?
  • Це сталий факт чи тимчасовий стан?

Виклик моделі знадобився лише для першого запитання. Інші чотири виконувалися як правила загалом менш ніж за 65 мілісекунд. Метод забезпечив на 12% вищу точність рішень «зберегти чи відкинути», зберігши при цьому 97% релевантних записів пам’яті.

Найбільший внесок дало останнє запитання: якщо прибрати розмежування між сталою й тимчасовою інформацією, якість рішень знижувалася приблизно на 18%.

Оновлюйте відповідь, не втрачаючи історії

Фіксуйте, коли факт набув чинності, яке джерело його підтверджує і що він замінив. Якщо джерела розходяться, залишайте цю розбіжність видимою, доки не з’явиться достатньо доказів, щоб її розв’язати. Найновіший документ теж може помилятися.

Brain оновлює вікі на основі вихідних документів, результатів конекторів і виправлень користувачів. Кожен запис пам’яті містить посилання на своє джерело. Нам потрібно, щоб агент знаходив актуальну відповідь і мав, де перевірити, якщо ця відповідь здається підозрілою.

Забувайте свідомо

Один із режимів збою стаття називає «забуванням через обмеження місткості»: інформацію видаляють, щоб не перевищити ліміт сховища, а не тому, що вона перестала бути корисною.

Повернімося до спільної кухні. Через пів року нікого не цікавить, хто розігрівав рибу в мікрохвильовці чи як довго було відчинене вікно. Але табличка все ще виконує свою роль.

Коли наступна людина готуватиме обід, правило буде на місці. А скарги можна просто архівувати.

Перевірки Workday на актуальність і тип інформації починаються ще до збереження та відфільтровують те, що заслуговує стати записом пам’яті. У Brain ми також переглядаємо наявні знання, коли змінюються вихідні документи й користувачі вносять виправлення. В обох випадках потребу втрутитися зумовлює саме вміст.

Нехай пошук живить наступне оновлення

Агент знаходить факт, використовує його й залишає сховище точнісінько таким, яким його знайшов. Тож якщо система не фіксує, що сталося далі, ніщо не покаже, чи допоміг цей факт, чи завів агента в ще один глухий кут.

Фіксуйте результат, джерело та будь-які виправлення. Створюючи Brain, ми зробили цю історію роботи частиною того, що він запам’ятовує: який підхід спрацював, яке джерело нікуди не привело і що користувач виправив після того, як агент оголосив, що завершив роботу. Brain враховує цей досвід під час періодичних оновлень вікі, тож наступні завдання можуть ним скористатися.

Проте нічого з цього не видно в бенчмарку на відтворення. Щоб дізнатися, чи працює цей цикл, треба дати агентові завдання, яке він може виконати лише з пам’яттю, і порахувати, як часто він його виконує, з урахуванням вартості та затримки. Саме це робить DolphinBench, і тому найкращі результати досі тримаються в межах 70–79.

Як створити агента з постійною пам’яттю за допомогою Perplexity

Agent API від Perplexity не містить системи пам’яті, яка підтримує себе сама, як Brain. Ми воліємо сказати про це одразу. Натомість він дає вам потрібні складові пам’яті: місце для зберігання процедур, спосіб переносити контекст між репліками та інструменти для читання й запису в сховище, яке контролюєте ви.

Почніть із процедурної пам’яті

Користувацька навичка об’єднує інструкції, процедури та допоміжні файли під номером версії. Команда платформи може один раз описати свої перевірки розгортання, критерії відкату й формат звітності, а потім застосунки посилатимуться на ту саму навичку. Коли процедура змінюється, команда завантажує нову версію.

Джерело: X

Профіль — це наступний рівень. Профілі зберігають модель агента, інструкції, інструменти, навички, конектори та параметри запуску під єдиним версіонованим ідентифікатором.

Ми додали обидві функції у вересні разом із керованими конекторами, тож адміністратор проєкту може один раз налаштувати схвалене підключення до GitHub або Slack, а застосунки посилатимуться на нього замість зберігати окремі облікові дані. Коли доступ змінюється, адміністратор оновлює підключення в одному місці.

Чому це вважається пам’яттю? Знову повернімося на кухню, де хтось розігрів рибу в мікрохвильовці. Хто б не прийшов наступним, зможе дотримуватися правила «НІЯКОЇ РИБИ», навіть не чувши скарг.

Навичка виконує ту саму роль для агента, але в ній є місце для кроків, винятків і перевірок, які не вмістяться на дверцятах мікрохвильовки. Навички записані, мають версії та доступні наступного разу, коли постане це завдання.

Ми також використовуємо навички, щоб керувати оновленнями пам’яті в Dream. Але навичка не вміє навчатися самостійно. Інструкції змінюються, коли нову версію завантажує людина або автоматизований процес.

Якщо ви хочете, щоб агент помітив, що перевірка відкату постійно не проходить для одного сервісу, і скоригував дії, — це цикл «від сеансів до вікі», про який ішлося раніше.

Потрібно зберегти те, що сталося, визначити, що слід змінити, і зробити виправлення доступним наступного разу. Для цього потрібні дві наступні складові.

Переносьте робочу пам’ять між репліками

Агент запускає перевірку розгортання. Ви питаєте: «Чому це не вдалося?» Цілком логічне уточнення — за умови, що агент досі бачить, на що вказує «це».

Наш Agent API підтримує два способи передавати контекст розмови далі:

  • Відтворюйте розмову самостійно: додавайте попередні повідомлення до вхідного масиву наступного запиту. Ви вирішуєте, що зберегти, підсумувати, приховати чи відкинути перед надсиланням.
  • Продовжуйте із завершеної відповіді: збережіть її ідентифікатор і передайте його як previous_response_id разом із наступним повідомленням. Ми зберігаємо стан розмови на сервері, тому вашому застосунку не потрібно повторно надсилати попередні репліки. Продовжити можна з останньої відповіді в ланцюжку.

Відтворення дає вам контроль над тим, що бачить агент, а продовження за ідентифікатором позбавляє потреби знову збирати розмову. У будь-якому разі надайте всі нові інструкції, інструменти чи параметри моделі, потрібні для наступної відповіді.

Використовуйте власне епізодичне та семантичне сховище

Цю частину Agent API залишає вам.

Один зі шляхів — виклик функцій. Ви визначаєте інструменти, агент запитує виклик, а ваш застосунок виконує його й повертає результат. Для пам’яті простою відправною точкою є операція читання перед діями агента та операція запису після них.

Якщо записувати в журнал лише факт, який отримав агент, ви так і не дізнаєтеся, чи він допоміг. Записуйте результат, джерело й усе, що виправив користувач, — і матимете основу епізодичного рівня.

Наша підтримка MCP дає вам ще один шлях. Якщо сумісний віддалений MCP-сервер надає потрібні вам операції, агент може викликати їх, і вам не доведеться обгортати кожну як користувацьку функцію.

Наші конектори дають агенту доступ до доказів, на яких ґрунтуються спогади. GitHub, Slack, Google Drive, Datadog, Linear і Notion є в нашому каталозі керованих конекторів, а для внутрішніх систем можна додати користувацькі конектори.

Нарешті, вирішіть, коли переглядатиметься історія та оновлюватиметься поточна картина.

Перевірте, що зберігається в новому сеансі

Тепер закрийте розмову. Почніть новий запит, не відтворюючи старих повідомлень і не передаючи previous_response_id, але надайте агенту доступ до того самого сховища пам’яті. Попросіть його виконати пов’язану роботу, не повторюючи виправлення.

Якщо йому потрібне нагадування, роботу ще не завершено.

Для агента розгортання створіть кілька тестів щодо того, що має переноситися далі:

  • Виправлення зберігається: агент отримує та використовує перевірену команду відкату для відповідного сервісу.
  • Виправлення не виходить за межі своєї сфери: агент не змінює процедури інших сервісів.
  • Нова інформація замінює старі настанови: коли команда знову змінюється, агент використовує поточну версію і може простежити зміну до її джерела.

Наш посібник із регресійного тестування показує, як зберігати результати агента й отримані докази, перевіряти їх на відповідність очікуваній поведінці та порівнювати запуски після зміни інструкцій чи моделей.

Під час порівняння запусків із пам’яттю і без неї не змінюйте версії моделі, профілю та навички. Починайте кожне порівняння з відомого знімка сховища; інакше один тест може підказати агенту відповідь на наступний.

Коли щось не працює, збережіть цей випадок. Наступна зміна має його пройти.

Або обійдіться без власної розробки: Brain у Computer

Якщо вам потрібен готовий цикл, а не окремі частини, — це Computer. У його основі працює Brain, який навчається з чотирьох джерел: ваших сеансів, підключених інструментів, файлів і артефактів, які ви створюєте, а також ваших виправлень. Фонові оновлення Brain підкріплюють те, що досі актуальне, переглядають те, що змінилося, і позначають застарілу інформацію.

Вам не потрібно створювати цей цикл самостійно. Ви просто виконуєте роботу.

Пам’ять зберігає вподобання та подробиці, якими ви поділилися. Brain пов’язує проєкти, людей, рішення й незавершену роботу з доказами, на яких вони ґрунтуються.

У розділі «Пам’ять» можна переглянути, чого навчився Brain, простежити записи до їхніх джерел, а також відредагувати чи видалити їх. Brain використовує вашу власну активність, не враховує анонімні сеанси й має власний перемикач.

Наприклад, у Rho рішення щодо проєкту з виставлення рахунків були розпорошені між Slack, Notion, Jira, Figma та Google Docs. Команда налаштувала Computer так, щоб він уночі переглядав зміни, позначав невідповідності й публікував ранковий дайджест у Slack.

Їхній інженер-програміст Oktawian Jurkiewicz помітив, що Computer також формує пам’ять для проєкту. «Ми її не налаштовували, — каже він. — Computer сам визначив, які дані зберігати з кожного джерела».

Команда повідомляє, що скоротила час щотижневих нарад з 2,5 години до 15 хвилин, і оцінює економію в 120 робочих годин за 12 тижнів проєкту.

Ці 120 годин заощаджено завдяки всьому робочому процесу: конекторам, нічним запускам і дайджесту в Slack. Скільки часу заощадила саме пам’ять? Поки що ми не можемо оцінити це кількісно.

Але ми можемо порадити ось що: для власної розробки поверніться до описаного раніше тесту — виконайте рівнозначні завдання з увімкненим і вимкненим рівнем пам’яті, а потім порівняйте частку виконаних завдань, вартість і час, зокрема час, який хтось витрачає на виправлення результату.

Поширені запитання про пам’ять ШІ-агентів

Чи можуть ШІ-агенти мати пам’ять?

Так. ШІ-агенти можуть зберігати інформацію між сеансами завдяки збереженим розмовам, фактам, уподобанням і багаторазовим процедурам. Система має отримувати цю інформацію, коли вона доречна, і оновлювати її, коли обставини змінюються.

Brain у Perplexity Computer, наприклад, формує робочий контекст із сеансів, підключених інструментів, файлів і виправлень користувачів.

Скільки оперативної пам’яті (RAM) використовує ШІ-агент?

Єдиної вимоги немає. Якщо ваш агент звертається до розміщеної на сервері моделі через Perplexity Agent API, вам не потрібно завантажувати цю модель у власну оперативну пам’ять. Але вашому застосунку й локальним інструментам пам’ять однаково потрібна.

Із локальною моделлю все інакше. Якщо на параметр припадає чотири біти, вісім мільярдів параметрів — це приблизно 4 ГБ необроблених даних ваг. Фактично пам’яті потрібно більше, якщо врахувати накладні витрати квантування, обробку контексту та програмне забезпечення, що запускає модель.

Яка пам’ять найкраща для ШІ-агента?

Оптимальна конфігурація залежить від того, що агент має переносити далі. Стан розмови підтримує уточнювальні запитання; епізодичні записи зберігають те, що сталося; семантична пам’ять містить актуальні знання; процедурна пам’ять надає багаторазові інструкції.

Для більшості тривалої роботи корисне поєднання. Для Brain ми використовуємо вікі із взаємопов’язаними сторінками, що спирається на джерела. Для власної розробки перевірте, чи допомагає така конфігурація агенту виконувати завдання, застосовувати виправлення та відмовлятися від застарілих настанов.