VERSE: оптимізатор, що перевіряє власні правки перед відправленням
Нова стаття на arXiv дозволяє програмі, яка правит харнес агента, правити і себе, і показує: самоправки допомагають лише тоді, коли чернетку можна спершу запустити.

Агент - це модель плюс харнес: промпти, інструменти, пам’ять і керівна логіка. Нині друга модель читає невдачі агента й правит його харнес. VERSE ставить наступне питання. Що, коли ця друга модель зможе переписувати й власні інструменти, і що завадить їй записати в себе дурницю?
Коротко
Стаття «VERSE: Verified Self-Evolving Optimizer for Agent Harnesses» (arXiv 2610.02616, подана 2 жовтня 2026 року) повідомляє: самоеволюція харнеса оптимізатора сама собою не допомагала, а допомогла, коли оптимізатор міг запустити чернетку правки до відправлення. На SWE-rebench найкращий харнес дає 42,3% на тесті всередині розподілу та 37,7% на нових задачах п’ятьма мовами проти 39,2% і 29,3% у найсильнішої бази. Автори вказують код за адресою github.com/wzekai/VERSE. Я прочитав статтю; код не запускав.
Що стверджує стаття
Ролей дві. Виконавець - заморожена модель, що розв’язує задачі з кодом усередині харнеса. Оптимізатор читає невдалі траєкторії й кілька раундів правит харнес виконавця. Попередні системи тримають оптимізатор незмінним. VERSE дозволяє йому змінювати власні промпти, навички, інструменти, хуки та нотатки, а ваги обох моделей лишаються замороженими.
Найцікавіше перше дослідження. З оптимізатором Qwen3.8-Flash-Next і виконавцем Qwen3.8-27B додавання самоеволюції до Meta-Harness погіршило результат: жоден раунд не випередив початковий харнес на валідації. На думку авторів, оптимізатор записував у себе неперевірені уроки й не міг збагнути, які з них хибні. Дайте йому інструмент запуску чернетки на одній навчальній задачі, і та сама схема дала 41,05% точності на тесті - найкраще значення в цій таблиці.
Як працює VERSE
Перед відправленням правки оптимізатор може відтворити збій, скоротити невдалу траєкторію до кількох важливих кроків і збурити підозрілий крок, щоб побачити, чи зміниться результат. Між раундами він веде журнал: які задачі виправлено, які зламалися, які виправлення згодом скасовано. У другому дослідженні на п’яти виконавцях оптимізатор, що самоеволюціонує, створив 51 артефакт, і вони діляться на чотири види: визначення причин збоїв, перевірка, аудит навчання та правила робочого процесу, наприклад нагадування про бюджет.
Начерк циклу
# Illustration of verify-before-submit. Not the authors' code and not run.
def improve_harness(harness, failures, budget):
for round_no in range(budget):
cause = rank_causes(failures) # attribution
draft = edit(harness, cause)
passed_before = [t for t in tasks if run(harness, t)]
ok_target = run(draft, cause.task) # replay the failure
ok_old = all(run(draft, t) for t in passed_before[:5]) # regressions
if ok_target and ok_old:
return draft
return harnessЦифри
| Оптимізатор-хост | У розподілі (108 задач) | Поза розподілом (107 задач) | ||||
|---|---|---|---|---|---|---|
| База | VERSE без самоеволюції | VERSE із самоеволюцією | База | VERSE без самоеволюції | VERSE із самоеволюцією | |
| Meta-Harness | 39.20 | 34.57 | 42.28 | 28.66 | 28.35 | 37.69 |
| AHE | 33.95 | 37.96 | 35.19 | 26.17 | 35.51 | 30.22 |
| Self-Harness | 29.63 | 40.12 | 34.88 | 29.28 | 31.78 | 30.22 |
| HarnessX | 32.72 | 38.89 | 35.80 | 27.41 | 27.10 | 37.69 |
Висновок статті підтверджується: VERSE із самоеволюцією випереджає власну базу в усіх 16 порівняннях таблиці, на 0,6–10,3 пункта. Уважне читання таблиці додає застереження. З чотирьох хостів найкращий харнес усередині розподілу на трьох дає VERSE без самоеволюції, а найкращий поза розподілом у версії із самоеволюцією на двох. Отже, основну роботу всередині розподілу виконують інструменти перевірки, а аргумент на користь самоеволюції тримається здебільшого на нових багатомовних задачах.
Де доказів мало
Кожен рядок - один еволюційний прогін. Похибки - розкид за трьома тестовими оцінками цього прогону, а не за незалежними прогонами. У тесті всередині розподілу 108 задач, тож одна задача - близько 0,9 пункта, а деякі розриви в таблиці - дві-три задачі. Усі навчальні та валідаційні задачі на Python, а з 107 нових задач поза розподілом 87 на Go, Java, Rust або TypeScript. Автори також зазначають, що інструменти перевірки зафіксовані, усі дії записуються, а виконавець працює без мережі. Це обмежує самозміну в їхній постановці, і саме цю частину практику довелося б відтворювати.
Кому це важливо
Командам, які налаштовують харнес агента вручну або оптимізатором. Практичний урок переживає всі застереження: дайте автоматичному редактору можливість запустити правку й перевірити, що задачі, які вже проходили, і далі проходять, перш ніж залишати зміну. Автори зауважують, що незмінний оптимізатор часто перевіряв лише задачі, на яких поточний харнес падає, а так регресії не побачити.
Джерела й обмеження
Факти взято з анотації, тексту й таблиці 2 статті станом на 5 жовтня 2026 року. Розбір таблиці - мій аналіз. Я не запускав оприлюднений код і не відтворював жодної цифри.