Мой кодинг-агент помнил сессии, а не работу

Кодинг-агент может поддерживать нить диалога, но при этом казаться забывчивым.

Я столкнулся с этой проблемой при создании CliGate. Я исправил непрерывность сессий, но повторные задачи всё равно выполнялись медленно.

Агент помнил разговор, но не помнил саму работу.

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

  • continue
  • сделай то же самое для этого файла
  • повтори это
  • объясни ошибку

Это важно для плавности процесса. Но это не работает, когда вы повторяете рабочий процесс спустя несколько дней.

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

Первый запуск — самый дорогой. Именно тогда агент находит мельчайшие детали:

  • определенное меню скрывает действие
  • редактор является iframe
  • проекту требуются специфические стили ответов
  • URL окружения отличается от продакшена

До моего исправления эти детали были просто сырыми логами. У агента была история, но не было переиспользуемой памяти. Ему приходилось заново открывать те же факты каждый раз. Это не интеллект. Это двойная оплата одной и той же работы.

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

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

  • процедур: оптимальных шагов и известных тупиков
  • фактов: URL-адресов, правил или настроек
  • директив: того, как вы хотите, чтобы выполнялись задачи
  • ссылок: мест, где находится документация

Это изменило систему. Вместо чтения гигантского транскрипта ассистент использует слой памяти на основе файлов.

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

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

Я также отделил постоянные правила от истории сессий. Правила вроде «не трогай данные продакшена» — это не контекст разговора. Это правила работы. Их разделение делает поведение ассистента предсказуемым.

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

Если вы создаете кодинг-агентов, не путайте нить диалога с обучением.

  • Сессия помогает с непрерывностью.
  • Память помогает при повторении работы.

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

Ваша система помнит нить диалога или она помнит успешную процедуру?

Источник: https://dev.to/codekingai/my-coding-agent-remembered-sessions-not-work-that-was-the-bug-2fig