Today

Почему свой опыт пора перестать хранить только в голове

И зачем начинающим, мидлам и сеньорам уже сейчас задуматься о второй памяти

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

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

За последние пару лет у меня накопилось много параллельных разговоров с ИИ. В одних мы обсуждали рабочие проекты, в других — здоровье, обучение, личные задачи, какие-то мои идеи. Внутри каждого отдельного диалога всё обычно работает хорошо: модель помнит, с чего мы начали, знает предыдущие решения и понимает мои сокращения.

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

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

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

Формально почти всё сохранилось, но без понимания, где и что искать, вся эта информация почти не работала. Сообщения лежали в переписках, документы — в папках, презентация с названием «финальная_версия_7» тоже наверняка была на месте. Исчезло другое — состояние, в котором принималось решение: какую проблему я тогда решал, какие варианты уже попробовал, почему очевидный путь не подошёл, какое ограничение оказалось главным и где в итоге остановился.

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

В какой-то момент я начал называть то, чего мне не хватает, второй памятью. Не уверен, что это идеальное название: оно сразу вызывает ассоциации со «вторым мозгом», базами знаний и людьми, у которых все заметки красиво связаны между собой. Я всё-таки имею в виду немного другое.

Что изменил ИИ

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

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

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

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

Хотя здесь как раз и возникает проблема. Когда-то он это действительно знал и понимал, но реальный опыт не лежит в голове в виде аккуратной базы данных. Он постепенно стирается, смешивается и упрощается. Через несколько лет от сложного проекта может остаться внутреннее ощущение: здесь так лучше не делать. Возможно, оно однажды остановит от ошибки, но объяснить его другому человеку, а тем более передать системе, уже трудно.

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

Но ИИ изменил не только доступ к готовым ответам. До недавнего времени любая запись оставалась пассивной. Чтобы воспользоваться старой заметкой, нужно было сначала самому вспомнить о её существовании, понять, где она лежит, правильно сформулировать запрос и только потом попытаться восстановить контекст. Если ты не помнишь, что когда-то уже решал похожую задачу, никакая идеальная база знаний тебе не поможет.

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

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

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

Наверное, поэтому задумываться о такой памяти нужно уже сейчас. Её невозможно полноценно собрать задним числом. Через пять лет система не восстановит причины решений, которые сегодня нигде не сохранились. Идеального персонального ассистента пока нет, но к моменту его появления у него уже должна быть история, с которой он сможет работать.

Что я называю второй памятью

Когда я впервые пытался сформулировать, зачем она мне вообще нужна, я сказал довольно грубо: хочется вычистить мозг.

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

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

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

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

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

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

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

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

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

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

Начинающие, мидлы и сеньоры

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

Программа запускается, задание сдано, на экране всё выглядит правильно. Потом старший коллега задаёт довольно простой вопрос: «Почему ты сделал именно так?» — и выясняется, что между ответом модели и пониманием человека осталась пустота.

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

У мидла опыт уже есть, иногда довольно большой, но он разбросан между проектами, компаниями и людьми. Я сам много раз произносил фразу: «Мы уже сталкивались с чем-то похожим, где-то у меня это точно было». Слово «где-то» может означать старую корпоративную почту, переписку пятилетней давности или ноутбук, которым давно никто не пользуется.

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

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

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

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

Во время сложного инцидента команда начинает искать человека, который «точно что-то об этом знает». Иногда он на другом совещании, иногда в отпуске, иногда уже работает в другой компании, но его номер всё ещё хранится у половины команды как последний элемент отказоустойчивости.

Человека находят. Он смотрит на ситуацию и говорит: «Нет, так делать нельзя. Мы уже проходили это раньше». Иногда одной этой фразы достаточно, чтобы остановить неправильное действие, но для передачи опыта её мало. Почему нельзя? Что именно произошло в прошлый раз? Какой признак он увидел сейчас? При каких условиях это решение всё-таки допустимо?

Если ответы остаются только у конкретного человека, организация не сохраняет опыт, а просто какое-то время пользуется его памятью. С появлением ИИ-агентов это становится ещё важнее. Чтобы поручить системе действие, мало научить её добиваться результата. Она должна понимать, где обязана остановиться, когда нужно позвать человека, какой риск недопустим и почему локально правильное действие может дать плохой результат для всей системы. В таких ситуациях накопленный опыт «как не надо и почему» может оказаться полезнее любой инструкции «как сделать».

От памяти к персональному ассистенту

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

Настоящий персональный ассистент, как мне кажется, должен помнить не только факты обо мне. Ему нужно понимать, что происходило со временем и как предыдущие решения повлияли на текущее состояние.

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

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

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

Поэтому мне не нужен ассистент, который скажет: «Ты всегда делал так, поэтому я уже всё решил». Мне кажется более полезным другой разговор: «Раньше ты выбрал этот вариант, потому что действовали такие ограничения. Сейчас часть из них изменилась». Тогда прошлый опыт помогает принять новое решение, но не принимает его за человека.

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

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

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

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

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