Изградба на сопствената збунетост: Архитектурата зад длабоките истражувања на AI
☀️ Пробудување повик за програмери
Вашата мисија не е само да научите како да користите ChatGPT или Claude – тоа е да станете креатор на такви системи, да го изградите следниот Perplexity наместо само да го користите.
☀️ Пробудување повик за програмери
Вашата мисија не е само да научите како да користите ChatGPT или Claude – тоа е да станете креатор на такви системи, да го изградите следниот Perplexity наместо само да го користите.
Отворени извори:https://github.com/aifa-agi/aifa-deep-researcer-starter/
1. What You'll Master by Reading This Article
Што ќе научите со читање на овој написОваа статија обезбедува комплетен архитектонски нацрт за изградба на сопствен агент за длабоко истражување на АИ, сличен на функцијата "Длабоки истражувања" на Перплексити.
Technical ArchitectureКако да се дизајнира рекурзивен систем за пребарување со користење на Next.js 15, OpenAI и exa.ai кој всушност работи во производството
Mental ModelsЗошто длабокото пребарување е структура на дрво, а не линеарен процес – и како ова го менува сè за истражувањето на АИ
Practical SolutionsКако да ги интегрирате надворешните веб пребарувања со внатрешните векторски бази на знаење за да креирате навистина уникатна содржина што вашите конкуренти не можат да ја реплицираат
Performance OptimizationКако да управувате со ресурсите на серверот и корисничкото искуство за време на долготрајните операции на АИ без да го скршите банката
Production-Ready CodeБетонски имплементации на TypeScript со користење на современи технолошки стекови кои можете да ги распоредите денес
До крајот на оваа статија, ќе имате јасно разбирање за тоа како да изградите самостоен SaaS за длабоко истражување кое може да се интегрира во кој било производ - што ви дава конкурентна предност која е навистина тешко да се реплицира.
1.1. The Technology Stack That Powers Intelligence
За да го имплементираме нашиот агент за длабоко истражување на АИ, користиме модерна технологија оптимизирана за апликации подготвени за производство со интензивна употреба на АИ. Ова не е само технолошка демонстрација – тоа е изградено за реалниот свет скала и сигурност.
1.1.1. Frontend and Framework
React 19Најновата верзија со подобрени перформанси и нови можности за истовремено рендерирање кои без проблеми се справуваат со комплексни интеракции со вештачка интелигенција
Next.js 15Полнофункционална React рамка со App Router, вклучувајќи поддршка за паралелни и пресретнувачки рути (совршена за сложени работни процеси на АИ)
TypeScript 5Строго пишување за доверба на кодот и извонредно искуство на програмерите при градење на сложени системи за АИ
1.1.2. AI and Integrations
OpenAI SDK (v4.96.2)Официјален SDK за интеграција со GPT-4 и други модели на OpenAI, со целосна поддршка за стриминг
AI SDK (v4.1.45)- Универзална библиотека за работа со разни ИИ провајдери, давајќи ви флексибилност за менување на моделите
Exa.js (v1.4.10)Специјализирана AI-ориентирана пребарувачка машина за семантичко пребарување која всушност го разбира контекстот
1.1.3. UI and Styling
Tailwind CSS 4Кориснички-прв CSS рамка за брз развој без жртвување на квалитетот на дизајнот
Radix UIБезглави компоненти за создавање на достапни интерфејси кои работат на сите уреди
Lucide ReactМодерна библиотека на икони со конзистентен дизајн јазик
shadcn/uiКомпонентен систем изграден на Radix UI и Tailwind CSS за професионални интерфејси
1.1.4. Forms and Validation
React Hook FormБиблиотека со високи перформанси за обработка на формулари која не ги забавува интерфејсите на AI
ZodTypeScript-first валидациска шема со статичко пишување што ги фаќа грешките пред да стигнат до производството
Hookform ResolversБесплатна интеграција помеѓу Zod и React Hook Form
1.1.5. Content Processing
React MarkdownМаркирање на содржината со поддршка на компоненти за богати извештаи генерирани од АИ
date-fnsМодерна библиотека за обработка на датуми во истражувачките временски линии на АИ
Why This Stack Matters
Оваа технологија обезбедуваhigh performance, наtype safetyиscalabilityСекој избор тука е намерно – од паралелните патеки на Next.js 15 за справување со комплексни работни процеси на АИ, до Exa.js обезбедување на семантички можности за пребарување кои овозможуваат длабоко истражување.
The result?Систем кој може да се справи со компјутерската сложеност на рекурзивни ИИ истражувања, додека ги одржува стандардите за корисничко искуство што ги бараат современите апликации.
Подготвени да видите како овие парчиња се вклопуваат заедно за да создадат нешто навистина моќно?
Револуцијата на вештачката интелигенција не доаѓа – тоа е тука. И тоа создава јака поделба во заедницата на програмери. Од една страна се оние кои ја гледаат вештачката интелигенција како уште една алатка за зголемување на продуктивноста, користејќи ChatGPT за да пишуваат функции и да го дебугираат кодот.the real opportunity isn't in using AI—it's in building it.
Додека повеќето програмери учат да го поттикнуваат ChatGPT поефикасно, помала група ја совладува архитектурата зад системи како Perplexity, Claude и персонализирани агенти за АИ. Ова не е само за останување релевантни; тоа е за позиционирање на вистинската страна на најзначајната технолошка промена од интернетот.
The harsh realityКомпаниите немаат потреба од програмери кои можат да користат алатки за вештачка интелигенција, тие имаат потреба од програмери кои можат да градат системи за вештачка интелигенција.Разликата помеѓу овие две вештини ќе одреди кој просперира и кој станува застарен во следниот економски циклус.
Оваа статија обезбедува комплетен архитектонски план за изградба на сопствен агент за длабоки истражувања на AI, сличен на функцијата "Длабоки истражувања" на Perplexity. Ќе научите не само техничката имплементација, туку и менталните модели и принципите на дизајн кои ги раздвојуваат аматерските интегрирања на AI од системите подготвени за производство кои можат да станат конкурентни предности.
What you'll master by the end:
- Рекурзивна архитектура за пребарување: Како да дизајнирате системи кои размислуваат во дрвја, а не линии
- AI-first data pipelines: Интегрирање на надворешно веб пребарување со внатрешни бази на знаење
- Агентска оркестрација: Изградба на системи за вештачка интелигенција кои можат да ги проценат, итираат и да ги подобрат сопствените резултати
- Производствени размислувања: управување со ресурсите на серверот, временските интервали и корисничкото искуство за долгорочни операции со АИ
Целта не е да ви се даде код за копирање. Тоа е да го пренесете архитектонското размислување кое ќе ви овозможи да дизајнирате системи за АИ за било кој домен, било каков случај на употреба и било која скала.
Подготвени да се пресели од потрошувачот на АИ на архитект на АИ? Ајде да се нурне во зошто традиционалните LLMs треба "водич" да се движат на интернет ефикасно.
2. Introduction: Life After ChatGPT Changed Everything
Вовед: Животот по ChatGPT го промени сèНие живееме низ еден од најтрансформативните периоди во историјата на технологијата. ChatGPT и други големи јазични модели (LLMs) фундаментално го револуционизираат начинот на кој комуницираме со информации. но ако сте граделе сериозни апликации со овие алатки, веројатно сте го погодиле истиот ѕид што го направив:models only know the world up to their training cutoff date, and they hallucinate with alarming confidence.
2.1. The Problem: Band-Aid Web Search in Modern LLMs
Тимовите зад ChatGPT, Claude и други модели се обиделе да го решат ова со вградено пребарување на веб. Тоа звучи одлично во теорија, но копаат подлабоко и ќе најдете некои сериозни архитектонски недостатоци кои го прават несоодветен за производствени апликации:
Surface-Level SearchСистемот прави една или две пребарувања, ги фаќа првите неколку резултати и го нарекува еден ден.
Zero Follow-ThroughАко првото пребарување не дава сеопфатни резултати, системот не поставува следни прашања или не истражува алтернативни агли.
Garbage Data QualityТрадиционалните пребарувачи враќаат HTML страници збунети со реклами, навигациски елементи и ирелевантни содржини.
Context IsolationСистемот не може да ги поврзе пронајдените информации со вашите внатрешни податоци, корпоративни документи или бази на знаење специфични за доменот.
2.2. The Gold Standard: Perplexity's Deep Research Revolution
Perplexity беше првата компанија која ни покажа како всушност треба да функционира интеграцијата на пребарување-LLM. Нивниот пристап е фундаментално различен од овие решенија за помош на бендот:
AI-Optimized Search EnginesНаместо генерички Google API повици, тие користат специјализирани системи за пребарување кои враќаат чиста, структурирана содржина дизајнирана за потрошувачка на АИ.
Iterative Investigation ProcessСистемот ги анализира наодите, формулира нови прашања и продолжува да пребарува додека не изгради сеопфатна слика.
Deep Research ModeОва е автономна АИ агент кој може да работи за минути во исто време, рекурзивно дупчење во теми и собирање на информации од десетици извори.
This is exactly the kind of system we're going to build together.
2.3. Why This Matters for Every Developer
Во ерата на AI-first, секој производ се натпреварува за да стане "попаметна."Но едноставно приклучување на ChatGPT API е само маса залози сега.
- Истражување на актуелните информации од интернет во реално време
- Комбинирајте јавни податоци со вашите сопствени бази на знаење
- Се генерираат уникатни увид невозможно да се добие од стандардните LLMs
- Прилагодете се на вашиот специфичен бизнис домен и индустриски нијанси
2.4. What You'll Walk Away With
Мојата цел не е да ви дадам код за копирање (иако ќе добиете многу од тоа). сакам да ги пренесам менталните модели и архитектонските принципи кои ќе ви овозможат:
- Разбирање на филозофијата зад длабокото истражување на АИ
- Дизајнирајте ја архитектурата за вашиот специфичен случај на употреба
- Имплементирајте го системот со користење на модерен стек (Next.js 15, OpenAI, exa.ai)
- Интегрирање на решението во постоечки производ
- Скалирање и оптимизирање на системот за вашите потреби
До крајот на оваа статија, ќе имате комплетен архитектонски нацрт и примероци на кодови подготвени за производство за изградба на сопствен "Перлексибилност" - агент за вештачка интелигенција кој може да стане тајно оружје на вашиот производ.
Important: Ние ќе ја проучуваме не само техничката имплементација, туку и деловната логика.Зошто рекурзивното пребарување е поефикасно од линеарното?Како правилно ги комбинирате надворешните и внатрешните извори?Какви UX модели работат за долгорочни операции на АИ?Овие прашања се исто толку критични како и кодот.
2.5. For the Impatient: Skip to the Code
За оние кои веќе ги добиваат концептите и сакаат да се нурнат директно во имплементацијата, тука е решението со отворен код што ќе го градиме:https://github.com/aifa-agi/aifa-deep-researcer-starter
https://github.com/aifa-agi/aifa-deep-researcer-starterЛично не можам да издржам статии кои ви даваат многу зборови и малку супстанција.Не заборавајте да го клонирате репото и да го стартувате во развојот сега.
Pro tip: Ќе ги погодите ограничувањата за времетраење (403 грешки) на слободниот хостинг на Vercel во производството, но на localhost можете целосно да експериментирате и да ги проучите дневниците до содржината на вашето срце.
Подготвени да се изгради иднината на ИИ-помогнати истражувања? Да почнеме со разбирање зошто LLMs треба "водич куче" да се движат на интернет ефикасно.
3. Why LLMs Need a "Guide Dog": The Critical Role of External Search Systems
Зошто LLMs треба "водич куче": критичната улога на надворешните системи за пребарувањеЕве една тешка вистина дека многу програмери учат на скап начин:Large Language Models cannot independently access current information from the internetОва не е грешка – тоа е фундаментално архитектонско ограничување кое бара софистицирано решение: интеграција со специјализирани пребарувачки системи дизајнирани за потрошувачка на АИ.
3.1. Why Traditional Search Engines Are AI Poison
Google, Bing и другите традиционални пребарувачи беа изградени за луѓе кои пребаруваат на интернет, а не за машини кои ги обработуваат податоците.
- Рекламни блокови и неред во навигацијата кои ја збунуваат екстракцијата на содржини
- Нерелевантни содржини (коментари, странични ленти, подножја, колачиња банери)
- Неструктурирани податоци кои бараат комплексно анализирање и често не успеваат
javascript// The traditional approach - a nightmare for AI
const htmlResponse = await fetch('https://api.bing.com/search?q=query');
const messyHtml = await htmlResponse.text();
// You get HTML soup with ads, scripts, and digital garbage
// Good luck extracting meaningful insights from this mess
Видов тимови да поминуваат недели во изградба на HTML анализи, само за да ги прекинат секој пат кога голем сајт го ажурира нивниот распоред.It's not scalable, and it's definitely not reliable.
3.2. Keyword Matching vs. Semantic Understanding: A World of Difference
Традиционалните пребарувачи бараат точни споредби на зборови, целосно игнорирајќи го контекстот и значењето. Прашање како "Next.js оптимизација за е-трговија" може да пропушти одлична статија за "подобрување на перформансите на апликациите React во онлајн продавници", иако тие се семантички идентични теми.
Ова е како да имате истражувачки асистент кој може да најде книги само со усогласување на точните зборови во насловот, додека игнорира сè за вистинската содржина.For AI agents doing deep research, this approach is fundamentally broken.
3.3. AI-Native Search Engines: The Game Changer
Специјализирани системи како Exa.ai, Metaphor и Tavily ги решаваат клучните проблеми кои го прават традиционалното пребарување неприфатливо за АИ:
Семантичко барање за разбирање
Тие користат векторски репрезентации за пребарување по значење, а не само по клучни зборови.Вашата АИ може да најде релевантна содржина дури и кога точните термини не се совпаѓаат.
Чисти, структурирани податоци
Тие ги враќаат претходно обработените содржини без HTML ѓубре. Нема повеќе анализирање кошмари или скршени екстрактори.
Контекстуална свест
Тие ги разбираат претходните прашања и целокупниот контекст на истражувањето, овозможувајќи навистина итеративно истражување.
javascript// The AI-native approach - clean and powerful
const cleanResults = await exa.search({
query: "Detailed analysis of Next.js performance optimization for high-traffic e-commerce platforms",
type: "neural",
contents: { text: true, summary: true }
});
// You get clean, relevant content ready for AI processing
// No parsing, no cleanup, no headaches
3.4. Why This Matters for Production Systems
Квалитетот на вашите влезни податоци директно го одредува квалитетот на конечниот исход од истражувањето.
Data ReliabilityСтруктурирана содржина без потреба од кршливо HTML анализирање
Scalability: Стабилни API-и дизајнирани за автоматска, голема количина на употреба
Cost Efficiency: Намален компјутерски надградба за обработка на податоци
Accuracy: Подобра релевантност на изворот доведува до подобри конечни увид
javascript// Hybrid search: external + internal sources
const [webResults, vectorResults] = await Promise.all([
exa.search(query),
vectorStore.similaritySearch(query)
]);
const combinedContext = [...webResults, ...vectorResults];
// Now your AI has both current web data AND your proprietary knowledge
3.5. The Bottom Line: Architecture Matters
Интелигентните пребарувачи не се само технички деталиthey're the architectural foundationБез вистинскиот "водич", дури и најсофистицираниот LLM ќе се бори да создаде длабока, точна анализа на тековните информации.
Think of it this way: you wouldn't send a brilliant researcher into a library where all the books are written in code and half the pages are advertisements. Yet that's exactly what happens when you connect an LLM to traditional search APIs.
The solution?Во следниот дел, ќе се нурнеме во специфичните архитектурни модели кои го прават рекурзивното, длабоко истражување можно.
Ready to see how the pieces fit together? Let's explore the system design that powers truly intelligent AI research agents.
4. Think Like a Tree: The Architecture of Recursive Search
Размислете како дрво: Архитектурата на рекурзивното пребарувањеЧовечкиот мозок природно структурира сложени информации како хиерархиски мрежи.Кога истражувачот истражува нова тема, тие не се движат во права линија – тие развиваат мрежа на знаење како дрво каде што секое ново откритие генерира дополнителни прашања и истражувачки насоки.
4.1. The Fundamental Difference in Approaches
Традиционалните системи за пребарување и вградената веб пребарување во LLMs работат линеарно: добивање на прашање → извршување на пребарување → враќање на резултатите → генерирање на одговори.
Problems with the Linear Approach:
- Резултати на ниво на површина: Системот застанува на првите факти што ги наоѓа
- Нема континуитет на контекстот: Секој пребарувач е изолиран од претходните
- Исчезнати врски: Системот не може да ги види односите помеѓу различните аспекти на темата
- Случаен квалитет: Резултатите целосно зависат од среќата на почетната потрага
The tree-based approach solves these problems by modeling the natural process of human investigation. Each discovered source can generate new questions, which become separate research branches.
4.2. Anatomy of a Search Tree
Да ја разгледаме структурата на длабокото дрво за пребарување со конкретен пример:
textNext.js vs WordPress for AI Projects/
├── Performance/
│ ├── Source 1
│ ├── Source 2
│ └── Impact of AI Libraries on Next.js Performance/
│ └── Source 7
├── Development Costs/
│ ├── Source 3
│ └── Source 4
└── SEO and Indexing/
├── Source 5
└── Source 6
First-level branchesсе главните аспекти на темата што LLM генерира врз основа на анализа на оригиналниот прашање. Во нашиот пример, овие се перформанси, трошоци и оптимизација. Овие под-теми не се формирани случајно - LLM го анализира семантичкиот простор на прашањето и ги идентификува клучните насоки за истражување.
Tree leavesСекој лист содржи фактички информации кои ќе бидат вклучени во конечниот извештај.
Recursive branchesКога системот ги анализира пронајдените извори, може да открие нови аспекти на темата кои бараат дополнително истражување.
4.3. Practical Advantages of Tree Architecture
Research CompletenessНаместо случаен збир на факти, системот гради логички поврзана мапа на знаење каде што секој елемент има своето место во целокупната структура.
Adaptive Depth: Системот автоматски одредува кои насоки бараат подлабоко истражување. Ако една гранка дава многу релевантни извори, системот може да оди подлабоко.
Contextual ConnectivityСекој нов пребарувач е формиран земајќи ги предвид веќе пронајдените информации, што овозможува попрецизни и специфични прашања отколку изолирани пребарувања.
Quality AssessmentНа секое ниво на дрво, системот може да ја процени релевантноста и квалитетот на пронајдените извори, филтрирање на бучавата и концентрирање на највредните информации.
4.4. Managing Tree Parameters
Search Depthодредува колку нивоа на рекурзија системот може да изврши. Длабочината 1 значи само главни под-запрашувања без понатамошно бушење. Длабочината 3-4 овозможува навистина детално истражување.
Search Widthконтролира бројот на под-запрашувања на секое ниво. Премногу ширина може да доведе до површно истражување на многу насоки. Оптимална ширина е обично 3-5 главни насоки по ниво.
Branching Factorе просечниот број на детски јазли за секое дрво јазол. Во контекст на пребарување на информации, ова одговара на бројот на нови под-пребарувања генерирани врз основа на секој пронајден извор.
4.5. Optimization and Problem Prevention
Cycle PreventionСистемот мора да ги следи веќе истражуваните насоки за да се избегнат бесконечни рекурзиски кругови.
Dynamic PrioritizationПовеќе ветувачки гранки треба да се истражуваат со поголема длабочина, додека помалку информативни насоки може да се прекинат порано.
Parallel InvestigationРазлични гранки на дрво може да се истражуваат паралелно, што значително го забрзува процесот кога се достапни доволни изчислителни ресурси.
Memory and CachingРезултатите од пребарувањето треба да се кешираат за да се избегнат повторени барања за надворешни API-и кога темите се преклопуваат.
Execution Time and Server Timeouts: Ова е уште еден проблем кој често се манифестира кога се спроведува длабоко истражување, особено ако длабочината надминува две нивоа. Може да се каже дека зголемувањето на нивото експоненцијално ја зголемува комплексноста на истражувањето. На пример, истражувањето со четири нивоа на длабочина може да потрае до 12 часа.
4.6. The Bottom Line: From Chaos to System
Архитектурата на дрвото го трансформира хаотичниот процес на пребарување на информации во систематско истражување, каде што секој елемент има своето место во целокупната структура на знаењето.
The result?Систем за вештачка интелигенција кој размислува како човечки истражувач, но работи на скала и брзина на машината.Во следниот дел, ќе се нурнеме во техничката имплементација што ја прави оваа архитектонска визија реалност.
Подготвени да видиме како да ја преведеме оваа концептуална рамка во производствен код?
5. The "Search-Evaluate-Deepen" Cycle: Implementing True Recursion
Циклусот „Пребарување-Евалуација-Длабочина“: имплементирање на вистинската рекурзијаРекурзивното интернет анализирање не е само техничка карактеристика – тоа е фундаментална потреба за создавање навистина интелигентни АИ агенти. На првата страница на сите резултати од пребарувањето се прикажува само врвот на информацискиот леден брег.
5.1. Data Architecture for Deep Investigation
Во производствените имплементации, системот работи со структурирани типови на податоци кои акумулираат знаење на секое ниво на рекурзија:
typescripttype Learning = {
learning: string;
followUpQuestions: string[];
};
type SearchResult = {
title: string;
url: string;
content: string;
publishedDate: string;
};
type Research = {
query: string | undefined;
queries: string[];
searchResults: SearchResult[];
knowledgeBaseResults: string[]; // Vector database responses
learnings: Learning[];
completedQueries: string[];
};
Оваа структура на податоци акумулира знаење на секое ниво на рекурзија, создавајќи единствен контекст за целото истражување - токму она што го одделува професионалното истражување од случајно собирање факти.
5.2. Stage 1: "Search" — Intelligent Query Generation
The system doesn't rely on a single search query. Instead, it generates multiple targeted queries using LLM intelligence:
typescriptconst generateSearchQueries = async (query: string, breadth: number) => {
const {
object: { queries },
} = await generateObject({
model: mainModel,
prompt: `Generate ${breadth} search queries for the following query: ${query}`,
schema: z.object({
queries: z.array(z.string()).min(1).max(10),
}),
});
return queries;
};
Key insight• наbreadth
параметар го контролира ширината на истражувањето - бројот на различни аспекти на темата кои ќе се истражуваат паралелно.
5.3. Stage 2: "Evaluate" — AI-Driven Result Filtering
Не сите пронајдени извори се подеднакво вредни. Системот користи АИ агент со алатки за интелигентна евалуација на секој резултат:
typescriptconst searchAndProcess = async (/* parameters */) => {
const pendingSearchResults: SearchResult[] = [];
const finalSearchResults: SearchResult[] = [];
await generateText({
model: mainModel,
prompt: `Search the web for information about ${query}, For each item, where possible, collect detailed examples of use cases (news stories) with a detailed description.`,
system: "You are a researcher. For each query, search the web and then evaluate if the results are relevant",
maxSteps: 10,
tools: {
searchWeb: tool({
description: "Search the web for information about a given query",
parameters: z.object({ query: z.string().min(1) }),
async execute({ query }) {
const results = await searchWeb(query, breadth, /* other params */);
pendingSearchResults.push(...results);
return results;
},
}),
evaluate: tool({
description: "Evaluate the search results",
parameters: z.object({}),
async execute() {
const pendingResult = pendingSearchResults.pop();
if (!pendingResult) return "No search results available for evaluation.";
const { object: evaluation } = await generateObject({
model: mainModel,
prompt: `Evaluate whether the search results are relevant and will help answer the following query: ${query}. If the page already exists in the existing results, mark it as irrelevant.`,
output: "enum",
enum: ["relevant", "irrelevant"],
});
if (evaluation === "relevant") {
finalSearchResults.push(pendingResult);
}
return evaluation === "irrelevant"
? "Search results are irrelevant. Please search again with a more specific query."
: "Search results are relevant. End research for this query.";
},
}),
},
});
return finalSearchResults;
};
Revolutionary approachСистемот користи АИ агент со алатки кои можат постојано да пребаруваат и да ги оценуваат резултатите додека не најдат доволно релевантни информации.
5.4. Vector Knowledge Base Integration
Реалната моќ произлегува од синергијата помеѓу надворешното и внатрешното пребарување.За секое барање, системот истовремено пребарува на интернет и својата векторска база на знаења:
typescriptasync function getKnowledgeItem(query: string, vectorStoreId: string) {
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const response = await client.responses.create({
model: "gpt-4o-mini",
tools: [
{
type: "file_search",
vector_store_ids: [vectorStoreId],
max_num_results: 5,
},
],
input: [
{
role: "developer",
content: `Search the vector store for information. Output format language: ${process.env.NEXT_PUBLIC_APP_HTTP_LANG || "en"}`,
},
{
role: "user",
content: query,
},
],
});
return response.output_text;
}
5.5. Practical Implementation
Во главниот истражувачки круг, системот ги праша двата извори паралелно:
typescriptfor (const query of queries) {
const searchResults = await searchAndProcess(/* web search */);
accumulatedResearch.searchResults.push(...searchResults);
if (vectorStoreId && vectorStoreId !== "") {
const kbResult = await getKnowledgeItem(query, vectorStoreId);
accumulatedResearch.knowledgeBaseResults.push(kbResult);
}
}
5.6. Stage 3: "Deepen" — Generating Follow-Up Questions
5.6. Stage 3: "Deepen" — Generating Follow-Up QuestionsThe most powerful feature: the system's ability to generate new research directions based on already found information:
typescriptconst generateLearnings = async (query: string, searchResult: SearchResult) => {
const { object } = await generateObject({
model: mainModel,
prompt: `The user is researching "${query}". The following search result were deemed relevant.
Generate a learning and a follow-up question from the following search result:
<search_result>
${JSON.stringify(searchResult)}
</search_result>`,
schema: z.object({
learning: z.string(),
followUpQuestions: z.array(z.string()),
}),
});
return object;
};
5.7. Recursive Deepening
Секој пронајден извор се анализира за да се извлечат нови прашања кои стануваат основа за следното ниво на пребарување:
typescriptfor (const searchResult of searchResults) {
const learnings = await generateLearnings(query, searchResult);
accumulatedResearch.learnings.push(learnings);
accumulatedResearch.completedQueries.push(query);
const newQuery = `Overall research goal: ${prompt}
Previous search queries: ${accumulatedResearch.completedQueries.join(", ")}
Follow-up questions: ${learnings.followUpQuestions.join(", ")}`;
await deepResearch(
/* search parameters */,
newQuery,
depth - 1,
Math.ceil(breadth / 2), // Reduce width at each level
vectorOfThought,
accumulatedResearch,
vectorStoreId
);
}
5.8. Managing Depth and Complexity
Имплементацијата на производството покажува како да се управува со растот на експоненцијалната комплексност:
typescriptconst deepResearch = async (
/* multiple filtering parameters */,
prompt: string,
depth: number = 2,
breadth: number = 5,
vectorOfThought: string[] = [],
accumulatedResearch: Research = {
query: undefined,
queries: [],
searchResults: [],
knowledgeBaseResults: [],
learnings: [],
completedQueries: [],
},
vectorStoreId: string
): Promise<Research> => {
if (depth === 0) {
return accumulatedResearch; // Base case for recursion
}
// Adaptive query formation based on "thought vector"
let updatedPrompt = "";
if (vectorOfThought.length === 0) {
updatedPrompt = prompt;
} else {
const vectorOfThoughItem = vectorOfThought[vectorOfThought.length - depth];
updatedPrompt = `${prompt}, focus on these important branches of thought: ${vectorOfThoughItem}`;
}
// ... rest of implementation
};
5.9. Key Optimizations
Width Reduction: наMath.ceil(breadth / 2)
на секое ниво спречува експоненцијален раст
Thought Vector: наvectorOfThought
allows directing research into specific areas
Context Accumulation: All results are preserved in a unified data structure
5.10. The Hybrid Advantage in Practice
Creating Unique ContentКомбинирањето на јавни податоци со внатрешно знаење овозможува да се создадат извештаи кои никој друг не може да ги реплицира. Вашите конкуренти може да пристапат до истите јавни извори, но не и до вашите внатрешни случаи, статистики и експертиза.
Context EnrichmentНадворешните податоци обезбедуваат валута и ширина, внатрешните податоци обезбедуваат длабочина и специфичност.Системот може да ги најде општите трендови во индустријата онлајн, а потоа да ги надополни со свои податоци за тоа како овие трендови влијаат на вашиот бизнис.
Maintaining CurrencyДури и ако веб информациите се застарени или неточни, вашата внатрешна база на знаења може да обезбеди свежи и проверени податоци.
6. From Chaos to Order: Generating Expert-Level Reports
Од хаос до ред: генерирање извештаи на експертно нивоAfter completing all levels of recursive search, the system accumulates massive amounts of disparate information: web search results, vector database data, generated learnings, and follow-up questions. The final stage is transforming this chaos into a structured, expert-level report that rivals human analysis.
6.1. Context Accumulation: Building the Complete Picture
Сите собрани податоци се обединети во еденResearch
Структура која служи како комплетен контекст за конечната синтеза:
typescripttype Research = {
query: string | undefined; // Original query
queries: string[]; // All generated search queries
searchResults: SearchResult[]; // Web search results
knowledgeBaseResults: string[]; // Vector database responses
learnings: Learning[]; // Extracted insights
completedQueries: string[]; // History of completed queries
};
This isn't just data storageТоа е сеопфатен графикон на знаење кој го фаќа целото истражувачко патување.Секој увид, секој извор, секоја врска се зачувани за конечната синтеза.
6.2. The Master Prompt: Where Intelligence Meets Synthesis
Квалитетот на конечниот извештај директно зависи од софистицираноста на инстантот за генерирање.Системот го користи најмоќниот модел на OpenAI за синтеза:
typescriptconst generateReport = async (
research: Research,
vectorOfThought: string[],
systemPrompt: string
) => {
const { text } = await generateText({
model: openai("o3-mini"), // Most powerful model for synthesis
system: systemPrompt,
prompt:
"Use the following structured research data to generate a detailed expert report:\n\n" +
JSON.stringify(research, null, 2),
});
return text;
};
Key insight: Ние не само што го бараме АИ да го сумира - ние му обезбедуваме комплетен сет на податоци за истражување и го бараме да размислува како експерт за домен.
6.3. Structured Output: Beyond Simple Summaries
Системот не само што создава текстуален резиме – генерира структурирани документи со наслови, табели, про/кон списоци и професионално форматирање, како што е прикажано во зачувувањето на резултатите:
typescriptconsole.log("Research completed!");
console.log("Generating report...");
const report = await generateReport(research, vectorOfThought, systemPrompt);
console.log("Report generated! Saving to report.md");
fs.writeFileSync("report.md", report); // Save as Markdown
Why Markdown? It's the perfect format for AI-generated content — structured enough for professional presentation, flexible enough for various output formats, and readable in any modern development workflow.
6.4. Quality Control Through System Prompts
наsystemPrompt
овозможува прилагодување на стилот и структурата на извештајот за специфични потреби:
- Академски стил за истражувачки трудови и научна анализа
- Бизнис формат за корпоративни извештаи и извршни резимеа
- Техничка документација за содржина фокусирана на програмери
- Инвестициска анализа за финансиски и стратешки извештаи
// Example: Business-focused system prompt const businessSystemPrompt = `You are a senior business analyst creating an executive report. Structure your analysis with:
- Извршен резиме
- Клучни наоди
- Импликации на пазарот
- Препораки
- Оценка на ризикот
Use data-driven insights and provide specific examples from the research.`;
6.5. The Intelligence Multiplier Effect
Here's what makes this approach revolutionaryСистемот не само што агрегира информации, туку синтетизира увид кој произлегува од врските помеѓу различни извори.Човечкиот истражувач може да помине 8-12 часа спроведувајќи го ова ниво на истражување.Нашиот систем го прави тоа за 10-60 минути, често откривајќи врски кои луѓето ги пропуштаат.
6.6. Production Considerations
Memory Management: Со длабоко истражување (длабочина 3-4), акумулираниот контекст може да стане масивен.
Token Optimization: Конечната инспирација за синтеза лесно може да ги надмине границите на токените.Производствените имплементации имаат потреба од паметни стратегии за трошење кои ги зачувуваат највредните увид.
Quality AssuranceНе сите генерирани извештаи се еднакви.Размислете за спроведување на механизми за оценување за да ја процените целосноста и кохерентноста на извештајот.
6.7. Real-World Impact
Time Compression: Часови на човечки истражувања → Минути на АИ анализа
Depth EnhancementАИ може да обработува и поврзува повеќе извори отколку што е човечки можно
ConsistencyСекој извештај ја следи истата ригорозна методологија
ScalabilityГенерација на десетици извештаи истовремено
7. Conclusion: Building the Future of AI Research
Заклучок: Градење на иднината на ИИ истражувањаКреирањето на агент за длабоко истражување на АИ не е само технички предизвик – тоа е архитектонско решение кое може да стане конкурентна предност за секој производ. Ние го покривме целиот циклус од концептот до имплементацијата, покажувајќи како да го трансформираме хаотичниот процес на пребарување на информации во систематско истражување на експертно ниво.
7.1. Key Architectural Principles
Think in Trees, Not LinesДлабокото пребарување е за истражување на дрво-структурирани информациски мрежи, каде што секое откритие генерира нови прашања и истражувачки насоки.
Use AI-Native ToolsСпецијализирани пребарувачи како exa.ai не се опционални – тие се од суштинско значење за квалитетно истражување. Тие враќаат чисти податоци наместо HTML ѓубре што ги обезбедуваат традиционалните пребарувачки АПИ.
Apply Recursion for Depth: Првата страница на резултатите е само врвот на айсбергот.Вистинскиот увид лежи во рекурзивно продлабочување низ циклусот "Пребарување-Оцени-Длабоко".
Combine External and Internal SourcesСинергијата помеѓу јавните интернет податоци и приватното организациско знаење создава уникатна содржина која не може да се добие на друг начин.
Use LLMs for Both Analysis and SynthesisИИ агентите со алатки не само што можат да пребаруваат информации, туку и да ја оценуваат нивната релевантност, да генерираат нови прашања и да креираат структурирани извештаи.
7.2. Production-Ready Results
Имплементацијата базирана на Next.js 15, OpenAI и exa.ai покажува дека таков систем може да се изгради и распореди за производство.https://github.com/aifa-agi/aifa-deep-researcer-starterги прикажува сите клучни компоненти:
- Рекурзивна архитектура со управување со длабочина и ширина
- Интеграција на веб пребарување со векторски бази на знаење
- AI агенти со алатки за проценка на резултатите
- Генерација на експертски извештаи со можности за зачувување на датотеки
7.3. Challenges and Limitations
Server TimeoutsИстражување со длабочина поголема од 2 нивоа може да потрае часови, барајќи специјални решенија за производствени средини.
Exponential Complexity GrowthСекое ниво на длабочина го зголемува бројот на барања геометриски, што бара внимателно управување со ресурсите.
Source QualityДури и AI пребарувачите можат да враќаат неточни информации, што бара дополнителна валидација и проверка на фактите.
7.4. Your Next Steps
Now you have a complete architectural blueprint and real code examples. You can:
Start with Minimal Implementation: Користете ја основната верзија од овој напис за прототипирање
Explore the Ready SolutionКлонотhttps://github.com/aifa-agi/aifa-deep-researcer-starterЕкспериментирање на локално ниво
Adapt to Your NeedsИнтегрирајте ги овие принципи во постоечките производи и работни процеси
8. Homework Challenge: Solving the Long-Wait UX Problem
Домашна задача предизвик: решавање на долгоочекуваниот UX проблемНие ја покривме техничката архитектура на длабоките истражувања на АИ агентите, но останува критично важен UX проблем: што правите кога системот работи неколку минути додека корисникот гледа на празен екран?
8.1. The Problem: Server Silence Kills Trust
За разлика од типичните веб апликации каде операциите траат секунди, агентите за длабоко истражување на АИ можат да молчат неколку минути.
- Чекање на анксиозност: корисниците не знаат дали системот работи или е замрзнат
- Губење на контрола: Нема начин да се разбере колку подолго да се чека
- Намалување на довербата: Се чини дека апликацијата е скршена или "јаде" барањето
- Висока стапка на отскокнување: корисниците ја затвораат картичката без да чекаат за резултати
Загриженоста, Клод и другите современи производи за вештачка интелигенција го решаваат ова со интерактивни анимации, индикатори за напредок и динамички индикатори.
8.2. The Developer Challenge
Замислете го ова техничко ограничување: Вашиот пат на Next.js API врши долга операција (длабоко истражување) и не може да испрати интермедиумски податоци додека не биде завршен. Frontend добива одговор само на самиот крај. Класични решенија како Server-Sent Events или WebSockets може да не се достапни поради ограничувања на хостинг или архитектура.
How do you create engaging UX under these conditions that will retain users and reduce waiting anxiety?
8.3. Discussion Questions
UX Patterns and Visualization:
- Кои UX модели би ги примениле за да ги визуелизирате процесите на длабоко пребарување кога серверот е "тивок"?
- Како можете да симулирате "живо" напредок дури и без вистински ажурирања на статусот на серверот?
- Should you use fake progress bars, or does this violate user trust?
- Кои анимации и микро-интеракции помагаат да се создаде чувство на "живо" систем?
User Communication:
- Како им објаснувате на корисниците зошто чекањето може да биде долго?
- Треба ли да ги покажете проценетите времиња на чекање ако тие можат да варираат значително (2 до 60 минути)?
- Како да ги визуелизирате фазите на процесот ("Генерирање пребарувања ...", "Анализирање на извори ...", "Формирање на експертски извештај ...")?
- Кои метафори им помагаат на корисниците да ја разберат вредноста на чекањето?
Technical Implementation:
- Кои оптимистички пристапи на корисничкиот интерфејс може да се применат без повратни информации од серверот?
- Како да имплементирате "разговор" интерфејс кој ги поддржува корисниците за време на чекање?
- Дали можете да користите локални пресметки (Web Workers, WASM) за да го симулирате напредокот?
- Како да организирате грациозна деградација ако корисниците ја затворат картичката за време на истражувањето?
8.4. Learning from the Best
Студиски решенија имплементирани во Perplexity Deep Research, Bing Copilot, Google Search Generative Experience. Што можете да земете од екраните за полнење на игри кои го задржуваат вниманието за минути?
RememberВо ерата на инстант ChatGPT одговори, квалитетното чекање може да стане конкурентна предност.Корисниците се подготвени да чекаат ако ја разберат вредноста на процесот и чувствуваат дека системот работи за нив.
9. About the Author and AIFA Project
За авторот и проектот AIFAна авторот,Роман Болшијанов, во неговата неодамнешна серија публикации, ги опишува алатките и архитектонските решенија што ги имплементира во својот амбициозен проект со отворен кодАИФА(Агентите за вештачка интелигенција во еволутивната и само-репликативната архитектура).
Во сегашната имплементација, AIFA веќе претставува импресивен стартер шаблон за создавање на првите апликации со AI со уникатен кориснички интерфејс каде што вештачката интелигенција станува примарниот метод на интеракција, додека традиционалниот веб интерфејс служи како помошна визуелизација.
Долгорочната цел на проектот е еволуција во целосен AGI систем каде што АИ агентите ќе поседуваат способности за:
- Автономна еволуција и подобрување на нивните алгоритми
- Само-репликација и создавање на нови специјализирани агенти
- Конкуренција и соработка во дистрибуирани средини
- Автономна работа во веб-простори и блокчејн мрежи
Длабокото пребарување опфатено во оваа статија е само една од основните вештини на идните агенти на AGI кои ќе можат не само да истражуваат информации, туку и да донесуваат одлуки, да креираат производи и да комуницираат со реалниот свет.
Ако сте заинтересирани да го набљудувате развојот на проектот и да експериментирате со најсовремена технологија за вештачка интелигенција, не двоумете се да гоРепозиториум на АИФАСекој компромис нè приближува кон создавање навистина автономна вештачка интелигенција.
Ready to build the future?Кодот е отворен, архитектурата е докажана, а можностите се неограничени.