Побољшања свих нивоа напора у Agent API-ју

Нивои напора у Perplexity Agent API-ју сада коштају мање, уз једнак или бољи квалитет истраживања и нови ниво ultra за већу дубину.

Ascending glass panels reflecting a landscape and warm light.

Нивои напора у Perplexity Agent API-ју омогућавају програмерима да за сваки задатак изаберу равнотежу између трошкова, брзине и дубине истраживања. Од данас сваки ниво напора кошта мање по упиту, уз квалитет истраживања који је виши или непромијењен. Нови ниво ultra доступан је за најобухватније и најтемељније истраживање. Сваки захтјев који бира ниво по називу, као што је effort="fast", аутоматски добија ажурирану конфигурацију.

Изградња истраживачког агента подразумијева избор праве равнотеже између трошкова, брзине и дубине за сваки задатак. Нивои напора у Agent API-ју доносе ту одлуку умјесто корисника. Сваки ниво је обједињена конфигурација која дефинише модел, буџет корака, подешавања претраге и алате за одређени тип задатка. Perplexity током времена процјењује и ажурира сваки ниво како би пружио најбоље истраживање уз тренутни или нижи трошак.

Ова побољшања су резултат двије врсте промјена. Буџети, управљање контекстом и екстракција смањили су трошак сваког извршавања, а вјештине, избор модела и паралелни агенти повећали су или одржали квалитет одговора.

Учинак нивоа medium побољшан је са 55% на 77% на BrowseComp-у и DSQA-у, док су трошкови смањени за скоро 90%. BrowseComp и DSQA су јавни бенчмаркови за истраживање; WANDR је бенчмарк компаније Perplexity за дуге истраживачке задатке са више ентитета. xhigh обавља агентски рад, као што је извршавање кода у Sandbox окружењу, одржавање дугих петљи коришћења алата и истовремени рад са много извора. xhigh је задржао WANDR резултат од 76,5%, уз трошак од око 25% трошка конфигурације из августа 2026.

Цијена истраживања

Захтјев за Дубински истраживање може покренути десетине претрага, прочитати стотине страница и провјерити доказе прије него што одговори. Свака од тих радњи додаје токене у контекст и доларе на рачун. Без ограничења, агент наставља да предузима радње које повећавају трошак и претрпавају контекст, а да при томе не побољшавају одговор. Највећи дио тог трошка покреће пет фактора:

  • Расподјела буџета. Агенти са задатим буџетом могу остати без корака и прерано завршити извршавање прије него што доврше задатак. С друге стране, агенти без фиксног буџета могу наставити да раде, стварајући трошкове без побољшања коначног одговора.
  • Оптерећење контекста. Резултати претраге и преузете странице носе доказе, али се без контроле контекстни прозор брзо може попунити небитним информацијама. Контекстни прозори преносе трошкове из корака у корак, а преоптерећени прозори могу смањити учинак агента.
  • Избор тока рада. Различити задаци захтијевају различите приступе. Провјера једне чињенице, питање са више логичких корака и широк преглед извора захтијевају различите токове рада. Када бира сам, модел често одабере неефикасан ток рада. Детаљно описивање сваке доступне стратегије у промпту агента не рјешава овај проблем. Додатна упутства се преносе као токени у сваком кораку, а модел током времена све мање поуздано слиједи свако од њих.
  • Избор модела. Прелазак на већи модел можда неће донијети побољшање учинка сразмјерно додатном трошку. Нови модели стижу уз упадљиве наслове и објављене резултате на бенчмарковима. Међутим, добици на бенчмарковима могу бити контаминирани или одражавати пренаучавање модела. Без евалуације на стварним задацима, промјена модела може повећати трошкове без повећања квалитета.
  • Скалирање са више агената. Један агент може да претражи, прочита и размотри ограничен број извора по извршавању. Паралелно покретање више агената побољшава квалитет на најзахтјевнијим задацима, али такође повећава трошкове и уводи сложеност ако се њиме не управља правилно.

Рјешавање сваког од ових изазова смањило је трошкове за сваки ниво напора без смањења учинка.

Контрола буџета за истраживање

Сваки ниво напора има фиксни буџет за истраживање са три компоненте:

  • Ограничења корака: број потеза које агент може да направи
  • Позиви алата: ограничење укупног броја позива алата у захтјеву. Један корак може истовремено упутити више позива ка више алата, тако да само ограничење корака не контролише колико се радњи обави у оквиру једног корака.
  • Подсјетници о буџету: периодична обавјештења о томе колико је корака преостало, како би агент могао да одреди приоритете и остави простора за писање одговора умјесто да остане без буџета усред задатка.

