3,583 papers
arXiv:2610.25858 76 19 окт. 2026 г. FREE

Самоэволюция агентов: общий промпт, который растёт от опыта, ломает соседние задачи

КЛЮЧЕВАЯ СУТЬ
Фишка: агент ломает задачи, которых ещё не видел. Он месяц решал SQL-задачи, и в промпте появилось правило «всегда сначала исследуй базу». Потом пришли задачи, где надо спросить пользователя о недостающих данных. Агент полез в поиск вместо вопроса, и точность упала. Исследование показывает, почему ваш файл правил для агента со временем начинает путаться, и подсказывает, как это проверить. Правило из общего промпта читается на каждой задаче, а границ своей области оно не знает. Общий итог самоэволюции плюсовой, но маленький: единицы процентных пунктов. За рост на текущей задаче агент платит потерями на остальных.
Адаптировать под запрос
⚡

TL;DR

Самоэволюционирующий агент сам переписывает свою «обвязку» (системный промпт, память, файлы навыков, код оркестрации) по итогам задач, а веса модели не трогает. Исследователи прогнали три такие схемы на потоках разнородных задач. Агент учился одному типу задач за раз и должен был не потерять уже выученное. Общий итог положительный, но небольшой, а за рост на текущей задаче агент платит потерями на остальных.

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

Три проверенные схемы: ReasoningBank (память с поиском по сходству, достаёт одну заметку), GEPA (переписывает секцию «стратегия» в системном промпте), Meta-Harness (правит промпт, память, навыки и код, но принимает правку только если она улучшает проверку). Чем шире агент может править себя, тем быстрее учится и тем сильнее ломает остальное.

🔬

Схема метода

Это не метод для применения, а картина того, как устроены три схемы и где они ломаются.

ReasoningBank: эпизод → заметка в хранилище → при новой задаче достаём 1 самую похожую
   + локально, меньше забывает
   − достаёт чужое, путает похожие запросы с разным порядком действий

GEPA: эпизоды → модель разбирает ошибки → переписывает секцию «стратегия» в общем промпте
   + быстрее всех учится
   − правило действует на ВСЕ задачи, новые блоки затирают старые

Meta-Harness: кодовый агент правит промпт, память, навыки, код → принимаем правку, только если проверка выросла
   + гейт отсекает половину вредных правок
   − без гейта стабильность заметно хуже
🚀

Пример применения

Метод из статьи сам по себе вам не нужен: GEPA и Meta-Harness требуют кода. Применима находка: накопленные правила в общем файле инструкций ломают соседние задачи. Ту же болезнь вы лечите руками в системном промпте, CLAUDE.md или AGENTS.md.

Задача: Вы ведёте ИИ-агента поддержки селлера на Wildberries. Полгода после каждого сбоя вы добавляли в общий промпт по правилу. Теперь там 60 пунктов. Среди них «всегда сначала ищи заказ в выгрузке, потом отвечай» и «если не хватает данных, сначала уточни у клиента». Агент всё чаще то зря ищет, то зря переспрашивает. Это тот же конфликт, что в статье: «сначала исследуй» против «сначала спроси».

Промпт:

Ты проводишь аудит файла правил для ИИ-агента поддержки селлера на Wildberries. Правила копились полгода: каждое добавляли после конкретного сбоя в одной ситуации.

<Агент>Отвечает покупателям и менеджеру по возвратам, ищет заказы в выгрузке, формирует ответы по шаблонам.
<Типы_задач>1. Возврат и брак. 2. Где мой заказ. 3. Вопрос по размеру и характеристикам. 4. Жалоба на ПВЗ. 5. Просьба об отзыве.
<Правила>[вставлен файл из 60 пунктов]

Для каждого правила: 1) определи, из какого типа задач оно родом; 2) проверь, что оно сделает на каждом из остальных типов (поможет / не повлияет / навредит); 3) если навредит — покажи пример, как агент ошибётся.
Затем найди пары правил, которые противоречат друг другу на похожих запросах.
Перепиши файл так, чтобы каждое правило было в форме «Когда {признак задачи}: делай X. В остальных случаях не применяй».
Верни: таблицу «правило → родной тип → вред для других», список конфликтов, переписанный файл и 10 тестовых запросов (по 2 на тип), на которых нужно проверить новую версию.

Результат: Модель выдаст таблицу правил с пометкой, где каждое из них может навредить. Затем список конфликтующих пар, например «всегда ищи» против «сначала спроси». Потом переписанный файл с правилами в форме «когда… делай…» и набор тестовых запросов. Конкретные выводы зависят от вашего файла.

🧠

Почему это работает

