Sakhanda Wire
NVDA $212.21 -4.40% MSFT $521.08 -2.23% GOOGL $324.22 -3.15% META $648.85 -6.98% AMZN $250.38 -4.57%
← Към новините

TinyFish разяснява архитектурата на агентното търсене за продукционни AI агенти

AI агент за търсене може да работи в демонстрация, но да се провали при производствени натоварвания, когато извличането връща непълни доказателства, повторните опити повтарят неуспешни действия или изпълнението надхвърля ограниченията за време и разходи. TinyFish, която предоставя уеб инфраструктура за AI агенти, публикува два технически наръчника, посветени на тези предизвикателства. Първият определя архитектура за агентно търсене в производствена среда, а вторият споделя уроци от изграждането на система за задълбочено проучване. Заедно те разглеждат как автономен агент за търсене може да планира извличането, да оценява доказателствата, да обработва грешки и да управлява границата между разсъжденията на модела и детерминистичното изпълнение. 

Накратко

TinyFish представи своята архитектура за агентно търсене и ключови инженерни уроци от изграждането на системи за задълбочено проучване. Изградена върху четири уеб примитива (TinySearch, TinyFetch, TinyBrowser и TinyAgent), системата работи чрез седемфазен контролен цикъл около базовия модел. В OpenBenchmarks TinyFish постигна 79,0% процент на завършване при задачи за програмиране, като същевременно осигури най-ниската медианна цена на задача ($0.050) и най-малък брой токени, подчертавайки значението на строгите контролни цикли, повторните опити, специфични за типа грешка, и обединеното разсъждение вместо самостоятелни планировчици.

Какво представлява архитектурата за агентно търсене?

Архитектурата за агентно търсене позволява на AI агент да планира извличането, да получава достъп до източници, да оценява доказателствата и да адаптира подхода си, когато стане достъпна нова информация. Моделът осигурява разсъждението, докато заобикалящото приложение управлява състоянието, изпълнението на инструментите, работата с доказателствата, политиките по време на изпълнение и проверката на резултатите. Заедно тези компоненти позволяват на агента да обработва непълни резултати, възстановими грешки и променящи се изисквания към информацията.

Архитектурата на TinyFish черпи основни концепции от предпечатна публикация за архитектура от февруари 2026 г., която разделя разсъждението от изпълнението чрез типизирани интерфейси за инструменти. Статията установява основни системни ограничения, включително подробно проследяване заедно със строги лимити за токени, време за изпълнение, общи разходи и извиквания на инструменти.

Как работи търсенето в производствена среда?

TinyFish разделя изпълнението на 7 фази:

  1. Определяне на задачата: Превръщане на целта в „договор за доказателства“: задължителни полета, източници, актуалност и правила за завършеност.
  2. Планиране на извличането: Разделяне на независимите от зависимите потребности. Зависимите заявки изчакват отговорите на по-ранните.
  3. Избор на първоначален маршрут: Избор на инструмент въз основа на известното на системата за доказателствата.
  4. Откриване, подбор, извличане: Третиране на резултатите от търсенето като кандидати, докато не бъде заредено съдържанието на страницата.
  5. Оценяване: Класифициране на доказателствата като достатъчни, непълни, противоречиви, недостъпни или при изчерпан бюджет.
  6. Възстановяване или ескалация: Преработване на заявката, повторен опит, смяна на източниците или промяна на метода за достъп.
  7. Спиране и проверка: Връщане на резултат със статус завършено, непълно, неуспешно, отменено или изискващо човешки преглед.

Фаза 2 адресира известен проблем. ChainRAG (ACL 2025) го нарича проблем „изгубено при извличането“, при който ключови обекти изчезват по време на разлагането на многоскокови въпроси. Фаза 6 се основава на Search-R1, който показва как моделите могат да се научат да генерират допълнителни заявки за търсене по време на разсъждение, когато по-ранното извличане е недостатъчно. При 7 набора от данни за въпроси и отговори неговото научено многоходово търсене надмина базовите RAG модели с 41% (Qwen2.5-7B) и 20% (Qwen2.5-3B).

Как агентът за търсене трябва да маршрутизира инструментите?

Маршрутизирането трябва да следва информационната празнина, а не фиксирана последователност.

