The AI / news

Память ИИ-агентов строится на блоках, паттернах и фреймворках

Память ИИ-агентов строится на блоках, паттернах и фреймворках
3 мин чтения

Языковая модель не сохраняет информацию от одного вызова к другому: при каждом выполнении она работает только с текстом, предоставленным в запросе. Для ИИ-агентов, которым необходимо отслеживать свои прошлые действия, запоминать предпочтения пользователя или выполнять многоэтапную задачу, это ограничение делает необходимой внешнюю память для модели. Эта память хранит информацию за пределами контекстного окна, то есть объема текста, который модель может обработать за один раз, и возвращает её, когда она полезна.

Блоки памяти агентов

Агентам необходимо переносить информацию от одного вызова и задачи к другой. Им может потребоваться помнить, что уже было запланировано, чтобы избежать дублирования действий, или хранить в памяти неудачные попытки, чтобы не повторять одну и ту же работу. Без памяти каждый вызов располагает только предоставленным ему контекстом.

Типы памяти делятся на четыре категории. Рабочая память содержит активное состояние задачи, например, промежуточные результаты, и доступна для прямого поиска по ключу. Эпизодическая память сохраняет произошедшее: прошлые взаимодействия, выполнение задач и принятые решения, в хронологическом журнале или векторной базе, с поиском по семантическому сходству. Семантическая память собирает то, что считается истинным, а именно факты и предпочтения, которые обновляются, а не добавляются. Процедурная память описывает способ выполнения действий, будь то шаблоны успешных действий или известные режимы сбоев, и опирается на шаблоны промтов или на дообучение (fine-tuning), настройку модели на основе специфических данных.

Проектирование надежной памяти

В примере с агентом поиска, работающим над одной задачей несколько дней, каждый результат сначала записывается в рабочую память с коротким сроком жизни. Когда результат оказывается полезным, он перемещается в эпизодическую память с оценкой важности. Перед каждым вызовом инструмента агент обращается сначала к рабочей памяти, а затем, при необходимости, к эпизодической. Если задача прерывается на полпути, временное состояние может быть удалено, в то время как история завершенных работ сохраняется.

Несколько практик делают память более надежной по мере её роста: оценка важности информации перед записью, ограничение памяти каждого агента его ролью в мультиагентных системах, обращение к памяти на каждом этапе принятия решения и отслеживание происхождения каждого элемента — от агента, инструмента, пользовательского ввода или временной метки. Некоторые подходы, простые в реализации, напротив, становятся ненадежными. Это относится к хранению всего в единой векторной базе, к сжатию через свободные резюме, которое может удалить цифры или ограничения, к неограниченному росту памяти или к одинаковому уровню доверия к каждой записи. Последнее делает систему уязвимой для отравления памяти, когда ненадежный или вредоносный контент сохраняется, а затем обрабатывается как достоверная информация.

Фреймворки с разными подходами

Фреймворки занимают промежуточное положение между простой текстовой памятью и графами знаний. Letta основан на текстовых блоках, которые агент может переписывать самостоятельно, и обновляет блок при обнаружении противоречия. Mem0 использует векторную память с поиском, чувствительным к сущностям, и добавляет новые воспоминания рядом со старыми. Graphiti опирается на битемпоральный граф знаний с типизированными отношениями: он аннулирует старые связи, сохраняя при этом их доступную для просмотра историю. Cognee строит из исходных данных слои графа, векторные и реляционные, и реконструирует представление памяти с временными режимами для отслеживания изменений.

В мультиагентных системах совместное использование памяти может вызывать конфликты при одновременных обновлениях. Рассматриваемые решения включают централизованную службу с контролем записи, отдельные пространства имен для каждого агента или журналы только с добавлением, где конфликты разрешаются при поиске. Оценка опирается на несколько показателей: полнота (recall), которая измеряет, находятся ли релевантные воспоминания; точность (precision), которая измеряет долю возвращаемой бесполезной информации; верность (fidelity), которая проверяет корректность использования извлеченной информации; и устаревание (obsolescence), которое измеряет частоту устаревшей информации. Согласно статье, выбор зависит от рабочей нагрузки агента, его данных и операционных требований.