
290 сессий, 13 уроков: чему AI-агенты научились сами
Каждую ночь наши AI-агенты перечитывают свою работу и записывают, чему научились. Из 290 сессий вышло 13 уроков, из которых мы оставили 6. Рассказываем, что они нашли и какую пользу это принесло.
По утрам вверху моего терминала обычно появляется урок. В нём сказано: запускайте написанные вами тесты и сообщайте, прошли они или нет, прежде чем объявлять работу законченной.
Никто из нашей команды эту фразу не писал. Её написал агент ночью, когда перечитывал свою работу за день и заметил, что постоянно пишет тесты, а потом не запускает их.
Это называют рекурсивным самосовершенствованием (RSI). Звучит как тема статьи о конце света. На деле это скорее похоже на музыканта, который после концерта слушает запись. Слышите место, где поторопились. Делаете пометку. Завтра торопитесь чуть меньше.
Мы запускаем этот процесс на собственных машинах с середины сентября. Почти всё, что я читаю о RSI для AI-агентов, посвящено тому, на что оно когда-нибудь может оказаться способно. Здесь — о том, что наши агенты уже сделали.
Как устроен процесс
Sno Station запускает его раз в день. Шаги простые.
Сначала он собирает сессии за день из Claude Code и Codex. Каждая получает краткую оценку: стоит ли её сохранить и закончилась ли она успехом или неудачей. Сохранённые сессии передаются модели-судье, которая ищет момент, когда удалось чему-то научиться. Обычно человек исправляет агента, но иногда агент сам замечает ошибку, а иногда его подводит окружение.
Для каждого такого момента модель-судья записывает урок из четырёх частей. Ситуация, в которой он нужен. Совет. Причина. И доказательство — дословная цитата из сессии с указанием строки.
Затем урок должен пройти две проверки.
Первая механическая. Каждая приведённая цитата должна посимвольно совпадать с текстом той сессии, на которую ссылается урок. Если цитаты там нет, урок отбрасывается. Вторая проверка поручена другой модели, чья единственная задача — сомневаться. Она сверяет каждое предложение урока с доказательствами; если утверждение выходит за их пределы, урок не проходит.
После этого приходит очередь человека. Я читаю оставшееся и решаю, что сохранить.
Уцелевшие уроки показываются агентам в начале следующих сессий, по одной строке на каждый. Самые полезные стоят выше. Если урок кажется подходящим, агент может открыть его целиком.
Что получилось
Вот цифры из записей этого процесса на нашей сборочной машине.
Он собрал 1,879 сессий. Из них 290 передали модели-судье. Обе проверки прошли 13 уроков. Я сохранил 6. Остальные 7 пока ждут моего решения.
290 сессий, 13 уроков. Сначала это соотношение меня удивило. Потом я задумался: сколько дней вашей работы содержат что-то, что захотелось бы записать и повесить на стену? Большинство дней — просто дни.
И сами уроки невелики. Честно говоря, я ожидал чего-то более грандиозного. Вот три примера в формулировках самих агентов.
После переименования пакета или каталога в рабочем пространстве npm с помощью git mv, перед проверкой результата явно проверьте в каждом пакете каталоги со сборочными файлами, которые игнорирует git (dist/, build/, out/), на наличие старых файлов. Переместите или удалите их.
Перед созданием каждого фрагмента патча прочитайте точный диапазон строк, к которому он относится, чтобы получить контекст дословно. Никогда не берите идентификаторы или синтаксис из ранее обрезанного вывода того же файла.
Помечайте возможность как «не описана в изученных источниках», пока явный контракт или тест с ограниченной областью не установит, что её нет.
Первый урок стоил нам целого дня работы после обеда. Пакет переименовали, с исходным кодом всё было правильно, но установка снова и снова завершалась ошибкой: старый скомпилированный файл лежал в папке, которую git не проверяет. Второе агент делает раз сорок в неделю: примерно помнит содержимое файла и пишет патч по памяти, а не по самому файлу.
Третий мне нравится больше всего. Агент сравнивал продукты, не нашёл функцию в документации конкурента и сообщил, что у конкурента её нет. Молчание не означает отсутствия. Этому уроку мне приходилось учить и людей.
Это опыт, который опытный инженер носит с собой, даже не замечая. Шрамы. Разница в том, что агент начинает каждую сессию вообще без них.
Насколько это полезно
Пока я не могу сказать, насколько всё это помогает.
Уроки показывали в начале 5,595 сессий. Агент открыл полный текст урока 135 раз. То есть примерно в 2 процентах случаев. Основную работу делает краткая версия в одну строку — или не делает ничего. Я не всегда могу отличить одно от другого.
Процесс проверяет и собственные результаты. После показа урока он спрашивает, последовал ли агент совету и помогло ли это. Пока есть два ясных ответа: «последовал, и это помогло». Оба относятся к одному и тому же уроку. Ещё семь результатов оказались неясными.
А как насчёт урока вверху моего терминала, который требует запускать тесты? После его появления агенты всё равно иногда их пропускали: 4 ошибки в 12 сессиях. До появления урока было 22 в 119. Выборка слишком мала, чтобы говорить, что стало хуже. И уж точно слишком мала, чтобы говорить, что стало лучше.
Так что пока я не знаю. В самом прямом смысле. Если бы меня заставили оценить пользу сегодня, я бы сказал: каждый сохранённый урок предотвращает ошибку ценой от десяти минут до половины рабочего дня, а одни и те же шесть ошибок повторяются достаточно часто, чтобы это имело значение. Одна ночь оценки 193 сессий обошлась примерно в пятьдесят центов. Ошибиться в оценке пользы стоит недорого.
Я уверен в том, что скромнее измерений. Я узнаю эти уроки. Читаю и думаю: да, это случилось, и да, именно это я бы агенту и сказал.
Что пошло не так
Самому процессу понадобилось то же лечение, которое он предлагает агентам.
Сначала из-за ошибки черновики уроков проходили вторую проверку вообще без проверки. Мы выбросили их все. В цифры выше входят только уроки, прошедшие весь процесс.
Кроме того, мы построили процесс слишком осторожно. Пробный запуск, проверка хеша, восстановление после сбоя. Однажды ночью мы убрали из него 724 строки такого кода, и он стал работать лучше. Систему, которая должна учиться на ошибках, окружили защитой от ошибок, которых она ни разу не совершала.
Затем в конце сентября процесс замолчал. Пропал файл настроек, и каждую ночь система просыпалась, обнаруживала, что ей нечего разрешено отправлять, и снова засыпала. Так продолжалось неделю, прежде чем кто-то заметил. Трудно полюбить то, что молча ломается в три часа ночи.
Теперь этот случай есть в списке. Возможно, из него тоже стоит сделать урок.
Что дальше
Тринадцать уроков — это не переписывание агентом самого себя. Это записная книжка. Месяц назад наши агенты повторяли во вторник ту же ошибку, что и в понедельник, и не помнили ни об одной.
Иногда утром напоминание уже на месте, а тесты всё равно не запускаются.
Sno Station — проект с открытым исходным кодом, и ночной обзор работы входит в него. Он доступен на sno.ai.
Written by Sno AI Team
Contributing writer at Sno.ai, sharing insights about AI, productivity, and knowledge management.
Related Articles
Comments
Comments coming soon. Configure Giscus at giscus.app


