🗂 Долгосрочная память
Продолжим про память AI-агентов. Долгосрочная память — это информация, которая хранится отдельно и к которой агент обращается по мере необходимости. В самом простом случае это текстовые файлы, в более сложном — базы данных и RAG-системы, которые ищут нужные фрагменты и добавляют их в контекст модели.
Встроенная долгосрочная память пока иногда работает довольно забавно. Инструменты «запоминают» важные факты о вас: кем работаете, где живёте, что любите. А потом используют их в новых разговорах. Конкретная реализация у всех разная, но идея примерно такая.
Например, я попросил подобрать фильм на выходные. ChatGPT помнил, что я занимаюсь AI, поэтому радостно предложил мне фильмы про искусственный интеллект. Спасибо, конечн, но в выходные без AI, позязя 😅
Проблема такой памяти в том, что она хранит отдельные факты, но не понимает, какой из них нужен прямо сейчас. То есть модель что-то знает о вас, но не обязательно понимает контекст вашей задачи. И такая память иногда даже скорее мешает. Ну и важно помнить, что она тоже ест контекст и добавляется каждый раз в вашу переписку.
Поэтому для рабочих агентов нужно строить более сложные системы: заметки, разбитые по типам — задачи, проекты, люди, логи работы и т.п. Такие системы сейчас называют модным словом Second Brain / LLM Wiki / Knowledge Base и т.п.
Моя схема выглядит примерно так:
— в Slack есть личный и командный inbox: туда можно голосом или текстом скинуть задачу, ссылку или мысль;
— запланированный процесс собирает новые записи из этих inbox и подключённых систем: Slack, почты, Confluence, транскриптов встреч и т.п.;
— результат сохраняется в человекочитаемые Markdown-файлы в виде сырых данных;
— раз в день агент проходится по ним и формирует curated knowledge layer — обновляет проекты, добавляет карточки задач и людей, связывает их между собой через ссылки;
— дальше агент предлагает приоритеты и может забрать отдельные подтверждённые задачи в самостоятельную работу;
— с этой базой я работаю как с локальным проектом, а агент подсасывает себе только нужный контекст. Говорим про проект — подтягивает данные по нему. Ищу переписку с человеком — сначала находит его карточку в базе и т.п.;
— просмотр и ручное редактирование делаю через Obsidian, хотя делаю это всё реже.
На скрине, утомивший уже наверное всех, граф знаний, который получается таким образом и структура моих папок. С «_» — словари и сырые данные, номерные папки — curated layer, остальное — системные и вспомогательные папки.
Для командной работы всё то же самое, но база знаний лежит на облачном диске или в GitHub.
Для более сложных решений могут понадобиться базы данных, векторный или другой поиск и более сложные процессы distill — превращения сырых данных в знания. Для сравнения таких штук люблю проект Awesome Second Brain, там собраны разные подходы и инструменты, можно выбрать под свою задачу.
Мы сейчас в компании делаем два процесса параллельно: строим большой и сложный Second Brain для всей компании, но это займет много времени, а пока параллельно пытаемся сделать простые варианты на .md-файлах для каждой команды.
Вся соль в том, чтобы агент каждый раз доставал нужный кусок этой базы и понимал, к какой задаче он относится.
@revealthedata #ai #agents
Post #1748
1.27K

- 👍 9
- ❤ 8
- 👎 2
- 🔥 2
- 😁 1