Слабость. Общий промпт читается на каждой задаче. Правило, выведенное на одном типе задач, ничего не знает о границах своей области. Модель применяет его везде, где оно хоть как-то подходит по смыслу. Так SQL-привычка «исследуй базу» вытеснила поведение «спроси пользователя».

Сильная сторона. Модель хорошо следует условным инструкциям и умеет разбирать текст на противоречия. Условие «когда X — делай Y» ограничивает область действия, а LLM можно попросить найти, где правила конфликтуют.

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

Рычаги управления: - Узкие триггеры («когда клиент просит возврат») снижают утечку правил, но повышают риск не сработать. - Больше тестовых запросов на каждый тип дают надёжнее проверку, но это больше ручной работы. - Вопрос «навредит ли правило другим типам» можно сделать обязательным шагом перед каждым добавлением нового правила.

📋

Шаблон промпта

В статье нет готового промпта для читателя. Шаблон ниже построен на её выводах и не взят из неё.

Ты проводишь аудит файла правил для ИИ-агента. Правила копились со временем: каждое добавляли после конкретного сбоя в одной ситуации.

<Агент>{что делает агент}
<Типы_задач>{3-6 типов задач, которые ему приходят}
<Правила>{вставь файл правил}

Для каждого правила: 1) определи родной тип задач; 2) проверь, что оно сделает на каждом другом типе (поможет / не повлияет / навредит); 3) если навредит — покажи пример ошибки.
Найди пары правил, которые противоречат друг другу на похожих запросах.
Перепиши файл: каждое правило в форме «Когда {признак задачи}: делай X. В остальных случаях не применяй».
Верни: таблицу, список конфликтов, переписанный файл и {число} тестовых запросов для проверки на регрессию.

Подставьте описание агента, список типов задач (если не знаете, пусть модель предложит по файлу) и сам файл.

🚀 Быстрый старт — вставь в чат:

Вот шаблон аудита файла правил для агента. Адаптируй под мою задачу: [опиши агента и вставь свои правила].
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какие типы задач приходят агенту и какие сбои вызвали правила. Без списка типов задач нельзя проверить, где правило «утекает» в чужую область. Она возьмёт паттерн из шаблона и адаптирует под вашу задачу.

⚠️

Ограничения

⚠️ Нет проверенного решения: Авторы показывают проблему и называют направления (изоляция правок, выбор записей не только по сходству запроса). Свой способ лечения они не проверяли. Аудит выше — наша экстраполяция.

⚠️ Одна модель и малые выборки: Все эксперименты на одной модели, по 50 задач на группу. Размеры эффектов (единицы процентных пунктов) нужно читать как тенденцию.

⚠️ Автоматическая самоэволюция, не ручная: Исследовали алгоритмы, которые сами переписывают свой промпт. Как ведёт себя промпт, который правите вы, прямо не проверялось.

⚠️ Тема не везде вредит: Когда задачи различаются только темой (разные базы данных, один тип действия), самоэволюция почти ничего не дала, а в части случаев ухудшила результат.

⚠️ Нужна оговорка по тексту: Текст статьи в доступной версии обрывается в разделе 4.3. Вывод про ретрив и коллизии взят из аннотации и введения.

🔍

Как исследовали

Исследователи собрали четыре потока задач, в которых агент учится блоками по 50 задач из одной группы. Потоки отличаются типом сдвига: тема (три разные базы данных), порядок работы (спросить недостающие данные или не спрашивать), среда целиком (научные эксперименты, вызов API, SQL) и всё вместе. Агент не знает, что тема сменилась. На границах блоков сохраняли «слепок» обвязки и прогоняли его по отложенным задачам всех групп, по 8 прогонов на задачу.

Сравнивали три схемы: ReasoningBank, GEPA и Meta-Harness. Для каждой считали две величины: пластичность (насколько выучил текущий блок) и стабильность (потери на ещё не виденных группах и на уже пройденных). В среднем у GEPA самая высокая пластичность, примерно вдвое выше ReasoningBank, но и самая низкая стабильность. ReasoningBank стабильнее всех. Итоговый вывод: чем шире то, что агент может править, тем больше он учит и тем больше ломает.

Любопытные детали. Meta-Harness выглядел стабильным на двух потоках только потому, что проверочный гейт отвергал половину и больше правок, и обвязка просто замерзала. Без гейта стабильность заметно падала. Разбор эволюционировавшего промпта показал причину ухудшения. После двух SQL-блоков в него записали требования «исследуй базу и проверяй интерактивно», и до первой BFCL-задачи точность на задачах с недостающими аргументами упала на несколько пунктов. Агент стал вызывать поисковые инструменты вместо вопроса пользователю.

💡

