Как научить AI-агента не повторять ошибки: цикл запоминания на LangSmith

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

Источник: langchain.com

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

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

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

Что такое «память» для программы и почему это не просто запись разговора

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

Авторы руководства разделяют память на два уровня:

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

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

Три типа долгосрочной памяти: что программа должна знать, помнить и уметь

Авторы предлагают разделить долгосрочную память на три категории, заимствованные из когнитивной науки:

  1. Фактическая память — что программа знает: факты, предпочтения пользователя, общие сведения. Например, «клиент предпочитает получать ответы на русском языке» или «в этом регионе действует особый тариф».
  2. Опытная память — что программа пережила: прошлые взаимодействия, примеры удачных и неудачных действий. Например, «в прошлый раз, когда программа предложила этот вариант, клиент отказался».
  3. Процедурная память — как программа должна себя вести: инструкции, правила, последовательности действий. Например, «сначала проверять статус заказа, потом предлагать варианты решения».

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

Как устроен цикл запоминания: три шага, которые должна делать каждая программа

Руководство описывает простой, но эффективный цикл из трёх шагов:

Шаг 1. Захват записей (traces). Программа должна записывать всё, что она делает: что сказал пользователь, какие запросы программа отправила, какие инструменты вызвала, какие результаты получила. Это не просто логирование — это доказательная база. Без неё невозможно понять, что пошло не так.

Шаг 2. Анализ записей. После завершения задачи специальный фоновый процесс просматривает записи и ищет места, где программа ошиблась или могла узнать что-то новое. Например: пользователь поправил формат ответа — значит, программа должна запомнить правильный формат. Или: программа вызвала инструмент в неправильном порядке — значит, нужно уточнить последовательность действий.

Шаг 3. Обновление памяти. Извлечённые уроки обобщаются и сохраняются в хранилище долгосрочной памяти. В следующий раз, когда программа начнёт новую задачу, она сначала прочитает это хранилище и применит накопленные знания.

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

Где подвох: что может не сработать и почему не стоит слепо копировать

Руководство написано командой LangChain и использует их инструменты: LangSmith для хранения записей, LangSmith Engine для анализа и LangSmith Context Hub как хранилище памяти. Это vendor-контент, и методология привязана к конкретной платформе.

Основные риски:

  • Зависимость от поставщика. Если вы построите память на инструментах одного вендора, переход на другую платформу потребует переписывания всего цикла.
  • Стоимость хранения и анализа. Запись каждого действия программы — это деньги. Анализ записей тоже требует вычислительных ресурсов. Для небольших проектов затраты могут оказаться неоправданными.
  • Качество анализа. Фоновый процесс, который ищет ошибки, сам может ошибаться. Он может пропустить важный сигнал или, наоборот, запомнить случайность как правило.
  • Эволюция абстракций. Авторы прямо говорят, что реализации ещё развиваются. То, что работает сегодня, может устареть через полгода.

Что проверить до внедрения: - Есть ли у вашей команды ресурсы на настройку и поддержку цикла памяти? - Готовы ли вы к vendor lock-in или у вас есть план Б? - Как вы будете оценивать качество анализа — не запомнит ли программа неправильные уроки?

Практический чек-лист: что сделать за неделю

Если вы решили попробовать внедрить цикл памяти для своей программы, вот пять шагов, которые можно сделать без перестройки всей системы:

  1. Включите запись действий. Убедитесь, что ваша программа записывает хотя бы основные шаги: что сказал пользователь, какой ответ дала программа, какие инструменты использовала. Без этого шага остальные бессмысленны.
  2. Определите, какие ошибки вы хотите ловить. Не пытайтесь запоминать всё сразу. Выберите одну-две типичные проблемы: неправильный формат ответа, неверный порядок действий, игнорирование правил.
  3. Настройте простой анализ вручную. Не обязательно сразу запускать автоматический анализ. Можно начать с того, что раз в день просматривать записи и вручную добавлять правила в инструкцию программы.
  4. Создайте хранилище правил. Это может быть простой текстовый файл или база данных, откуда программа читает инструкции перед началом работы.
  5. Проверьте, что программа действительно применяет новые правила. После того как вы добавили исправление, убедитесь, что программа в следующей задаче его использует. Если нет — значит, механизм загрузки памяти работает неправильно.

Источники

Что почитать дальше