Вашият агент се справи отлично със задачата. Ще го направи ли отново?
Това е неудобно на сцената. В продукционна среда това е проблем с надеждността: работен процес, който е успял веднъж, може да се провали следващия път, когато потребителят направи същата заявка. При критично важни дейности, като съгласуване на финансова транзакция или проверка на договор за задължение, това може да блокира целия процес.
Повечето бенчмаркове прикриват тази променливост зад една средна стойност. В AppWorld агент ReAct, използващ GPT-4.1, успява при 77,4% от изпълненията в пет повторения. Но успява и при петте изпълнения само за 53,0% от задачите — разлика в последователността от 24,4 процентни пункта.
Повечето бенчмаркове отчитат първото число. Ние създадохме начин да измерваме второто — и да го подобряваме.
В по-ранна публикация представихме ALTK-Evolve — система, която превръща миналите траектории на агента в повторно използваеми насоки, автоматично извлечени и добавяни обратно по време на извеждането. Тя измеримо подобрява успеваемостта при задачите, но тези резултати също разглеждаха само въпроса за средния случай. Тази публикация представя насоките за последователност — нов тип насоки в altk-evolve, изграден върху диагностичен инструмент, който наричаме Анализатор на последователността и който се насочва директно към тази разлика.
Накратко
- Точността прикрива проблем с ненадеждността. Агент ReAct (GPT-4.1 в AppWorld
test_normal), който успява средно в 77,4% от случаите, успява и при всичките 5 повторни изпълнения само за 53,0% от задачите — разлика в последователността от 24,4 процентни пункта. При трудните задачи тя достига 30 пункта. - Създадохме диагностика точно за този проблем. Анализаторът на последователността преизбира собствената записана траектория на агента, за да открие точки на решения, склонни към промяна — стъпки, при които на модела му е липсвала само една извадка на токен, за да направи нещо различно. Необходима е една траектория и не е нужна еталонна истина — всяка точка на решение в тази траектория се преизбира с една заявка, изискваща k завършвания (по подразбиране k=5), вместо задачата да се изпълнява отначало докрай.
- Превръщането на тази диагностика в насоки намалява разликата наполовина — от 24,4 пр. п. до 12,0 пр. п. (Pass⁵ при същата задача +16,0 пр. п., при подобна задача +13,0 пр. п.), без никаква загуба в средната точност.
- Пълната методология и оценките са представени в техническия доклад в arXiv.
Показателят, който почти никой не отчита
Стандартната оценка на агентите отчита Mean@k: изпълнява се бенчмарк k пъти и се усреднява делът на успешните изпълнения. Често k=3, а понякога само 1. Това е числото във всяка класация и именно то на практика означава „77% точност“.
Mean@k отговаря на въпроса „колко добър е този агент средно?“. Той не отговаря на въпроса, който интересува реалния потребител: ще бъде ли все още добър, ако задам същия въпрос отново? За това е необходим Pass^k: делът на задачите, при които агентът успява при всичките k изпълнения.
⚠️ Pass^k не е Pass@k. Познатият Pass@k е оптимистичен — той пита дали поне един от k опита е успешен, което е правилният въпрос, когато можете да проверите и да опитате отново. Pass^k е неговото песимистично огледално отражение: всеки опит трябва да бъде успешен. Едни и същи букви, противоположен въпрос. Pass^k ≤ Mean@k ≤ Pass@k, винаги.
Агент ReAct, базиран на GPT-4.1, постига Mean@5 от 77,4% — действително силен резултат. Но Pass^5 е само 53,0%. Почти една четвърт от бенчмарка се състои от задачи, които агентът понякога може да реши, а понякога не може, без между изпълненията да се променя каквото и да е по задачата. Наричаме тази разлика — Mean@k минус Pass^k — разлика в последователността.
Това не е проблем с възможностите, който се решава с по-голям модел. Това е независима ос: един агент може едновременно да бъде способен и непоследователен.
Защо агентите променят решенията си: остри срещу плоски решения
Всеки път, когато агент на LLM вземе решение — кой API да извика, какъв аргумент да подаде, дали да опита отново — това решение произлиза от вероятностно разпределение върху следващите токени. Важна е формата на това разпределение. При остро разпределение по-голямата част от вероятностната маса е съсредоточена върху един токен: следващите кандидати изостават значително и един и същ избор се получава изпълнение след изпълнение. При плоско разпределение сравнима маса е разпределена между няколко почти равностойни токена и кой от тях ще спечели е почти като хвърляне на монета.
Формата определя колко шум е необходим, за да се промени резултатът. Острите разпределения са устойчиви — неасоциативността на плаващата запетая в GPU, групирането на заявките и други странични ефекти от страна на платформата променят леко числата, но не достатъчно, за да разместят явен победител. Плоските разпределения са уязвими именно към такова малко отклонение: близките стойности могат да се разменят при малки смущения. А тъй като една траектория свързва десетки решения, малката вероятност за промяна на всяка стъпка се натрупва до голяма вероятност някое изпълнение да протече различно. Оттам идва разликата от 24 пункта.
Това е и причината проблемът да се запазва независимо от настройките за декодиране. Жадното декодиране и фиксираният seed управляват само как разпределението се превръща в токен — те не казват нищо за самото разпределение. В хостван краен пункт вероятностите леко се променят от изпълнение до изпълнение, така че една и съща подкана към един и същ модел при температура нула все пак може да разреши близко равенство по единия начин днес, а утре — по другия.
Нашата конфигурация: агентът ReAct работи при температура 0,0, така че нито една от описаните по-горе вариации не е обикновено изваждане на случайна извадка.
Първо диагностика, после поправка
Това превръща проблема в търсене: кои стъпки в дадена траектория са били плоски — и какво правите с тях, след като ги откриете?
Насоките за последователност произлизат от двуетапен процес, който се включва в съществуващата инфраструктура на ALTK-Evolve — с нов източник на сигнал, определящ какво да бъде записано.
1. Откриване — Анализаторът на последователността. Като използва една записана траектория, анализаторът възпроизвежда всяка стъпка на решение чрез контролирано преизбиране и измерва колко се променя действително изходът на модела в тази точка. Конкретно, това е едно допълнително извикване на модела за всяка стъпка на решение, извършено еднократно офлайн — със зададен параметър за изваждане на k завършвания наведнъж (по подразбиране k=5) — възпроизведено спрямо вече записания контекст, без нови извиквания на инструменти, без нови взаимодействия със средата и без второ изпълнение на задачата от начало до край. Така се получава оценка за последователност за всяка стъпка на решение, която се записва в карта с резултати, за да се посочи точно кои решения са изложени на риск от промяна при следващото изпълнение. Откриването е изцяло „черна кутия“ — без логити, без вътрешни данни за модела и без инструментиране извън вече наличната траектория.
2. Генериране — целеви насоки. Всяка маркирана стъпка се превръща в кандидат за насока за последователност в стандартния формат на ALTK-Evolve, така че да се включи в съществуващия процес за съхранение и извличане. Ето реален пример, генериран от GPT-4.1 от траектория на задачата в AppWorld „Колко дейности са изпълнени в моя списък със задачи според бележката ми в SimpleNote?“:
[Насока 1] При броене на маркери във формата на квадратчета за отметка в съдържание на бележка използвайте съвпадение с регулярeн израз, закотвено към началото на реда, вместо обикновено броене на поднизове — заглавията на бележките често повтарят символа на маркера в ред с легенда.
[Насока 2] Винаги проверявайте резултатите от търсенето при заявки за бележки, като проверявате за множество съвпадения и потвърждавате правилната бележка, преди да продължите.
Тук няма специфични за задачата подробности. Грешките при броене на низове и непроверените резултати от търсене са точки на решение, които се появяват с висока степен на несигурност в много задачи от AppWorld. Именно това е смисълът: анализаторът се насочва към нестабилността, а не към неуспеха — така той улавя стъпки, които агентът случайно е изпълнил правилно този път, но лесно може да изпълни неправилно следващия път.
Гледайте 2-минутната демонстрация — пет паралелни изпълнения на агента се разделят 3–2 при тази задача заради несигурността на агента относно стратегията за броене, а след това се изпълняват отново с тези насоки в контекста: и петте дават един и същ резултат.
Резултати: намаляване на разликата без загуба на точност
Оценихме системата в AppWorld test_normal (168 задачи) с агент ReAct върху GPT-4.1, като генерирахме насоки за последователност от една базова траектория за всяка задача и ги тествахме в 5 нови изпълнения.
Mean@5 (%), общо — същият мащаб като Pass^5 по-горе.
Разликата в последователността се намалява приблизително наполовина. Общият Pass^5 се повишава от 53,0% → 69,0%, докато Mean@5 се повишава от 77,4% → 81,0%, стеснявайки разликата между „изглежда способен“ и „може да му се разчита“ от 24,4 пр. п. до 12,0 пр. п. Почти една трета от преди непоследователните задачи се превръщат в задачи, които агентът изпълнява успешно при всяко едно изпълнение.
Средното и високото ниво на трудност печелят най-много. Средни +22,9 пр. п. (+44% относително), Трудни +14,3 пр. п. (+45% относително) — практически изравнени в относително изражение, като средните задачи са напред в абсолютни стойности. Лесните задачи печелят +12,2 пр. п., тъй като при тях възможностите за подобрение са най-малки. Това е предназначението на насоките за последователност: да откриват и стабилизират конкретните точки на решение, при които собствената несигурност на агента се пренася върху крайния резултат.
Mean@5 никога не спада. Запазването на средната точност беше задължително изискване, а не просто предимство: система, която повишава Pass^5 за сметка на Mean@5, само би прехвърляла ненадеждността, вместо да я отстранява. Средната точност се запазва или се подобрява при всяко ниво на трудност.
Насоките се обобщават — те не коригират само една траектория
Приложени към различна, но свързана задача в същия сценарий на AppWorld — друг вариант на сценария, от който са извлечени насоките — насоките за последователност все още повишават Pass^5 с +13,0 пр. п., само с 3 пункта под резултата за същата задача. Насока, извлечена от едно изпълнение, не коригира само това изпълнение; тя улавя нещо, което може да се пренася.
По-убедителното доказателство идва от по-слаб модел, gpt-oss-120b. Pass^5 при същата задача се повишава с +6,0 пр. п. от много по-ниска базова стойност (10,1% → 16,1%) — и, интересно, резултатът при обобщаване към подобна задача (+8,7 пр. п.) всъщност надхвърля подобрението при същата задача, което подсказва, че насоките улавят действително повторно използваеми модели на неуспех, а не запаметяват спецификите на една траектория.
Ако внедрявате агент
- Отчитайте Pass^k редом с Mean@k. Средните стойности не могат да разграничат надежден агент от късметлия; дори k=3 ще покаже разлика, за която не сте знаели.
- Очаквайте разликата да се увеличава с трудността. При най-трудното ниво една усреднена стойност е най-подвеждаща.
- Не посягайте първо към по-голям модел. Последователността е независима от способностите. По-силният модел повишава Mean@k, но не е задължително да намалява разликата в последователността.
- Диагностиката не се нуждае от оценяващ модул или повторно изпълнение на живо. Достатъчно е едно допълнително извикване на LLM за всяка стъпка на решение (по подразбиране се избират k=5 завършвания) — без еталонна истина и без повторно изпълнение на задачата спрямо средата. Именно това я прави приложима към продукционен трафик, при който често не можете да повторите задачата от начало до край дори веднъж.
Опитайте
Изпробвайте инструментариума ALTK-Evolve — хранилището с отворен код вече включва Анализатора на последователността и генерирането на насоки за последователност, използвани в тези експерименти — или прочетете техническия доклад в arXiv за пълната методология.
Ако числата за точност, които не можете да възпроизведете върху собствените си задачи, ви звучат познато, бихме искали да чуем за това — конкретните примери за поведение на вашите агенти, склонно към промяна, са точно обратната връзка, която оформя това, което ще създадем следващия път. Отворете issue или дискусия.
Приложение: разбиране на показателите
- Mean@k. Изпълнява се задача k пъти и се отчита средният дял на успехите — това, което повечето бенчмаркове наричат „точност“.
- Pass^k. Делът на задачите, при които агентът успява при всичките k независими изпълнения. Винаги ≤ Mean@k. Това изпитва потребителят, ако изпълни същата заявка два пъти.
- Pass@k Успешен е поне един от k опита — оптимистичният еквивалент, често използван в публикации за генериране на код.
- Разлика в последователността. Mean@k − Pass^k, в процентни пунктове.
Свързани артефакти / препратки
- Хранилище с отворен код на ALTK-Evolve — github.com/AgentToolkit/altk-evolve
- Технически доклад — arXiv
- Демонстрация на насоките за последователност —2-минутно видео
Общност
· Регистрирайте се или влезте, за да коментирате
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.