Адаптации и экстраполяции

💡 Адаптация: регрессионный набор для файла инструкций. Вместо «валидационного гейта» Meta-Harness заведите 10–20 тестовых запросов, по 2–4 на каждый тип задач. Перед каждым добавлением нового правила прогоняйте агента по набору целиком, а не только по той ситуации, из-за которой правило появилось. Если страдает соседний тип, правило нужно сузить до условного.

🔧 Техника: правило с триггером вместо правила без области. Было: «Всегда сначала исследуй данные». Стало: «Когда задача — SQL-запрос по неизвестной схеме: сначала исследуй таблицы. Когда в запросе не хватает данных от пользователя: не исследуй, а задай вопрос». Узкий триггер ограничивает утечку правила на чужие задачи, а явное «когда не применять» защищает от конфликта.

🔗

Ресурсы

  • Are Self-Evolving Agents Continual Learners? — Xiaoyin Chen (Mila – Quebec AI Institute, Université de Montréal; работа выполнена в Google DeepMind), Yizheng Huang, Yinglun Xu, Ziyun Zhao, Emmett McQuinn, Julie Liu, Hope Yao (Google DeepMind).
  • Исследуемые методы: ReasoningBank (Ouyang et al., 2025), GEPA (Agrawal et al., 2025), Meta-Harness (Lee et al., 2026).
  • Бенчмарки: BIRD (text-to-SQL), BFCL (вызов API), ScienceWorld (научные эксперименты в текстовой среде).

📋 Дайджест исследования

Ключевая суть

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

Принцип работы

Авторы прогнали три схемы, где агент сам правит свою «обвязку», а веса модели не трогает. Первая, ReasoningBank, хранит заметки и достаёт одну самую похожую. Забывает меньше, но при похожих запросах с разным нужным порядком действий достаёт чужую заметку. Вторая, GEPA, переписывает секцию «стратегия» в общем промпте. Учится быстрее всех, но новые блоки сжимают и затирают старые. Третья, Meta-Harness, правит промпт, память, навыки и код. Правку принимает, только если проверка выросла. Без этой проверки стабильность заметно хуже. Чем шире агент правит себя, тем быстрее учится и тем сильнее ломает остальное. Это как общая памятка на кухне: каждое правило писали после чьей-то ошибки, а читают её все повара и на всех блюдах.

Почему работает

Причина в утечке правил. Модель применяет правило везде, где оно хоть как-то подходит по смыслу. SQL-привычка «исследуй» вытеснила поведение «спроси». Достаточно одного правила, написанного для другой задачи, чтобы агент стал хуже на задаче, которую не видел. Поэтому аудит строится на двух сильных сторонах модели. Она хорошо следует условиям «когда X — делай Y». И она умеет находить противоречия в тексте. Правило получает привязку к типу задач, а изменения проверяются на других типах. Честная оговорка: авторы такое лечение не проверяли. Это наш вывод из их находок. Эксперименты шли на одной модели, по 50 задач на группу, так что цифры нужно читать как тенденцию.

Когда применять

Агенты с длинным файлом правил (системный промпт, CLAUDE.md, AGENTS.md) → особенно когда правил накопились десятки, а агент стал то зря искать, то зря переспрашивать. Хорошо работает там, где агенту приходят задачи нескольких разных типов. НЕ подходит, когда задачи различаются только темой (разные базы данных, одно и то же действие): там самоэволюция почти ничего не дала. Для короткого файла в 5-10 правил аудит тоже избыточен.

Мини-рецепт

1. Назови типы задач: выпиши 3-6 типов, которые приходят агенту. Не знаешь их — пусть модель предложит по файлу правил.
2. Вставь файл целиком: все правила, как есть, без чистки. Лучше с пометкой, после какого сбоя что добавляли.
3. Проверь утечку: для каждого правила пусть модель найдёт родной тип и оценит каждый другой тип: поможет, не повлияет или навредит. Если навредит, пусть покажет пример ошибки.
4. Найди драки: попроси пары правил, которые спорят на похожих запросах. Например, «всегда ищи» против «сначала спроси».
5. Привяжи правила: перепиши в форму «Когда {признак задачи}: делай X. В остальных случаях не применяй».
6. Прогони тесты: возьми 2 запроса на каждый тип и проверь новую версию. Старое поведение не должно сломаться.
7. Сделай привычкой: перед каждым новым правилом задавай вопрос «кому из других типов оно навредит?»

Примеры