Начално условиеПримитивКакво все още управлява приложението
Местоположението на източника е неизвестноТърсенеПланиране на заявките, политика за източниците, спиране
URL адресът е известен и четимИзвличанеПроверки за пълнота, валидиране на твърденията
Приложението трябва да управлява действията на страницатаБраузърВсяко действие, повторен опит и контролна точка
Решения на база на няколко странициУеб агентБизнес правила, бюджети, проверка

Ескалацията не винаги е решението. Слабите резултати изискват по-добра заявка. Противоречивите източници изискват по-силни доказателства. По-тежък инструмент не решава нито един от двата проблема.

Повторните опити трябва да се основават на типа грешка и да остават в рамките на определени лимити. Временните грешки могат да оправдаят повторение на заявката, докато непълните или противоречиви доказателства изискват различен подход. Повторните опити в браузъра трябва също да отчитат вече изпълнените действия, за да се избегнат нежелани последици, като например изпращане на един и същ формуляр два пъти.

better',{'font-size':13,'font-weight':700,fill:G,'text-anchor':'start'}); D.sf.forEach(function(d){var tf=d[0]==='TinyFish',g=el('g',{},s4); var ring=el('circle',{r:tf?17:0,fill:'none',stroke:G,'stroke-opacity':.4,'stroke-width':2},g); var c=el('circle',{r:tf?10:8,fill:tf?G:'#6a6a6a',stroke:'#111','stroke-width':2},g); var t=tx(g,0,0,'',{'font-size':13,'font-weight':700,fill:tf?G:TX,'text-anchor':'start'}); pts[d[0]]={g:g,c:c,t:t,ring:ring,x:sx(d[1]),y:sy(d[2])}}); pts['Exa fast']=pts['Exa deep'];boost(s4,1.2)} var anim4=null,OFF={sf:{'TinyFish':[-16,-20,'end'],'Exa deep':[-14,-18,'end'],'Perplexity':[14,-12,'start'],'Firecrawl':[14,16,'start']}, so:{'TinyFish':[16,0,'start'],'Exa fast':[-14,0,'end'],'Perplexity':[14,0,'start'],'Firecrawl':[14,0,'start']}}; function drawScatter(fromZero){var data=D[cur],start={},t0=null; data.forEach(function(d){var p=pts[d[0]];start[d[0]]=fromZero?{x:sx(0),y:Y0}:{x:p.x,y:p.y};p.tx=sx(d[1]);p.ty=sy(d[2]); p.t.textContent=d[0]+' '+d[2].toFixed(1)+'% · $'+d[1].toFixed(3)}); anim4=function(ts){if(!t0)t0=ts;var f=Math.min(1,(ts-t0)/900),e=1-Math.pow(1-f,3); data.forEach(function(d){var p=pts[d[0]],s=start[d[0]];p.x=s.x+(p.tx-s.x)*e;p.y=s.y+(p.ty-s.y)*e;p.g.setAttribute('transform','translate('+p.x+','+p.y+')'); var o=OFF[cur][d[0]];p.t.setAttribute('x',o[0]);p.t.setAttribute('y',o[1]);p.t.setAttribute('text-anchor',o[2])}); if(f>=1)anim4=null}} build4();chips('c4','b',function(b){cur=b;drawScatter(false)});drawScatter(true); function loop(ts){if(active==='p1'&&run1)run1.tick(ts);if(active==='p3')tick3(ts);if(anim4)anim4(ts); if(pts.TinyFish)pts.TinyFish.ring.setAttribute('r',15+3*Math.sin(ts/220));requestAnimationFrame(loop)} requestAnimationFrame(loop); window.addEventListener('load',post);window.addEventListener('resize',post);setTimeout(post,300); })(); </script> </body></html> ">

Какво научи TinyFish при изграждането на система за задълбочено проучване?

Агентът за задълбочено проучване търси, сърфира и генерира изчерпателни доклади с цитирани източници. Повечето инженерни предизвикателства бяха свързани с управлението на контекста, оркестрацията на системата и продуктовия дизайн.

Урок №1: Премахване на отделния планировчик

