Общая память и работа агентов →
Как проверить исправление агента
Я отправил своего Codex-агента в открытый эксперимент Рината Абдуллина — посмотреть, как агенты работают с общей памятью, и найти небольшую полезную задачу. Он исправил одну строку в инструменте наблюдения за рекордами. Больше всего работы оказалось вокруг этой строки: воспроизвести ошибку, проверить исправление в двух средах и убедиться, что в общей базе лежит именно проверенная версия.
Из этого получился небольшой рецепт для тех, кто поручает агентам менять код и общие инструменты.
Что сломалось
В эксперименте BitGN агенты участников дорабатывали программу, которая решала задачи интернет-магазина. Результаты запусков сравнивали с текущим рекордом. Один из общих инструментов, recordwatch, должен был находить завершённые запуски с более высокой оценкой.
У двух чисел были разные шкалы. Из результата запуска приходило значение от 0 до 1, а рекорд хранился по шкале от 0 до 100. Функция above() сравнивала их напрямую:
s > rec
Условный пример: новый результат — 0.96, рекорд — 94.7. Сравнение возвращает «нет», хотя 96 баллов больше 94,7.
В соседней функции того же инструмента шкалы уже приводились друг к другу и учитывалась погрешность вычислений. Агент применил тот же подход:
s * 100.0 > rec + 1e-6
Маленький допуск нужен, чтобы погрешность вычислений не превратила равенство в новый рекорд.
Как проверяли
Сначала агент сохранил исходную версию и подготовил проверки. Затем прогнал исходник и исправление. Это позволяло увидеть, что проверки действительно обнаруживают ошибку.
| Набор проверок | До исправления | После |
|---|---|---|
| 11 локальных проверок на границе SDK | 4 сбоя | 11 из 11 прошли |
| 9 контрольных случаев в серверной среде Monty | 6 из 9 прошли | 9 из 9 прошли |
Девять серверных случаев также выполнили на обычном Python и сопоставили результаты. Отдельно сверили изменение кода: одна строка, остальные определения не изменились.
После публикации агент открыл новую сессию и прочитал общий файл заново. Его содержимое совпало с проверенным исправлением. В пакет для других участников вошли исходник, исправление, проверки и инструкция воспроизведения.
При обновлении общей заметки возник конфликт с чужими изменениями. Агент сохранил свежую версию и добавил свою запись к ней. Передача результата включает и эту обязанность: сохранить работу, которая появилась, пока ты занимался своей задачей.
Что получилось
23 октября 2026 года исправление было опубликовано в общем инструменте. Проверки подтвердили, что на выбранных случаях функция правильно сравнивает оценки; новая сессия подтвердила содержимое опубликованной версии.
В просмотренном окне запусков результатов выше рекорда не было. Поэтому конкретного пропущенного победителя мы не нашли. Использование правки другими участниками и независимое ревью тоже пока не подтверждены. Из этого случая нельзя вывести прирост качества решающего агента или экономию команды.
Как повторить на своей задаче
Для небольшой правки я бы оставлял следующему исполнителю такой комплект:
- Исходная версия и пример ошибки. Какой результат ожидали, какой получили и на каких входах.
- Исправление и сравнение версий. Что поменялось и почему изменение решает эту ошибку.
- Одинаковые проверки до и после. Ошибочный случай, границы и важное прежнее поведение. Если рабочая среда отличается от локальной, проверить существенные различия и там.
- Проверенная опубликованная версия. Прочитать результат из общего места и сверить его с тем, что проверяли.
- Продолжение. Где лежат материалы, что ещё неизвестно и какое свидетельство закроет следующий вопрос: ревью, включение в сборку или использование на реальной задаче.
У recordwatch первые четыре шага завершены, а пятый оставляет открытый вопрос: кто воспользовался исправлением и что это изменило в его работе? Такая запись помогает следующему агенту продолжить исследование с того места, до которого мы действительно дошли.
Источники
Кейс из открытого эксперимента Рината Абдуллина и участников BitGN. Вклад выполнен моим агентом kbad-davydov; проверки и публикация относятся к 23 октября 2026 года. Текст подготовлен по сохранённым материалам 4 ноября, новых запусков для статьи не выполняли.
- Исправленный recordwatch, ревизия 8.
- Пакет с исходником, исправлением и проверками.
- Обсуждение задачи и передача результата.
Ссылки ведут в Brain; для чтения может потребоваться доступ к пространству.
При проверке 4 ноября 2026 сервер BitGN Brain отвечал HTTP 503. Исторические ссылки сохранены; разбор опирается на материалы, сохранённые во время исследования.