[ПЛОХО] : Агент ошибся с возвратом, добавь в промпт правило: всегда сначала ищи заказ в выгрузке, потом отвечай
[ХОРОШО] : Ты проводишь аудит файла правил для ИИ-агента поддержки селлера на Wildberries. Правила копились полгода, каждое добавляли после одного сбоя. <Типы_задач>1. Возврат и брак. 2. Где мой заказ. 3. Вопрос по размеру. 4. Жалоба на ПВЗ. 5. Просьба об отзыве. <Правила>[вставь файл из 60 пунктов] Для каждого правила: определи родной тип задач, проверь, что оно сделает на остальных типах (поможет / не повлияет / навредит), при вреде покажи пример ошибки. Найди пары правил, которые противоречат друг другу. Перепиши каждое в форме «Когда {признак задачи}: делай X. В остальных случаях не применяй». Верни таблицу, список конфликтов, новый файл и 10 тестовых запросов, по 2 на тип. Модель покажет, например, что «всегда сначала ищи заказ» спорит с «если не хватает данных, сначала уточни у клиента». Конкретные выводы зависят от вашего файла.
Источник: Are Self-Evolving Agents Continual Learners?
ArXiv ID: 2610.25858 | Сгенерировано: 2026-10-20 13:40

Проблемы LLM

ПроблемаСутьКак обойти
Правило в общем промпте действует на все задачи сразуКопишь правила в одном файле инструкций. Каждое добавлено после сбоя в одной ситуации. Модель не знает, где кончается область правила. Она применяет его везде, где оно подходит по смыслу. Правило «сначала всё проверь сам» мешает там, где надо спросить пользователя. Новые правила также вытесняют или размывают старые. Агент ломается на задачах, которые раньше шли хорошо. Чем длиннее файл, тем больше скрытых конфликтовНе пиши голые правила. Привязывай каждое к признаку задачи: «Когда {признак}: делай X. В остальных случаях не применяй». Перед добавлением нового правила проверяй его на других типах задач. Если типов много, держи правила по типам отдельно и подставляй нужные

Методы

МетодСуть
Аудит файла правил с привязкой к типу задач — убирает утечки и конфликтыДай модели список типов задач агента и файл правил. Для каждого правила она определяет родной тип задач. Потом оценивает действие правила на каждом другом типе: поможет, не повлияет, навредит. Если навредит, она показывает пример ошибки. Затем она ищет пары правил, которые противоречат друг другу на похожих запросах. В конце переписывает правила в форме Когда {признак}: делай X. В остальных случаях не применяй и даёт по 2 тестовых запроса на каждый тип. Почему работает: условие «когда…» сужает область правила. Модель хорошо следует условным инструкциям и находит противоречия в тексте. Проверка на чужих типах ловит вред, который не виден на родной задаче. Когда применять: длинный файл правил (20+ пунктов), агент решает несколько разных типов задач, правила копились по сбоям. Когда не работает: задачи одного типа, файл короткий. Слишком узкие условия делают так, что правило не срабатывает. Нужно прогнать тестовые запросы, иначе это только гипотеза. Модель может ошибиться в оценке вреда
📖 Простыми словами

Are Self-Evolving Agents Continual Learners?

arXiv: 2610.25858

Самообучающиеся AI-агенты не меняют веса модели — они просто переписывают собственный системный промпт и файлы навыков на лету. Звучит здорово, но на практике вылезает фундаментальный облом: агент не чувствует границ контекста. Выучив удачный трюк под одну конкретную задачу, он тупо сует его во все остальные подряд. В итоге микроскопический прогресс в моменте оборачивается полным раздраем для всей системы.

Это как нанять стажера, которого вчера жестко отругали за непроверенные данные, и теперь он всегда бежит копаться в базе. Ты просишь его сделать кофе, а он пытается выкатить SQL-запрос к кофемашине вместо банального вопроса: "тебе с сахаром?". Правило в память записалось, а вот мозгов понять, где оно нахрен не нужно, у модели не появилось.

Исследователи прогнали три такие схемы вроде GEPA и Meta-Harness через разные сценарии. Вывод один: рост на текущей задаче оплачивается деградацией остальных. Агент научился новому хаку, добавил строгое правило «исследуй базу данных», и эта привычка намертво затерла нормальное поведение «спроси пользователя». Общий файл инструкций читается всегда, поэтому любое частное улучшение быстро превращается в токсичный мусор.

Тестировали сложные кодовые фреймворки, но принцип универсален. Ровно ту же дичь мы творим руками, когда бездумно раздуваем системный промпт, файлы вроде CLAUDE.md или AGENTS.md. Запихал удачную инструкцию под верстку в общий файл — и агент начинает верстать таблицы там, где нужен обычный связный текст. Глобальные инструкции без жестких условий срабатывания гарантированно ломают логику ассистента.

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

Работа с исследованием

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

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с