Vytvořte si vlastní zmatek: architektura za hlubokým výzkumem poháněným AI
⚠️ Pro vývojáře probouzející výzva
Mnoho programátorů v nadcházejících letech ztratí své zaměstnání pro AI, ale ne ty, kteří se naučí stavět.Vaším posláním není jen naučit se používat ChatGPT nebo Claude - je to stát se tvůrcem takových systémů, budovat další Perplexity spíše než jen používat.
⚠️ Pro vývojáře probouzející výzva
Mnoho programátorů v nadcházejících letech ztratí své zaměstnání pro AI, ale ne ty, kteří se naučí stavět.Vaším posláním není jen naučit se používat ChatGPT nebo Claude - je to stát se tvůrcem takových systémů, budovat další Perplexity spíše než jen používat.
Otevřený zdroj :https://github.com/aifa-agi/aifa-deep-researcer-starter/
1. What You'll Master by Reading This Article
Co zvládnete čtením tohoto článkuTento článek poskytuje kompletní architektonický blueprint pro budování vlastního hlubokého výzkumného agenta AI, podobně jako funkce "Deep Research" společnosti Perplexity.
Technical ArchitectureJak navrhnout recursivní vyhledávací systém pomocí Next.js 15, OpenAI a exa.ai, který skutečně funguje ve výrobě
Mental ModelsProč je hluboké vyhledávání stromovou strukturou, nikoliv lineárním procesem – a jak to změní vše o výzkumu AI
Practical SolutionsJak integrovat externí webové vyhledávání s interními vektorovými databázemi, abyste vytvořili skutečně jedinečný obsah, který vaši konkurenti nemohou replikovat
Performance OptimizationJak spravovat serverové zdroje a uživatelské zkušenosti během dlouhodobých operací AI bez narušení banky
Production-Ready CodeKonkrétní implementace TypeScript s využitím moderních technologických zásob, které můžete nasadit dnes
Na konci tohoto článku budete mít jasné pochopení toho, jak vybudovat vlastní SaaS pro hluboký výzkum, který lze integrovat do jakéhokoli produktu - což vám dává konkurenční výhodu, kterou je opravdu těžké replikovat.
1.1. The Technology Stack That Powers Intelligence
Pro implementaci našeho hlubokého výzkumného agenta AI používáme moderní technologickou hromadu optimalizovanou pro aplikace připravené k výrobě s intenzivním využitím umělé inteligence.
1.1.1. Frontend and Framework
React 19Nejnovější verze s vylepšeným výkonem a novými funkcemi souběžného renderování, které hladce zvládnou složité interakce s AI
Next.js 15Plně funkční rámec React s App Router, včetně podpory paralelních a přepisovacích tras (ideální pro složité pracovní postupy AI)
TypeScript 5Přísné psaní pro spolehlivost kódu a vynikající zkušenosti vývojářů při budování složitých systémů AI
1.1.2. AI and Integrations
OpenAI SDK (v4.96.2)Oficiální SDK pro integraci s GPT-4 a dalšími modely OpenAI s plnou podporou streamování
AI SDK (v4.1.45)Univerzální knihovna pro práci s různými poskytovateli umělé inteligence, která vám dává flexibilitu při přepínání modelů
Exa.js (v1.4.10)Specializovaný vyhledávač zaměřený na AI pro sémantické vyhledávání, které skutečně rozumí kontextu
1.1.3. UI and Styling
Tailwind CSS 4Utility-first CSS framework pro rychlý vývoj bez ztráty kvality designu
Radix UIBezhlavé komponenty pro vytváření přístupných rozhraní, které fungují na všech zařízeních
Lucide ReactModerní knihovna ikon s konzistentním designovým jazykem
shadcn/uiKomponentový systém postavený na Radix UI a Tailwind CSS pro profesionální rozhraní
1.1.4. Forms and Validation
React Hook FormVysoce výkonná knihovna pro zpracování formulářů, která nezpomaluje vaše rozhraní AI
ZodSchéma validace TypeScript-first s statickým psaním, které chyby zachycuje dříve, než dorazí do výroby
Hookform ResolversBezproblémová integrace mezi Zod a React Hook Form
1.1.5. Content Processing
React MarkdownZobrazování obsahu Markdown s podporou komponent pro zprávy bohaté na AI
date-fnsModerní knihovna pro zpracování dat v časových řádcích výzkumu AI
Why This Stack Matters
Tato technologie poskytujehigh performance, ,type safety, ascalabilityKaždá volba je zde záměrná – od paralelních tras Next.js 15, které se zabývají složitými pracovními postupy AI, až po Exa.js, které poskytují sémantické možnosti vyhledávání, které umožňují hluboký výzkum.
The result?Systém, který dokáže zvládnout výpočetní složitost recursivního výzkumu umělé inteligence při zachování standardů uživatelského zážitku, které moderní aplikace vyžadují.
Jste připraveni vidět, jak se tyto kousky hodí dohromady, aby vytvořily něco skutečně mocného?
Revoluce AI nepřichází – je tady. A vytváří silný rozdíl v komunitě vývojářů. Na jedné straně jsou ti, kteří vidí AI jako jen další nástroj pro zvýšení produktivity, pomocí ChatGPT pro psaní funkcí a debugování kódu. Na druhé straně jsou vývojáři, kteří rozumí základní pravdě:the real opportunity isn't in using AI—it's in building it.
Zatímco většina vývojářů se učí efektivněji prosazovat ChatGPT, menší skupina zvládá architekturu systémů, jako jsou Perplexity, Claude a vlastní agenti umělé inteligence.
The harsh realitySpolečnosti nepotřebují vývojáře, kteří mohou používat nástroje umělé inteligence – potřebují vývojáře, kteří mohou budovat systémy umělé inteligence.Rozdíl mezi těmito dvěma dovednostmi určí, kdo prosperuje a kdo se stává zastaralým v příštím ekonomickém cyklu.
Tento článek poskytuje kompletní architektonický blueprint pro budování vlastního agenta pro hluboký výzkum poháněného AI, podobně jako funkce "Deep Research" společnosti Perplexity. Dozvíte se nejen o technické implementaci, ale o mentálních modelech a designových principech, které oddělují amatérské integrace AI od systémů připravených k výrobě, které se mohou stát konkurenčními výhodami.
What you'll master by the end:
- Recursivní architektura vyhledávání: Jak navrhnout systémy, které myslí ve stromech, nikoliv liniích
- AI-first data pipelines: Integrace externího webového vyhledávání s interními znalostními databázemi
- Orchestrace agentů: budování systémů AI, které mohou vyhodnocovat, iterovat a zlepšovat vlastní výstupy
- Výrobní úvahy: Správa serverových zdrojů, časových úseků a uživatelských zkušeností pro dlouhodobé operace AI
Cílem není dát vám kód k kopírování. Je to přenést architektonické myšlení, které vám umožní navrhnout systémy AI pro jakoukoli doménu, případ použití a jakýkoli rozsah.
Připraveni přejít od spotřebitele AI k architektu AI?Pojďme se ponořit do toho, proč tradiční LLM potřebují "průvodce psa", aby efektivně navigoval na internetu.
2. Introduction: Life After ChatGPT Changed Everything
Úvod: Život po ChatGPT změnil všechnoChatGPT a další velké jazykové modely (LLM) zásadně změnily způsob, jakým komunikujeme s informacemi. ale pokud jste s těmito nástroji budovali vážné aplikace, pravděpodobně jste narazili na stejnou zeď, kterou jsem udělal: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
Týmy za ChatGPT, Claude a dalšími modely se to pokoušely vyřešit pomocí vestavěného webového vyhledávání.To zní skvěle v teorii, ale vykopejte hlouběji a najdete některé vážné architektonické nedostatky, které z něj činí nevhodné pro výrobní aplikace:
Surface-Level Search: Systém provádí jeden nebo dva vyhledávací dotazy, zachycuje první výsledky a nazývá to den.
Zero Follow-ThroughPokud první vyhledávání nepřináší komplexní výsledky, systém nepožádá o následné otázky nebo neprozkoumá alternativní úhly.
Garbage Data QualityTradiční vyhledávače vrátí HTML stránky zmatené reklamami, navigačními prvky a irelevantním obsahem.
Context IsolationSystém nemůže propojit nalezené informace s interními údaji, firemními dokumenty nebo databázemi znalostí specifickými pro danou doménu.
2.2. The Gold Standard: Perplexity's Deep Research Revolution
Perplexity byla první společností, která nám ukázala, jak by integrace vyhledávání-LLM měla skutečně fungovat.
AI-Optimized Search EnginesNamísto generických výzev Google API používají specializované vyhledávací systémy, které vracejí čistý, strukturovaný obsah určený pro spotřebu AI.
Iterative Investigation ProcessSystém se nezastaví na počátečních výsledcích, analyzuje zjištění, formuluje nové otázky a pokračuje ve vyhledávání, dokud nevytvoří komplexní obraz.
Deep Research ModeJedná se o autonomního agenta umělé inteligence, který může pracovat minuty najednou, recursivně vrtat do témat a shromažďovat informace z desítek zdrojů.
This is exactly the kind of system we're going to build together.
2.3. Why This Matters for Every Developer
V éře AI-první, každý produkt závodí, aby se stal "chytrější." Ale jednoduše připojení do rozhraní API ChatGPT je nyní jen stávka na stole.
- Aktuální informace z internetu v reálném čase
- Spojte veřejné údaje se svými vlastními databázemi znalostí
- Generovat jedinečné poznatky nemožné získat ze standardních LLM
- Přizpůsobte se vašim specifickým obchodním doménám a průmyslovým nuancím
2.4. What You'll Walk Away With
Mým cílem není dát vám kód k kopírování (i když toho dostanete spoustu). chci přenést mentální modely a architektonické principy, které vám umožní:
- Pochopte filozofii hlubokého výzkumu AI
- Navrhněte architekturu pro váš konkrétní případ použití
- Implementace systému pomocí moderních zásobníků (Next.js 15, OpenAI, exa.ai)
- Integrujte řešení do jakéhokoli stávajícího produktu
- Rozšiřte a optimalizujte systém podle vašich potřeb
Na konci tohoto článku budete mít kompletní architektonický blueprint a příklady kódu připravené k výrobě pro vytvoření vlastního "Perplexity" - agenta AI, který by se mohl stát tajnou zbraní vašeho produktu.
Important: Budeme studovat nejen technickou implementaci, ale i obchodní logiku.Proč je recursivní vyhledávání účinnější než lineární?Jak správně kombinujete externí a interní zdroje?Jaké UX vzory fungují pro dlouhodobé operace AI?Tyto otázky jsou stejně kritické jako kód.
2.5. For the Impatient: Skip to the Code
Pro ty, kteří již získali koncepty a chtějí se ponořit přímo do implementace, zde je řešení s otevřeným zdrojovým kódem, které budeme budovat:https://github.com/aifa-agi/aifa-deep-researcer-starter
https://github.com/aifa-agi/aifa-deep-researcer-starterOsobně nemohu vydržet články, které vám dávají spoustu slov a malou podstatu.Cítíte se volně klonovat repo a dostat se do vývojového režimu právě teď.
Pro tip: Budete narazit na časové omezení (403 chyb) na úrovni bezplatného hostingu společnosti Vercel ve výrobě, ale na localhost můžete plně experimentovat a studovat protokoly k obsahu vašeho srdce.
Připraveni vybudovat budoucnost výzkumu založeného na AI? Začněme tím, že pochopíme, proč LLM potřebují "průvodce psa", aby efektivně navigovali na internetu.
3. Why LLMs Need a "Guide Dog": The Critical Role of External Search Systems
Proč LLM potřebují "Guide Dog": Kritická role externích vyhledávacích systémůHere's a hard truth that many developers learn the expensive way: Large Language Models cannot independently access current information from the internetNejedná se o chybu – jde o základní architektonické omezení, které vyžaduje sofistikované řešení: integraci se specializovanými vyhledávacími systémy určenými pro spotřebu AI.
3.1. Why Traditional Search Engines Are AI Poison
Google, Bing a další tradiční vyhledávače byly postaveny pro lidi, kteří procházejí webem, ne pro stroje, které zpracovávají data.
- Reklamní bloky a zmatek v navigaci, které zaměňují extrakci obsahu
- Irelevantní obsah (komentáře, boční panely, stopy, bannery souborů cookie)
- Nestrukturovaná data, která vyžadují složité analýzy a často selhávají
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
Viděl jsem, že týmy tráví týdny budováním HTML analyzátorů, jen aby se zlomily pokaždé, když hlavní stránky aktualizují své rozložení.It's not scalable, and it's definitely not reliable.
3.2. Keyword Matching vs. Semantic Understanding: A World of Difference
Tradiční vyhledávače hledají přesné shody slov, zcela ignorují kontext a význam. Dotaz jako "Next.js optimalizace pro e-commerce" by mohl chybět vynikající článek o "zvýšení výkonu aplikace React v online obchodech", i když jsou to semanticky totožné témata.
To je jako mít výzkumného asistenta, který může najít knihy pouze tím, že odpovídá přesným slovům v názvu, zatímco ignoruje vše o skutečném obsahu.For AI agents doing deep research, this approach is fundamentally broken.
3.3. AI-Native Search Engines: The Game Changer
Specializované systémy jako Exa.ai, Metaphor a Tavily řeší základní problémy, které dělají tradiční vyhledávání nepoužitelným pro AI:
Semantic Query pochopení
Používají vektorové reprezentace k vyhledávání podle významu, ne pouze klíčových slov. Vaše AI může najít relevantní obsah, i když přesné termíny neodpovídají.
Čistá, strukturovaná data
Vrátí předběžně zpracovaný obsah bez HTML odpadků. Už žádné noční můry nebo rozbité extraktory.
Kontextuální povědomí
Rozumí předchozím dotazům a celkovému výzkumnému kontextu, což umožňuje skutečně iterativní výzkum.
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
Kvalita vašich vstupních dat přímo určuje kvalitu vašeho konečného výstupu z výzkumu.
Data ReliabilityStrukturovaný obsah bez potřeby křehkého analýzy HTML
ScalabilityStabilní rozhraní API určené pro automatizované použití s vysokým objemem
Cost Efficiency: Snížená výpočetní nadváha pro zpracování dat
Accuracy: Lepší zdrojová relevance vede k lepším konečným poznatkům
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
AI nativní vyhledávače nejsou jen technickým detailemthey're the architectural foundationBez správného "průvodce psa", i nejsofistikovanější LLM bude bojovat o vytvoření hluboké, přesné analýzy aktuálních informací.
Přemýšlejte o tom takto: Nebudete posílat brilantního výzkumníka do knihovny, kde jsou všechny knihy napsány v kódu a polovina stránek jsou reklamy.
The solution?V další části se budeme ponořit do specifických architektonických vzorů, které umožňují recursivní, hluboký výzkum.
Pojďme prozkoumat systémový design, který napomáhá skutečně inteligentním výzkumným agentům AI.
4. Think Like a Tree: The Architecture of Recursive Search
Myslete jako strom: Architektura recursivního hledáníLidský mozek přirozeně strukturuje složité informace jako hierarchické sítě.Když výzkumník zkoumá nové téma, nepohybuje se v přímé linii - vyvíjí síť znalostí podobnou stromu, kde každý nový objev vytváří další otázky a výzkumné směry.
4.1. The Fundamental Difference in Approaches
Tradiční vyhledávací systémy a vestavěné webové vyhledávání v LLM pracují lineárně: přijímat dotaz → provádět vyhledávání → vrátit výsledky → generovat odpovědi.
Problems with the Linear Approach:
- Výsledky na úrovni povrchu: systém se zastaví při prvních skutečnostech, které najde
- Žádná kontextová kontinuita: Každý vyhledávací dotaz je izolován od předchozích
- Chybějící spojení: Systém nevidí vztahy mezi různými aspekty tématu
- Náhodná kvalita: Výsledky zcela závisí na štěstí počátečního dotazu
Přístup založený na stromech tyto problémy řeší modelováním přirozeného procesu lidského výzkumu.Každý objevený zdroj může generovat nové otázky, které se stávají oddělenými výzkumnými odvětvími.
4.2. Anatomy of a Search Tree
Podívejme se na strukturu hlubokého vyhledávacího stromu s konkrétním příkladem:
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 branchesjsou hlavní aspekty tématu, které LLM generuje na základě analýzy původního dotazu.V našem příkladu se jedná o výkon, náklady a SEO. Tyto podtémata nejsou tvořeny náhodně - LLM analyzuje sémantický prostor dotazu a identifikuje klíčové směry výzkumu.
Tree leaves are specific sources (articles, documents, studies) found for each sub-query. Each leaf contains factual information that will be included in the final report.
Recursive branchesJedná se o nejsilnější funkci této architektury.Když systém analyzuje nalezené zdroje, může objevit nové aspekty tématu, které vyžadují další vyšetřování.Tyto aspekty se stávají novými sub-požadavky, vytvářejí své vlastní pobočky.
4.3. Practical Advantages of Tree Architecture
Research CompletenessMísto náhodné sbírky faktů systém vytváří logicky propojenou mapu znalostí, kde má každý prvek své místo v celkové struktuře.
Adaptive Depth: Systém automaticky určuje, které směry vyžadují hlubší vyšetřování. Pokud jedna pobočka přináší mnoho relevantních zdrojů, systém může jít hlouběji.
Contextual ConnectivityKaždý nový vyhledávací dotaz je vytvořen s přihlédnutím k již nalezeným informacím, což umožňuje přesnější a konkrétnější otázky než izolované vyhledávání.
Quality AssessmentNa každé úrovni stromu může systém vyhodnotit relevanci a kvalitu nalezených zdrojů, filtrovat hluk a soustředit se na nejcennější informace.
4.4. Managing Tree Parameters
Search Depthurčuje, kolik úrovní rekurze může systém provádět. Hloubka 1 znamená pouze hlavní podpořady bez dalšího vrtání. Hloubka 3-4 umožňuje skutečně podrobné vyšetřování.
Search Widthovládá počet sub-pohledů na každé úrovni. Příliš velká šířka může vést k povrchnímu zkoumání mnoha směrů. Optimální šířka je obvykle 3-5 hlavních směrů na úrovni.
Branching Factorje průměrný počet dětských uzlů pro každý stromový uzel. V kontextu vyhledávání informací to odpovídá počtu nových podpožadavků generovaných na základě každého nalezeného zdroje.
4.5. Optimization and Problem Prevention
Cycle PreventionSystém musí sledovat již zkoumané směry, aby se zabránilo nekonečným recursivním kruhům.
Dynamic PrioritizationVíce slibné pobočky by měly být vyšetřovány s větší hloubkou, zatímco méně informativní směry mohou být ukončeny dříve.
Parallel InvestigationRůzné větve stromů lze zkoumat paralelně, což výrazně urychluje proces, pokud jsou k dispozici dostatečné výpočetní zdroje.
Memory and Caching: Search results should be cached to avoid repeated requests to external APIs when topics overlap.
Execution Time and Server TimeoutsToto je další problém, který se často projevuje při provádění hlubokého výzkumu, zejména pokud hloubka přesahuje dvě úrovně.Můžete říci, že zvýšení úrovně exponenciálně zvyšuje složitost výzkumu.
4.6. The Bottom Line: From Chaos to System
Stromová architektura přeměňuje chaotický proces vyhledávání informací na systematické vyšetřování, kde má každý prvek své místo v celkové struktuře znalostí.To umožňuje agentu AI pracovat jako zkušený výzkumník – nejen shromažďovat fakta, ale budovat komplexní pochopení zkoumaného tématu.
The result?Systém AI, který myslí jako lidský výzkumník, ale pracuje v strojním měřítku a rychlosti.V další části se ponoříme do technické implementace, která činí tuto architektonickou vizi realitou.
Jste připraveni vidět, jak tento koncepční rámec překládáme do výrobního kódu?Pojďme prozkoumat technickou hromadu, která posiluje recursivní inteligenci.
5. The "Search-Evaluate-Deepen" Cycle: Implementing True Recursion
Cyklus „Hledání – hodnocení – hloubání“: Implementace pravé recursionRecursivní analýza internetu není jen technickou vlastností – je to základní nutnost pro vytvoření skutečně inteligentních agentů umělé inteligence. První stránka jakéhokoli výsledku vyhledávání ukazuje pouze špičku informačního ledovce.
5.1. Data Architecture for Deep Investigation
Ve výrobních implementacích systém pracuje se strukturovanými datovými typy, které hromadí znalosti na každé úrovni rekurze:
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[];
};
Tato datová struktura akumuluje znalosti na každé úrovni rekurze, což vytváří jednotný kontext pro celé vyšetřování - přesně to, co odděluje profesionální výzkum od náhodného shromažďování faktů.
5.2. Stage 1: "Search" — Intelligent Query Generation
Systém se nespoléhá na jediný vyhledávací dotaz. Místo toho generuje více cílených dotazů pomocí LLM inteligence:
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• Thebreadth
parametr ovládá šířku výzkumu – počet různých aspektů témat, které budou vyšetřovány paralelně.Tady se děje kouzlo: místo lineárního vyhledávání získáte exponenciální pokrytí.
5.3. Stage 2: "Evaluate" — AI-Driven Result Filtering
Ne všechny nalezené zdroje jsou stejně cenné. systém používá AI agenta s nástroji pro inteligentní vyhodnocení každého výsledku:
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 approachSystém používá AI agenta s nástroji, které mohou opakovaně vyhledávat a vyhodnocovat výsledky, dokud nenajde dostatečné relevantní informace.
5.4. Vector Knowledge Base Integration
Pro každý dotaz systém současně vyhledává internet a svou vlastní vektorovou znalostní základnu:
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
In the main research loop, the system queries both sources in parallel:
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
Fáze 3: „Hluboká“ – generování následných otázekNejsilnější vlastnost: schopnost systému generovat nové výzkumné směry na základě již nalezených informací:
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
Každý nalezený zdroj je analyzován, aby se získaly nové otázky, které se stanou základem pro další úroveň vyhledávání:
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
Realizace výroby ukazuje, jak řídit exponenciální růst složitosti:
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)
na každé úrovni brání exponenciálnímu růstu
Thought Vector• :vectorOfThought
umožňuje zaměřit výzkum na konkrétní oblasti
Context Accumulation: All results are preserved in a unified data structure
5.10. The Hybrid Advantage in Practice
Creating Unique ContentKombinace veřejných dat s interními znalostmi umožňuje vytvářet zprávy, které nikdo jiný nemůže replikovat.Vaši konkurenti mohou mít přístup ke stejným veřejným zdrojům, ale ne k vašim interním případům, statistikám a odborným znalostem.
Context EnrichmentExterní data poskytují měnu a šířku, interní data poskytují hloubku a specificitu.Systém může najít obecné trendy v oboru online, poté je doplnit vlastními údaji o tom, jak tyto trendy ovlivňují vaše podnikání.
Maintaining CurrencyI když jsou webové informace zastaralé nebo nepřesné, vaše interní znalostní základna může poskytnout čerstvější a ověřené údaje.
6. From Chaos to Order: Generating Expert-Level Reports
Od chaosu k pořádku: generování zpráv na odborné úrovniPo dokončení všech úrovní recursivního vyhledávání systém hromadí obrovské množství rozdílných informací: výsledky vyhledávání na webu, vektorové databáze, generované učení a následné otázky.
6.1. Context Accumulation: Building the Complete Picture
Veškeré shromážděné údaje jsou sloučeny do jednohoResearch
Struktura, která slouží jako úplný kontext pro konečnou syntézu:
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 storageJe to komplexní graf znalostí, který zachycuje celou cestu vyšetřování.Každý pohled, každý zdroj, každé spojení je zachováno pro konečnou syntézu.
6.2. The Master Prompt: Where Intelligence Meets Synthesis
Kvalita závěrečné zprávy přímo závisí na sofistikovanosti generace prompt. Systém používá pro syntézu nejsilnější model 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 insightNežádáme pouze AI, aby shrnuje - poskytujeme jí kompletní datový soubor výzkumu a žádáme ji, aby přemýšlela jako odborník v oblasti.
6.3. Structured Output: Beyond Simple Summaries
The system doesn't just create a text summary — it generates structured documents with headers, tables, pro/con lists, and professional formatting, as shown in the result saving:
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?Je to perfektní formát pro obsah generovaný umělou inteligencí – dostatečně strukturovaný pro profesionální prezentaci, dostatečně flexibilní pro různé výstupní formáty a čitelný v jakémkoli moderním vývojovém pracovním postupu.
6.4. Quality Control Through System Prompts
TytosystemPrompt
umožňuje přizpůsobit styl a strukturu zpráv pro konkrétní potřeby:
- Akademický styl pro výzkumné práce a vědeckou analýzu
- Business format for corporate reports and executive summaries
- Technická dokumentace pro obsah zaměřený na vývojáře
- Investiční analýza pro finanční a strategické zprávy
// Example: Business-focused system prompt const businessSystemPrompt = `You are a senior business analyst creating an executive report. Structure your analysis with:
- Výkonné shrnutí
- Klíčové zjištění
- Tržní důsledky
- Doporučení
- Hodnocení rizik
Use data-driven insights and provide specific examples from the research.`;
6.5. The Intelligence Multiplier Effect
Here's what makes this approach revolutionary: The system doesn't just aggregate information — it synthesizes insights that emerge from the connections between different sources. A human researcher might spend 8-12 hours conducting this level of investigation. Our system does it in 10-60 minutes, often uncovering connections that humans miss.
6.6. Production Considerations
Memory Management: Při hlubokém výzkumu (hloubka 3-4) se nahromaděný kontext může stát masivním.
Token Optimization: The final synthesis prompt can easily exceed token limits. Production implementations need smart truncation strategies that preserve the most valuable insights.
Quality AssuranceNe všechny generované zprávy jsou si rovny.Zvažte zavedení mechanismů pro hodnocení úplnosti a soudržnosti zprávy.
6.7. Real-World Impact
Time Compression: Hodiny lidského výzkumu → Minuty analýzy AI
Depth EnhancementUmělá inteligence může zpracovávat a propojovat více zdrojů, než je lidsky možné
ConsistencyKaždá zpráva se řídí stejnou přísnou metodikou
Scalabilitygenerovat desítky zpráv současně
7. Conclusion: Building the Future of AI Research
Závěr: Budování budoucnosti výzkumu AIVytvoření hlubokého výzkumného agenta AI není jen technickou výzvou – je to architektonické řešení, které se může stát konkurenční výhodou pro jakýkoliv produkt.
7.1. Key Architectural Principles
Think in Trees, Not LinesHluboké vyhledávání je o zkoumání stromově strukturovaných informačních sítí, kde každý objev vytváří nové otázky a směry výzkumu.
Use AI-Native ToolsSpecializované vyhledávače jako exa.ai nejsou volitelné – jsou nezbytné pro kvalitní výzkum.Vrátí čisté údaje namísto HTML odpadků, které tradiční vyhledávací rozhraní poskytují.
Apply Recursion for Depth: První stránka výsledků je jen špičkou ledovce.Skutečné poznatky spočívají v recursivním prohlubování prostřednictvím cyklu „Search-Evaluate-Deepen“.
Combine External and Internal SourcesSynergie mezi veřejnými internetovými daty a soukromými organizačními znalostmi vytváří jedinečný obsah, který nelze získat žádným jiným způsobem.
Use LLMs for Both Analysis and SynthesisAgenti umělé inteligence s nástroji mohou nejen hledat informace, ale také vyhodnotit jejich relevanci, generovat nové otázky a vytvářet strukturované zprávy.
7.2. Production-Ready Results
Implementace založená na Next.js 15, OpenAI a exa.ai demonstruje, že takový systém lze postavit a nasadit do výroby.https://github.com/aifa-agi/aifa-deep-researcer-starterObsahuje všechny klíčové komponenty:
- Recursivní architektura s řízením hloubky a šířky
- Integrace webového vyhledávání s vektorovými databázemi znalostí
- AI agenti s nástroji pro hodnocení výsledků
- Generace expertních zpráv s možností ukládání souborů
7.3. Challenges and Limitations
Server TimeoutsVýzkum s hloubkou větší než 2 úrovně může trvat hodiny, což vyžaduje speciální řešení pro výrobní prostředí.
Exponential Complexity GrowthKaždá úroveň hloubky zvyšuje počet dotazů geometricky, což vyžaduje pečlivé řízení zdrojů.
Source QualityDokonce i vyhledávače AI mohou vrátit nepřesné informace, které vyžadují dodatečné ověření a ověření skutečností.
7.4. Your Next Steps
Nyní máte kompletní architektonický blueprint a skutečné příklady kódu.
Start with Minimal Implementation: Použijte základní verzi z tohoto článku pro prototypování
Explore the Ready Solution• klonováníhttps://github.com/aifa-agi/aifa-deep-researcer-starterExperimenty na místní úrovni
Adapt to Your NeedsIntegrujte tyto principy do stávajících produktů a pracovních postupů
8. Homework Challenge: Solving the Long-Wait UX Problem
Domácí úkoly: Řešení dlouho očekávaného problému UXPokrývali jsme technickou architekturu hlubokého výzkumu agentů AI, ale zůstává kriticky důležitý problém UX: co děláte, když systém funguje několik minut, zatímco uživatel se dívá na prázdnou obrazovku?
8.1. The Problem: Server Silence Kills Trust
Na rozdíl od typických webových aplikací, kde operace trvají vteřiny, hluboké výzkumné agenty umělé inteligence mohou mlčet několik minut.
- Čekání úzkosti: Uživatelé nevědí, zda systém funguje nebo je zmrazen
- Ztráta kontroly: žádný způsob, jak pochopit, jak dlouho čekat
- Pokles důvěry: Zdá se, že aplikace je narušena nebo požadavek je „vyžádaný“
- Vysoká míra odbočení: Uživatelé zavírají kartu bez čekání na výsledky
Perplexity, Claude a další moderní produkty AI to řeší interaktivními animacemi, ukazateli pokroku a dynamickými náznaky.
8.2. The Developer Challenge
Představte si toto technické omezení: vaše Next.js API trasa provádí dlouhou operaci (hluboký výzkum) a nemůže odesílat průběžná data až do dokončení. Frontend dostane odpověď pouze na samém konci. Klasická řešení jako Server-Sent Events nebo WebSockets nemusí být k dispozici kvůli omezením hostingu nebo architektonickým omezením.
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:
- Jaké vzorce UX byste použili k vizualizaci hlubokých vyhledávacích procesů, když je server „tichý“?
- Jak můžete simulovat „živý“ pokrok i bez aktuálních aktualizací stavu serveru?
- Měli byste používat falešné postupové lišty, nebo to porušuje důvěru uživatelů?
- Jaké animace a mikrointerakce pomáhají vytvořit pocit „živého“ systému?
User Communication:
- Jak uživatelům vysvětlujete, proč čekání může být dlouhé? Jaké texty/ilustrace použít?
- Měli byste uvést odhadované doby čekání, pokud se mohou výrazně lišit (2 až 60 minut)?
- Jak vizualizujete procesní fáze („Vytváření vyhledávacích dotazů...“, „Analyzování zdrojů...“, „Vytváření expertní zprávy...“)?
- Jaké metafory pomáhají uživatelům pochopit hodnotu čekání?
Technical Implementation:
- Jaké optimistické přístupy uživatelského rozhraní lze aplikovat bez zpětné vazby serveru?
- Jak implementovat "konverzační" rozhraní, které podporuje uživatele během čekání?
- Můžete použít lokální výpočty (Web Workers, WASM) k simulaci pokroku?
- Jak uspořádat elegantní degradaci, pokud uživatelé zavřou kartu během výzkumu?
8.4. Learning from the Best
Studijní řešení implementovaná v Perplexity Deep Research, Bing Copilot, Google Search Generative Experience. Co můžete vzít z obrazovek pro načítání her, které udržují pozornost na několik minut?
RememberV éře okamžitých odpovědí ChatGPT se kvalitní čekání může stát konkurenční výhodou.Uživatelé jsou ochotni počkat, pokud chápou hodnotu procesu a cítí, že systém pro ně funguje.
9. About the Author and AIFA Project
O autorovi a projektu AIFAo autorovi ,Roman Bolševický, ve své nedávné sérii publikací podrobně popisuje nástroje a architektonická řešení, která implementuje ve svém ambiciózním open-source projektuAifa(AI agenti v rozvíjející se a sebe-replikující architektuře).
Ve své současné implementaci AIFA již představuje impozantní šablonu pro vytváření aplikací založených na umělé inteligenci s jedinečným uživatelským rozhraním, kde se umělá inteligence stává primární metodou interakce, zatímco tradiční webové rozhraní slouží jako pomocná vizualizace.
Dlouhodobým cílem projektu je evoluce do plnohodnotného systému AGI, ve kterém budou agenti AI schopni:
- autonomní vývoj a zlepšování jejich algoritmů
- Samoreprodukce a vytváření nových specializovaných agentů
- Konkurence a spolupráce v distribuovaném prostředí
- Autonomní provoz v webových prostorách a blockchainových sítích
Hluboké hledání, které je v tomto článku pokryto, je jen jednou ze základních dovedností budoucích agentů AGI, kteří budou schopni nejen zkoumat informace, ale také činit rozhodnutí, vytvářet produkty a interagovat s reálným světem.
Pokud máte zájem sledovat vývoj projektu a experimentovat s nejmodernějšími technologiemi AI, neváhejteAIFA RepositoryKaždý závazek nás přivádí blíže k vytvoření skutečně autonomní umělé inteligence.
Ready to build the future?Kód je otevřený, architektura je osvědčená a možnosti jsou neomezené.Vaše další průlom v AI-powered výzkumu je jen klon git daleko.