Буџет је кључни компромис: више корака значи боље одговоре, а сваки корак ствара трошкове. Са моделом openai/gpt-6-luna, повећање ограничења корака са 1 на 15 подиже тачност на BrowseComp + DSQA са 41% на 80%, док трошак по упиту расте са 0,0017 $ на 0,0152 $, што је око 9 пута већи трошак за око 2 пута бољи резултат.

Само ограничење корака не контролише трошак истраживања. Уз исти буџет од пет корака, openai/gpt-6.1-terra упућује више позива алата него openai/gpt-6-luna, јер способнији модели обично упућују неколико позива у једном кораку. Нивои напора ограничавају и позиве алата и кораке. За ове моделе ограничење позива алата једнако је важно као и ограничење корака.

Сваки ниво напора подешава ова ограничења, али агент такође мора да зна колико му је корака и радњи преостало да испуни захтјев. Без те информације може остати без корака или радњи и бити приморан да одговори прије него што истраживање буде завршено. Буџет се наводи на почетку извршавања, а подсјетници стижу како се агент приближава својим ограничењима, тако да остаје простора за провјеру и испоруку резултата. За ниво high подсјетници обухватају и буџет корака и буџет позива алата.

Два агента, један са подсјетником о буџету и један без њега, тестирана су на задатку из BrowseComp-а у којем је требало идентификовати ТВ серију из 1990-их на основу три биографије глумаца. Агент са подсјетником пронашао је тачан одговор користећи 13 од 40 корака предвиђених буџетом. Агент без подсјетника о буџету искористио је свих 40 корака и није пронашао тачан одговор. Петља тог агента неочекивано се прекинула, а модел није био свјестан преосталог буџета за истраживање. Подсјетници помажу агентима да остану фокусирани и да ефикасно одреде приоритете за преостале ресурсе.

Управљање контекстом

Сажимање

Дуготрајни истраживачки задаци попуњавају контекстни прозор модела резултатима претраге, преузетим страницама и привременим биљешкама. Када се прозор попуни, агент мора да престане са радом.

Сажимање омогућава да дуга извршавања наставе са радом без попуњавања контекстног прозора. Када контекст пређе одређени праг, агент замјењује досадашњи рад краћим сажетком онога што је пронашао и онога што је преостало, а затим наставља.

Сажимање увијек задржава три ствари у контексту: системски промпт, првобитни захтјев и све вјештине које је агент већ учитао. Након сваког сажимања агент добија два кратка упутства. Прво упутство гласи: „Настави да радиш док задатак не буде завршен.“ Тиме се спречава да агент сажетак сматра тачком заустављања. Друго упутство обавјештава агента колико је сажимања до тада обављено, како би могао да планира преостале истраживачке задатке. Дуга извршавања задржавају првобитни циљ и план у видокругу, а трошак дугих петљи се смањује без губитка квалитета.

Преузимање само онога што је важно

Свака страница коју агент прочита додаје се његовом контексту, а агент је носи у сваком наредном кораку. Веб-страница садржи информације које нису повезане са питањем, као што су навигација, шаблонски текст и други садржај.

Умјесто да агенту преда цијелу страницу, fetch_url прво покреће пролаз екстракције. Текст странице се шаље мањем моделу заједно са тренутним задатком агента. Модел враћа само релевантне одломке, цитиране дословно како би их агент могао навести као извор. Током једне евалуације, страница од 5.561 токена сведена је на 293 токена, чиме је ослобођен простор за додатни релевантан контекст.

Коришћење алата fetch_url са екстракцијом на нивоу напора high смањило је број улазних токена по упиту за приближно 50%. Екстракција је такође побољшала резултате на бенчмарку, достигавши 88,0% уз 0,073 $ по упиту, у поређењу са 83,5% уз 0,094 $ без екстракције.

Фокусирана веб-претрага

Претраживање веба је кључно за сваки истраживачки захтјев агента. Уведене су три промјене у начину на који агенти претражују:

  • Више контекста по претрази: Свака претрага сада враћа до 4K токена резултата умјесто 2K. Агент брже проналази оно што му треба, што доводи до мањег броја претрага и нижих трошкова.
  • Нови механизам за исјечке: Резултати претраге добијају исјечке који боље одговарају упиту, тако да агент није оптерећен небитним текстом.
  • Брза претрага: По цијени од 1,00 $ за 1.000 захтјева, Fast Search смањује и трошак и латенцију сваког позива претраге.