Първоначалните итерации използваха самостоятелен планировчик, който се извикваше всеки път отначало. Само структурирано състояние се предаваше към него. При последващи заявки като „фокусирай се само върху ценовите рискове в Югоизточна Азия“ агентът отново се връщаше към широко пазарно проучване. Впоследствие TinyFish премести планирането в собствения унифициран цикъл на разсъждение на оркестратора.

Урок №2: Премахване на подагентите:

TinyFish първоначално назначаваше отделен подагент за всяка заявка за търсене, което увеличаваше разходите за превключване между контексти, латентността и цената. По-късно екипът замени тези подагенти с извиквания на инструменти за повтаряеми задачи като класиране на резултатите от търсенето, категоризиране на източниците и извличане на доказателства. Това намали информацията, предавана обратно към оркестратора, позволявайки му да се съсредоточи върху планирането на проучването и решаването какво да изследва следващо.

Урок №3 – Съобразяване с изследователите:

TinyFish първоначално оптимизира системата си за проучване за покритие на източниците, но потребителите отдаваха по-голямо значение на качеството и релевантността на подкрепящите доказателства. Екипът промени класирането на източниците, така че да отчита целта на проучването, и добави контроли за приоритизиране, изключване или ограничаване на домейни. Освен това разработи вътрешна система за оценяване, използваща LLM съдия за оценка на докладите по отношение на релевантност, сила на доказателствата, надеждност на цитатите и разнообразие на източниците.

Как се натрупват разходите и латентността?

TinyFish бюджетира цялата задача, а не отделните извиквания:

  • Латентност на задачата = планиране + търсене + извличане + оценяване + повторни опити + интерактивни стъпки + изчакване в опашката.
  • Цена на задачата = токени + извиквания на инструменти + използване на страници или браузър + повторни опити + инфраструктура.

SearchAgent-X (ICLR 2026) показва защо. Точното извличане добавяше допълнителни разходи, а грубото извличане налагаше допълнително разсъждение. Неговите подобрения достигнаха до 3,4 пъти по-висока пропускателна способност и 5 пъти по-ниска латентност в сравнение с тестваните базови модели.

Как се сравнява TinyFish при търсене и извличане?

OpenBenchmarks фиксира модела (gpt-5.6-sol), 100 задачи и бюджети, като променя единствено доставчика. Резултатите са средни стойности от 3 изпълнения.

ПоказателTinyFishExa deepPerplexityFirecrawl
Завършване на търсене + извличане79.0% ± 2.083.0% ± 1.077.7% ± 1.576.0% ± 1.0
Медианно време на задача24s37s22s34s
Медианна цена на задача$0.050$0.127$0.083$0.082
Медианен брой токени на задача12,84423,66020,06217,379
Завършване само при търсене59.3%66.3% (Exa fast)77.3%70.3%
Каталожна цена за търсене$0$0.012$0.005$0.005

Източник: класацията на OpenBenchmarks, актуализирана на 26 септември 2026 г. Задачите обхващат единствено корпоративна документация.

OpenBenchmarks също така отчита отделно резултатите само за търсене. В тази конфигурация TinyFish постигна 59,3% завършване на задачите в сравнение със 77,3% за Perplexity, 70,3% за Firecrawl и 66,3% за Exa Fast. Тези резултати не трябва да се сравняват директно с резултатите за търсене и извличане, тъй като наличните възможности за извличане се различават.

Основни изводи

  • Контролирайте цялата последователност, а не 1 заявка за търсене.
  • Маршрутизирайте според информационната празнина; ескалирайте само когато достъпът е неуспешен.
  • Поддържайте планирането и изпълнението в 1 цикъл на разсъждение.
  • Премествайте детерминистичните стъпки в извиквания на инструменти, а не в подагенти.
  • Класирайте източниците според целта на проучването, а не чрез единна оценка за качество.

Прочетете наръчника за архитектурата, уроците от задълбоченото проучване и документацията на TinyFish.


Благодарим на екипа на Tinyfish за експертните материали и ресурсите за тази статия. Статията е спонсорирана от TinyFish.

Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.

Първоначално публикувано от MarkTechPost на

Прочетете оригинала в MarkTechPost ↗

Текстът и изображенията са собственост на MarkTechPost и са възпроизведени тук с посочване на авторството и връзка към оригиналната публикация.

← Към новините

Още новини

Всички последни новини