Слогер Создать блог
Разработка

Чему меня научил один пользователь об AI-памяти

Как долгосрочная память для AI меняет процесс разработки и почему контекст — это не то же самое, что память.

Когда я прочитал этот ответ в опросе пользователей, я остановился на минуту. Не потому, что он был лестным, а потому что он описал проблему, которую я пытался решить, лучше, чем я сам.

«Empirical дал мне отдельный слой памяти, когда встроенная память ChatGPT стала ненадёжной. Для долгосрочной непрерывной работы эта дополнительная память оказалась не просто полезной — это благословение». — Томас, пользователь Empirical

AI отлично справляется с диалогами

Современные AI-модели впечатляют. Они могут писать код, резюмировать документы, генерировать идеи, анализировать данные и помогать решать задачи быстрее, чем когда-либо. В рамках одного диалога они кажутся почти волшебными. Однако долгосрочная работа — это другое.

Рано или поздно диалог становится слишком большим. Его архивируют. Вы меняете модель, открываете новый сеанс кодинга или переходите от одного AI-инструмента к другому. Где-то по пути части проекта начинают исчезать.

AI забывает, почему вы приняли решение шесть недель назад. Он забывает эксперимент, который провалился, баг, на который вы уже потратили три часа, или соглашение об именовании, которое все договорились не менять.

И вы снова объясняете проект, не потому что AI глуп, а потому что нужная история ему больше недоступна.

Контекст — это не память

Это различие важно.

Контекст временен. Память долговечна.

Диалог даёт AI достаточно информации, чтобы ответить прямо сейчас. Система памяти сохраняет полезные знания, чтобы их можно было найти позже. Это не одно и то же.

Представьте, что вы работаете с гениальным коллегой, который забывает всё после каждой встречи. Он умный, полезный и отлично работает, но каждый понедельник начинается с нуля.

Вот что такое долгосрочная работа с AI. Увеличение контекстного окна может отсрочить проблему, но не решает её. Больше места для текста — это не то же самое, что знание того, что было важным.

Реальный пример

Скриншоты в этой статье взяты из реального сеанса кодинга.

Кодинг-агент работал над проблемой тайминга в сервисе создания задач. Сервис должен был сохранять задачу надёжно, прежде чем вернуть успешный ответ, а вторичные задачи — такие как обновление поискового индекса и публикация вебхука — могли выполняться после.

Сфокусированный тест всё ещё показывал старое поведение. Сначала агент проверил реализацию, изменил код и запустил тест.

Важная деталь тайминга скрывалась под очевидным исправлением.

Прямой вызов асинхронных интеграций всё равно позволял их синхронному стартовому коду выполняться до того, как возобновлялось обещание. Технически задача сохранялась первой, но путь ответа всё равно задерживался производной работой.

Это та проблема, на которую можно убить полдня.

И как раз та проблема, с которой проект уже сталкивался раньше. Агент запросил Empirical. Найденная память описывала похожий паттерн ошибки: возвращать результат после надёжного сохранения, позволяя обнаружению дубликатов, аналитике, индексации, доставке вебхуков и другой производной работе продолжаться асинхронно.

Агенту не дали готовый ответ. Ему дали недостающую историю проекта, и этого хватило, чтобы распознать паттерн.

Память как шрам

Я думаю о таких воспоминаниях как о шрамах. Шрам — это доказательство того, что что-то произошло, но также и предупреждение: не делай тот же разрез в том же месте.

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

Агент обновил реализацию, сохранил существующую обработку ошибок и снова запустил регрессионный тест. Тест прошёл.

Это важно, но интереснее то, почему он прошёл. Агент не наткнулся на решение случайно, как будто у проекта нет истории. Он нашёл урок, который проект уже оплатил.

Почему я создал Empirical

Я создал Empirical не потому, что хотел ещё одно AI-приложение для чатов. Я создал его, потому что хотел слой памяти, который принадлежит мне.

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

Не только для одного разговора, а для проектов, для месяцев, и для любой AI-модели, редактора или кодинг-агента, которые я буду использовать дальше. Модели будут меняться. Инструменты будут меняться. Память о работе не должна исчезать каждый раз, когда они меняются.

Что меня удивило

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

Такая информация редко выживает в обычной документации. Она разбросана по чатам, пул-реквестам, терминальным сессиям, тикетам, заметкам с встреч и чьим-то всё более ненадёжным воспоминаниям о том, что случилось в прошлый вторник.

Документация обычно фиксирует окончательное решение, но не путаницу, которая ему предшествовала. А именно в этой путанице часто и живёт урок. Месяцы спустя рассуждения, стоящие за решением, могут быть ценнее, чем финальный код. Они становятся частью памяти проекта.

Память должна учиться

После исправления проблемы агент записал новый урок обратно в Empirical.

Агент зафиксировал урок простым языком:

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

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

Цикл прост:

  1. Вспомнить, что проект уже знает.
  2. Использовать это для принятия лучшего решения.
  3. Записать, что проект только что узнал.

Следующему агенту не придётся переоткрывать тот же урок с нуля. Ни следующему разработчику. Ни мне.

Дело не в запоминании всего

Я не считаю, что AI-память должна сохранять каждое слово каждого разговора навсегда. Это создало бы другую проблему: шум. Цель — не идеальное воспоминание. Цель — полезное воспоминание.

Решения, которые изменили проект. Неудачи, которые открыли что-то важное. Уроки, которые было бы дорого переучивать. Предположения, которые стоит подвергнуть сомнению в следующий раз.

Хорошая система памяти должна помочь AI найти нужные пять предложений, а не заставлять его перечитывать пятьдесят тысяч.

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

По материалам: productivity. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.