Тим Perplexity Search континуирано унапређује квалитет претраживања у широком спектру задатака. Недавна ажурирања донијела су побољшања за код, документацију за програмере, референтне странице, као и правни и регулаторни садржај.

Избор одговарајућег тока рада

Неки задаци захтијевају паралелно покретање многих претрага; други захтијевају пажљиво читање неколико дугих докумената.

Међутим, учитавање сваког тока рада у системски промпт агента повећава оптерећење контекста и може довести до тога да модел подбаци на једноставним задацима. Умјесто тога, вјештине су организоване у стабло са постепеним откривањем. Модел учитава релевантне вјештине и упутства током рада, остављајући небитне информације ван свог контекста. Свака вјештина заузима само свој назив и опис све док модел не одлучи да одговара задатку и учита је, када се у контекст додају пуна упутства и модел слиједи прописани ток рада.

Да би се измјерило колико поједине вјештине доприносе, свака вјештина се уклања једна по једна како би се упоредили квалитет и трошак на задацима у којима је основни агент учитао ту вјештину. Ове аблације показују који токови рада помажу агенту и како утичу на ефикасност истраживања.

Извршавања WANDR бенчмарка у наставку показују како агенти бирају одговарајуће токове рада за одређене задатке. Смјернице wide-search и fanout учитане су за сваки задатак, што одражава потребу за истраживањем више ентитета. Вјештина people-search учитана је за само 6% задатака, и то само када су се питања односила на људе.

Приликом тестирања другог WANDR задатка, агент је учитао вјештину people-search са fanout обрасцем како би пронашао инжењере за инференцију у Лондону. Проширио је 39 термина за улоге у 117 упита, а затим објединио резултате првог пролаза у 43 јединствена профила за даљу провјеру. Вјештина people-search водила је агента кроз ово проширење без додавања небитног контекста. Одломак испод прилагођен је из скрипте агента; називи помоћних функција су илустративни.

code1
text
Python # roles contains the 39 role variants selected by the agent. queries = [] for role in roles: queries.extend([ {"query": f"Google DeepMind {role} London"}, {"query": f"Google {role} London"}, {"query": role, "company": "Google", "location": "London"}, ]) results = pplx_sdk.search.people_many( queries, limit_per_query=50, concurrency=8 ) profiles = {} for result in results: if not result.ok: continue for profile in result.result: if "linkedin.com/in/" not in profile.url: continue url = profile.url.split("?")[0].rstrip("/") previous = profiles.get(url, {}) if url not in profiles or len(profile.summary or "") > len( previous.get("summary") or "" ): profiles[url] = { "url": url, "title": profile.title, "summary": profile.summary, }

Постављање контролних тачака је још један ток рада који помаже агентима у дуготрајним задацима. Образац контролних тачака потиче из пакетног програмирања. Када скрипта обрађује дугачку листу, она сваки резултат уписује на диск чим га добије, умјесто да све држи у меморији до краја. Ако се скрипта сруши или наиђе на грешке током рада, ништа се не губи: наредно покретање чита оно што је већ сачувано и наставља тамо гдје је стало, поново покушавајући само ставке које нису успјеле.

У другом WANDR задатку агент је морао да провјери профиле 188 инжењера. Учитао је образац контролне тачке да би биљежио сваки резултат током рада. Први пролаз је издвојио 160 профила, али није успио код 28. Када је агент поново покренуо скрипту, прескочио је профиле који су већ били забиљежени и поново покушао само преосталих 28. Без контролне тачке, један лош запис значио би поновно преузимање свих 188.Прилагођени одломак у Python-у; улазне странице, упутство за провјеру, шема и увози су изостављени; називи помоћних функција су илустративни.

code 2
text
Python checkpoint = Checkpoint("research/profile-screening") config = instruction + json.dumps(schema) config_id = hashlib.md5(config.encode()).hexdigest()[:6] def checkpoint_key(page): url_id = hashlib.md5(page["url_in"].encode()).hexdigest()[:10] return config_id + url_id pending = [ page for page in pages if not checkpoint.has(checkpoint_key(page)) ] for offset in range(0, len(pending), 20): batch = pending[offset : offset + 20] inputs = [ json.dumps({ "url": page["url_in"], "content": page["content"][:30_000] }) for page in batch ] results = pplx_sdk.llm.extract_many( inputs, instruction=instruction, output_schema=schema, chunk_size=5, concurrency=4, ) for page, result in zip(batch, results): if not result.ok or result.result.error: continue checkpoint.record( checkpoint_key(page), [{"url": page["url_in"], **result.result.result}], )

