𝗦𝗮𝗹𝗶𝗲𝗻𝗰𝗲 — это не Carry Value
Большинство людей неправильно строят память агентов.
Они фокусируются на хранении. Они используют векторные хранилища или хитрые суммаризаторы. Они думают, что если сохранить всё, агент будет знать всё.
Они ошибаются.
Когда у вас сотни сессий, вы не можете прочитать их все. Если ваш агент начинает новую сессию «с нуля» (cold start), он тратит время впустую. Если он начинает с избыточным шумом, он совершает ошибки.
Проблема в отборе. Большинство людей путают salience с carry value.
- Salience говорит вам о том, что было заметным в прошлой сессии.
- Carry value говорит вам о том, что необходимо следующей сессии для работы.
Бурный спор об имени переменной обладает высокой salience. Но если это имя не влияет на будущий код, его carry value равна нулю. Если вы перенесете его вперед, вы просто добавите шума.
Я использую конвейер памяти (memory pipeline), основанный на следующих правилах:
Сначала механическая salience. Используйте детерминированный скоринг для поиска важных моментов. Придавайте исправлениям больший вес, чем простым комментариям. Каждый highlight должен быть связан с исходной транскрипцией. Не позволяйте модели выдумывать факты без источника.
Затем синтез. Используйте LLM только для того, чтобы добавить слой смысла к highlights. Если ваши highlights плохи, суммаризация превратится в уверенную чепуху.
Используйте краткую сводку (brief) при извлечении. Создавайте файл вроде INDEX.md для каждого проекта. Агент читает этот файл в начале сессии. Ни одна модель не должна придумывать эту сводку на лету. Это должен быть обычный файл, который вы можете открыть и отредактировать вручную.
Чтобы построить лучшую память, вам нужно нечто большее, чем просто список важных вещей. Вам нужны:
- Два показателя: один для того, насколько это было заметно (salience), и другой — для того, насколько это важно в дальнейшем (carry value).
- Классы памяти: разделяйте активные решения, операционные ограничения и незавершенные циклы (open loops).
- Сроки годности: у каждого фрагмента памяти должна быть причина «умереть». Без истечения срока годности контекст засоряет вашу систему.
- Триггеры: точно определите, когда должен появляться тот или иной фрагмент памяти.
Цель — минимизировать стоимость восстановления (recovery cost).
Recovery cost — это количество токенов или минут, которое требуется агенту, чтобы догнать контекст до того места, на котором он остановился. Если ваш конвейер памяти — это просто театр, стоимость восстановления останется высокой.
Хватит строить всё более масштабные хранилища. Начните строить более качественный отбор.
Источник: https://dev.to/jugeni/salience-is-not-carry-value-notes-from-a-running-session-memory-pipeline-4dda
Дополнительное обучающее сообщество: https://t.me/GyaanSetuAi