Контролна тачка биљежи успјешне резултате; она не покреће поновне покушаје. Укључивање упутства и шеме у кључ осигурава да измијењени критеријуми провјере покрену поновну обраду.

Нису сви тестови донијели побољшања квалитета и ефикасности. Процијењено је и унапријед учитавање свих вјештина у агента прије него што започне задатак. На BrowseComp-у и DSQA-у унапријед учитавање повећало је трошак за 13%. На WANDR-у, гдје дуже истраживачке путање доводе до тога да преузети садржај чини већи удио улазних токена, унапријед учитавање такође смањује резултате. Ови резултати су подржали наставак коришћења постепеног откривања.

Избор модела

Како напредују могућности модела, мијења се и најбољи модел за сваки ниво напора. Perplexity користи аутоматизовану истраживачку петљу која прати најаве нових модела и њихову доступност. Евалуације се покрећу чим модел постане доступан.

Када се објави нови модел, аутоматизовани агент га провлачи кроз harness за евалуацију. Он систематски испробава различите нивое напора расуђивања, буџете корака и позива алата, као и конфигурације алата, и оцјењује свако извршавање по квалитету и трошку у поређењу са тренутним нивоима напора. Када неко извршавање покаже лошије резултате, агент истражује зашто, прилагођава подешавања и поново покреће евалуацију. Кандидат замјењује тренутни модел само када га надмаши по квалитету уз исти или нижи трошак.

Јавни бенчмаркови су корисни, али се њихови резултати не преносе увијек на задатке из стварног свијета. На примјер, графикон у наставку приказује модел кандидат који је на BrowseComp-у остварио 13,3 поена више од основне линије, али знатно мање од одговарајућих основних линија на интерним истраживачким задацима из корпоративне, правне и финансијске области.

Скалирање са више агената

Један агент може обухватити само ограничен број извора у једној петљи. За сложене задатке више агената ради паралелно, при чему се сваки бави другим дијелом проблема.

Примарни агент је оркестратор. Он позива spawn_agent да би креирао подређене агенте и сваком додијелио конкретан, фокусиран задатак. Сваки подређени агент покреће сопствену истраживачку петљу са засебним контекстом, користећи сопствени модел, алате и буџет корака. Подређени агенти извјештавају о својим резултатима надређеном агенту, који подређеном агенту може послати додатни задатак или провјерити његов напредак. Оркестратор и подређени агенти размјењују поруке како би дијелили доказе, указивали на препреке и прилагођавали наредне кораке. Како пристижу нове информације, оркестратор прецизира задатке и, када је посао завршен, обједињује резултате у један одговор.

Agent API подржава унапријед дефинисане улоге агената, а оркестратор може креирати подређене агенте са прилагођеним упутствима.

Ниво напора ultra паралелно покреће три агента на задатку. Сваки агент самостално истражује цијели задатак, што доводи до различитих доказа. Четврти агент обједињује њихове налазе, уклања дупликате и пише коначни одговор.

На WANDR-у, ultra постиже 85,9% уз 21,71 $ по задатку. То је највиши резултат међу тестираним конфигурацијама.

Шта слиједи

Нивои напора се континуирано процјењују и унапређују. Ниво који корисници изаберу одређује колико истраживања задатак добија и колико ће коштати. Буџети корака и позива алата, уз подсјетнике како се троше, држе захтјеве у оквиру буџета. Сажимање, екстракција и бољи исјечци одржавају контекст фокусираним на доказе. Вјештине прилагођавају ток рада задатку, а паралелни агенти проширују оно што једна петља може да обухвати. Аутоматизована петља евалуације прихвата нови модел само када он побољша квалитет истраживања уз исти трошак.

Сваки ниво напора наставиће да се развија како нови модели и конфигурације буду доказивали своју вриједност у евалуацији. Позивањем нивоа по називу аутоматски се добијају та побољшања; фиксирањем верзије конфигурација остаје непромијењена.

Испробајте Agent API и упоредите нивое напора на сопственим радним оптерећењима. Детаље о нивоима напора пронађите у нашој документацији о нивоима напора за Agent API.