Budowa własnej niepewności: architektura za głębokimi badaniami opartymi na AI ✔️ Przebudzenie dla deweloperów Wielu programistów straci pracę na AI w nadchodzących latach, ale nie tych, którzy uczą się go budować. Twoja misja to nie tylko nauczyć się używać ChatGPT lub Claude – to stać się twórcą takich systemów, budować następną Perplexity, a nie po prostu używać go. ✔️ Przebudzenie dla deweloperów Wielu programistów straci pracę na AI w nadchodzących latach, ale nie tych, którzy uczą się go budować. Twoja misja to nie tylko nauczyć się używać ChatGPT lub Claude – to stać się twórcą takich systemów, budować następną Perplexity, a nie po prostu używać go. Źródło otwarte : https://github.com/aifa-agi/aifa-deep-researcer-starter/ 1. What You'll Master by Reading This Article Co zdobędziesz czytając ten artykuł Ten artykuł zawiera kompletny projekt architektoniczny do budowania własnego głębokiego agenta badawczego AI, podobnego do funkcji "Głębokie badania" w Perplexity. Jak zaprojektować system wyszukiwania nawrotnego z wykorzystaniem Next.js 15, OpenAI i exa.ai, które faktycznie działają w produkcji Technical Architecture Dlaczego wyszukiwanie głębokie jest strukturą drzewa, a nie procesem liniowym – i jak to zmienia wszystko na temat badań nad AI Mental Models Jak zintegrować zewnętrzne wyszukiwanie internetowe z wewnętrznymi bazami wiedzy wektorowej, aby stworzyć naprawdę unikalną zawartość, której Twoi konkurenci nie mogą powtórzyć Practical Solutions Jak zarządzać zasobami serwera i doświadczeniem użytkownika podczas długotrwałych operacji AI bez złamania banku Performance Optimization Wdrożenia typu TypeScript z wykorzystaniem nowoczesnych technologii, które można wdrożyć już dziś Production-Ready Code Pod koniec tego artykułu będziesz miał jasne zrozumienie, jak zbudować samodzielnie hostowany SaaS do głębokich badań, które można zintegrować z dowolnym produktem - dając ci przewagę konkurencyjną, która jest naprawdę trudna do powtórzenia. 1.1. The Technology Stack That Powers Intelligence W celu wdrożenia naszego głębokiego agenta badawczego AI używamy nowoczesnej technologii zoptymalizowanej do zastosowań gotowych do produkcji z intensywnym wykorzystaniem sztucznej inteligencji. 1.1.1. Frontend and Framework Najnowsza wersja z ulepszoną wydajnością i nowymi funkcjami równoczesnego renderowania, które płynnie radzą sobie ze złożonymi interakcjami AI React 19 Pełne ramy React z routerem aplikacji, w tym wsparcie dla tras równoległych i przechwytywania (doskonałe dla złożonych przepływów pracy AI) Next.js 15 - rygorystyczne pisanie dla niezawodności kodu i doskonałego doświadczenia dewelopera przy budowie złożonych systemów AI TypeScript 5 1.1.2. AI and Integrations — Oficjalny SDK do integracji z GPT-4 i innymi modelami OpenAI, z pełnym wsparciem dla strumieniowania OpenAI SDK (v4.96.2) Uniwersalna biblioteka do pracy z różnymi dostawcami AI, zapewniając elastyczność w przełączaniu modeli AI SDK (v4.1.45) - wyspecjalizowana wyszukiwarka zorientowana na sztuczną inteligencję dla wyszukiwania semantycznego, które naprawdę rozumie kontekst Exa.js (v1.4.10) 1.1.3. UI and Styling Utility-first framework CSS dla szybkiego rozwoju bez poświęcania jakości projektowania Tailwind CSS 4 Komponenty bezgłowne do tworzenia dostępnych interfejsów, które działają na wszystkich urządzeniach Radix UI Nowoczesna biblioteka ikon z spójnym językiem projektowania Lucide React — System komponentów oparty na Radix UI i Tailwind CSS dla profesjonalnych interfejsów shadcn/ui 1.1.4. Forms and Validation Wysokowydajna biblioteka do obsługi formularzy, która nie spowalnia interfejsów AI React Hook Form Schemat walidacji TypeScript-first z statycznym pisaniem, który łapie błędy, zanim dotrą do produkcji Zod Łatwa integracja z Zod i React Hook Form Hookform Resolvers 1.1.5. Content Processing Rendering zawartości Markdown z obsługą komponentów dla bogatych raportów generowanych przez AI React Markdown — Nowoczesna biblioteka do przetwarzania dat w czasach badań AI date-fns Why This Stack Matters Ta technologia stack zapewnia , , oraz Każdy wybór tutaj jest celowy – od równoległych tras Next.js 15 obsługujących złożone przepływy pracy AI, do Exa.js zapewniających możliwości wyszukiwania semantycznego, które umożliwiają głębokie badania. high performance type safety scalability System, który może obsługiwać złożoność obliczeniową badań w zakresie rekursywnej sztucznej inteligencji przy jednoczesnym utrzymaniu standardów doświadczenia użytkownika, których wymagają nowoczesne aplikacje. The result? Gotowy, aby zobaczyć, jak te kawałki pasują do siebie, aby stworzyć coś naprawdę potężnego? Rewolucja sztucznej inteligencji nie nadchodzi – jest tutaj. I stwarza silny podział w społeczności deweloperów. Z jednej strony są ci, którzy postrzegają sztuczną inteligencję jako tylko inne narzędzie do zwiększenia wydajności, używając ChatGPT do pisania funkcji i debugowania kodu. Z drugiej strony są deweloperzy, którzy rozumieją podstawową prawdę: . the real opportunity isn't in using AI—it's in building it Podczas gdy większość programistów uczy się skuteczniej zachęcać do ChatGPT, mniejsza grupa opanowuje architekturę systemów takich jak Perplexity, Claude i niestandardowe agenci AI. Firmy nie potrzebują deweloperów, którzy mogą korzystać z narzędzi sztucznej inteligencji – potrzebują deweloperów, którzy mogą budować systemy sztucznej inteligencji.Różnica między tymi dwoma umiejętnościami określi, kto rozwija się, a kto staje się przestarzały w następnym cyklu gospodarczym. The harsh reality Ten artykuł zawiera kompletny plan architektoniczny na budowę własnego agenta badawczego zasilającego AI, podobnego do funkcji "Deep Research" firmy Perplexity.Uczysz się nie tylko implementacji technicznej, ale także mentalnych modeli i zasad projektowania, które oddzielają amatorskie integracje AI od gotowych do produkcji systemów, które mogą stać się przewagą konkurencyjną. : What you'll master by the end Recursywna architektura wyszukiwania: jak zaprojektować systemy, które myślą w drzewach, a nie liniach AI-first data pipelines: integracja zewnętrznych wyszukiwań internetowych z wewnętrznymi bazami wiedzy Organizacja agentów: budowanie systemów sztucznej inteligencji, które mogą oceniać, iterować i ulepszać własne wyniki Uwagi dotyczące produkcji: Zarządzanie zasobami serwera, czasami i doświadczeniem użytkownika dla długotrwałych operacji AI Celem nie jest dać ci kodu do kopiowania. Jest to przekazanie myślenia architektonicznego, które pozwoli ci zaprojektować systemy AI dla dowolnej domeny, dowolnego przypadku użytkowania i dowolnej skali. Przygotowani do przejścia od konsumenta AI do architekta AI?Zastanówmy się, dlaczego tradycyjne LLM potrzebują "psa przewodnika", aby skutecznie poruszać się po Internecie. 2. Introduction: Life After ChatGPT Changed Everything Wprowadzenie: Życie po ChatGPT zmieniło wszystko Żyjemy w jednym z najbardziej transformacyjnych okresów w historii technologii. ChatGPT i inne duże modele językowe (LLM) zasadniczo zrewolucjonizowały sposób, w jaki współdziałamy z informacjami. . 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 Zespoły stojące za ChatGPT, Claude i innymi modelami próbowały to rozwiązać za pomocą wbudowanego wyszukiwania internetowego.To brzmi świetnie w teorii, ale wykopać głębiej i znajdziesz kilka poważnych wad architektonicznych, które sprawiają, że nie nadaje się do zastosowań produkcyjnych: : System wykonuje jedno lub dwa zapytania wyszukiwania, przechwytuje pierwsze kilka wyników i nazywa to dniem. Surface-Level Search Jeśli pierwsze wyszukiwanie nie przynosi kompleksowych wyników, system nie zadaje pytań następczych ani nie bada alternatywnych kątów. Zero Follow-Through Tradycyjne wyszukiwarki zwracają strony HTML zatłoczone reklamami, elementami nawigacji i nieistotnymi treściami. Garbage Data Quality System nie może połączyć znalezionych informacji z wewnętrznymi danymi, dokumentami firmy lub bazami wiedzy specyficznymi dla danej domeny. Context Isolation 2.2. The Gold Standard: Perplexity's Deep Research Revolution Perplexity była pierwszą firmą, która pokazała nam, jak naprawdę powinna działać integracja z LLM. Zamiast ogólnych połączeń Google API, używają wyspecjalizowanych systemów wyszukiwania, które zwracają czyste, ustrukturyzowane treści przeznaczone do konsumpcji AI. AI-Optimized Search Engines System analizuje wyniki, formułuje nowe pytania i kontynuuje wyszukiwanie, aż zbuduje kompleksowy obraz. Iterative Investigation Process Jest to autonomiczny agent sztucznej inteligencji, który może pracować przez kilka minut, powtarzając się w tematy i zbierając informacje z kilkudziesięciu źródeł. Deep Research Mode This is exactly the kind of system we're going to build together. 2.3. Why This Matters for Every Developer W erze AI-first, każdy produkt jest wyścig, aby stać się "mądrzejszy." Ale po prostu podłączanie do API ChatGPT jest teraz tylko zakładami stołowymi. Badanie aktualnych informacji z Internetu w czasie rzeczywistym Łącz dane publiczne z własnymi bazami wiedzy Tworzenie unikalnych wglądów niemożliwych do uzyskania ze standardowych LLM Dostosowane do Twojej konkretnej branży i branżowych niuansów 2.4. What You'll Walk Away With Moim celem nie jest dać ci kodu do kopiowania (chociaż dostaniesz dużo tego). chcę przenieść mentalne modele i zasady architektoniczne, które pozwolą ci: Zrozum filozofię za głębokim badaniem AI Zaprojektuj architekturę dla konkretnego przypadku użytkowania Wdrażanie systemu przy użyciu nowoczesnych stosów (Next.js 15, OpenAI, exa.ai) Integracja rozwiązania z każdym istniejącym produktem skalowanie i optymalizacja systemu zgodnie z Twoimi potrzebami Pod koniec tego artykułu będziesz miał kompletny plan architektoniczny i gotowe do produkcji przykłady kodu do budowania własnej "Zapomnienia" - agenta sztucznej inteligencji, który mógłby stać się tajną bronią Twojego produktu. : Będziemy badać nie tylko wdrażanie techniczne, ale także logikę biznesową.Dlaczego wyszukiwanie nawrotne jest bardziej skuteczne niż liniowe?Jak prawidłowo łączyć źródła zewnętrzne i wewnętrzne?Jakie wzorce UX działają dla długotrwałych operacji AI?Te pytania są równie ważne jak kod. Important 2.5. For the Impatient: Skip to the Code Dla tych, którzy już posiadają koncepcje i chcą zanurzyć się bezpośrednio w implementacji, oto rozwiązanie open-source, które zbudujemy: https://github.com/aifa-agi/aifa-deep-researcer-starter https://github.com/aifa-agi/aifa-deep-researcer-starter Osobiście nie mogę wytrzymać artykułów, które dają ci wiele słów i niewielką substancję.Czuć się swobodnie, aby klonować repo i pobrać go w trybie rozwoju teraz. : Uderzysz w ograniczenia czasu (403 błędy) na darmowym poziomie hostingu Vercel w produkcji, ale na localhost możesz w pełni eksperymentować i studiować dzienniki do treści swojego serca. Pro tip Zacznijmy od zrozumienia, dlaczego LLM potrzebują "psa przewodnika", aby skutecznie poruszać się po Internecie. 3. Why LLMs Need a "Guide Dog": The Critical Role of External Search Systems Dlaczego LLM potrzebuje "psa przewodnika": krytyczna rola zewnętrznych systemów wyszukiwania Oto trudna prawda, że wielu programistów uczy się drogiego sposobu: Nie jest to błąd – jest to podstawowe ograniczenie architektoniczne, które wymaga wyrafinowanego rozwiązania: integracji ze specjalistycznymi systemami wyszukiwania przeznaczonymi do konsumpcji sztucznej inteligencji. Large Language Models cannot independently access current information from the internet 3.1. Why Traditional Search Engines Are AI Poison Google, Bing i inne tradycyjne wyszukiwarki zostały zbudowane dla ludzi przeglądających sieć, a nie dla maszyn przetwarzających dane. Bloki reklam i bałagan nawigacyjny, które zakłócają ekstrakcję treści Nieistotne treści (komentarze, paski boczne, stopy, banery cookie) Dane niestrukturyzowane, które wymagają złożonego analizowania i często się nie udają 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 Widziałem, że zespoły spędzają tygodnie budując analizatory HTML, tylko po to, aby za każdym razem, gdy główna strona aktualizuje swój układ. It's not scalable, and it's definitely not reliable. 3.2. Keyword Matching vs. Semantic Understanding: A World of Difference Tradycyjne wyszukiwarki szukają dokładnych dopasowania słów, całkowicie ignorując kontekst i znaczenie. zapytanie takie jak "Next.js optymalizacja dla e-commerce" może pominąć doskonały artykuł na temat "wzmocnienia wydajności aplikacji React w sklepach internetowych", nawet jeśli są to semantycznie identyczne tematy. To jest jak posiadanie asystenta badawczego, który może znaleźć książki tylko poprzez dopasowanie dokładnych słów w tytule, ignorując wszystko o rzeczywistej treści. For AI agents doing deep research, this approach is fundamentally broken. 3.3. AI-Native Search Engines: The Game Changer Specjalistyczne systemy takie jak Exa.ai, Metaphor i Tavily rozwiązują podstawowe problemy, które sprawiają, że tradycyjne wyszukiwanie jest bezużyteczne dla sztucznej inteligencji: Semantyczne poszukiwania zrozumienia Używają wektorowych reprezentacji do wyszukiwania według znaczenia, a nie tylko słów kluczowych. Twoja sztuczna inteligencja może znaleźć odpowiednią zawartość nawet wtedy, gdy dokładne terminy nie pasują. Czyste, zorganizowane dane Zwracają wstępnie przetworzone treści bez śmieci HTML. Kontekstualna świadomość Rozumieją wcześniejsze zapytania i ogólny kontekst badań, umożliwiając prawdziwie iteracyjne badania. 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 Jakość Twoich danych wejściowych bezpośrednio decyduje o jakości Twojego końcowego wyniku badań. Strukturowana zawartość bez potrzeby kruchej analizy HTML Stabilne interfejsy API zaprojektowane z myślą o zautomatyzowanym użyciu o dużej objętości : Zmniejszona obliczeniowa nadwaga do przetwarzania danych : Lepsze znaczenie źródła prowadzi do lepszych wglądu końcowego Data Reliability Scalability 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 Inteligentne wyszukiwarki to nie tylko szczegóły techniczne Bez odpowiedniego "psa przewodnika", nawet najbardziej wyrafinowany LLM będzie zmagać się z tworzeniem głębokiej, dokładnej analizy bieżących informacji. they're the architectural foundation Pomyśl o tym w ten sposób: nie wysłałbyś genialnego badacza do biblioteki, w której wszystkie książki są napisane w kodzie, a połowa stron to reklamy. W następnej sekcji zanurzymy się w specyficznych wzorach architektury, które umożliwiają powtarzające się, głębokie badania. The solution? Przygotowani, aby zobaczyć, jak elementy pasują do siebie?Zobaczmy projekt systemu, który wspiera prawdziwie inteligentnych agentów badawczych AI. 4. Think Like a Tree: The Architecture of Recursive Search Myśl jak drzewo: Architektura poszukiwań recursywnych Ludzki mózg naturalnie strukturuje złożone informacje jako sieci hierarchiczne.Kiedy badacz bada nowy temat, nie porusza się w linii prostej - rozwija sieć wiedzy podobną do drzewa, w której każde nowe odkrycie generuje dodatkowe pytania i kierunki badań. 4.1. The Fundamental Difference in Approaches Tradycyjne systemy wyszukiwania i wbudowane wyszukiwanie internetowe w LLM działają liniowo: otrzymuj zapytanie → wykonaj wyszukiwanie → zwracaj wyniki → generuj odpowiedzi. Problems with the Linear Approach: Wyniki na poziomie powierzchni: system zatrzymuje się przy pierwszych faktach, które znajduje Brak ciągłości kontekstu: każde zapytanie wyszukiwania jest odizolowane od poprzednich Brakujące połączenia: system nie widzi relacji między różnymi aspektami tematu Jakość losowa: wyniki zależą całkowicie od szczęścia pierwotnego zapytania Podejście oparte na drzewie rozwiązuje te problemy poprzez modelowanie naturalnego procesu badań ludzkich.Każde odkryte źródło może generować nowe pytania, które stają się odrębnymi gałęziami badań. 4.2. Anatomy of a Search Tree Przyjrzyjmy się strukturze głębokiego drzewa wyszukiwania za pomocą konkretnego przykładu: 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 są głównymi aspektami tematu, które LLM generuje w oparciu o analizę pierwotnego zapytania. W naszym przykładzie są to wydajność, koszty i SEO. Te podtyki nie są tworzone losowo - LLM analizuje semantyczną przestrzeń zapytania i identyfikuje kluczowe kierunki badań. First-level branches Są to konkretne źródła (artykuły, dokumenty, studia) znalezione dla każdego pod-wniosku.Każda strona zawiera informacje faktyczne, które zostaną uwzględnione w raporcie końcowym. Tree leaves są najpotężniejszą cechą tej architektury. Gdy system analizuje znalezione źródła, może odkryć nowe aspekty tematu, które wymagają dodatkowego badania. Recursive branches 4.3. Practical Advantages of Tree Architecture Zamiast losowego zbioru faktów, system buduje logicznie połączoną mapę wiedzy, w której każdy element ma swoje miejsce w ogólnej strukturze. Research Completeness : System automatycznie określa, które kierunki wymagają głębszych badań. Jeśli jedna gałąź przynosi wiele odpowiednich źródeł, system może przejść głębiej. Adaptive Depth : Każde nowe zapytanie wyszukiwania jest tworzone z uwzględnieniem już znalezionych informacji, co pozwala na bardziej precyzyjne i konkretne pytania niż poszukiwania izolowane. Contextual Connectivity Na każdym poziomie drzewa system może ocenić znaczenie i jakość znalezionych źródeł, filtrować hałas i koncentrować się na najbardziej wartościowych informacjach. Quality Assessment 4.4. Managing Tree Parameters Określa, ile poziomów recursji może wykonać system. Głębokość 1 oznacza tylko główne podkwestionariusze bez dalszego wiercenia w dół. Głębokość 3-4 pozwala na naprawdę szczegółowe badania. Search Depth kontroluje liczbę podzapytań na każdym poziomie. Zbyt duża szerokość może prowadzić do powierzchownego zbadania wielu kierunków. Optymalna szerokość jest zwykle 3-5 głównych kierunków na poziom. Search Width jest średnią liczbą węzłów dziecka dla każdego węzła drzewa.W kontekście wyszukiwania informacji odpowiada to liczbie nowych podzapytań generowanych na podstawie każdego znalezionego źródła. Branching Factor 4.5. Optimization and Problem Prevention System musi śledzić już zbadane kierunki, aby uniknąć nieskończonych pętli recursji. Cycle Prevention : Bardziej obiecujące gałęzie powinny być badane z większą głębią, podczas gdy mniej informacyjne kierunki mogą zostać zakończone wcześniej. Dynamic Prioritization Różne gałęzie drzew można badać równolegle, znacznie przyspieszając proces, gdy dostępne są wystarczające zasoby obliczeniowe. Parallel Investigation Wyniki wyszukiwania powinny być przechowywane w pamięci podręcznej, aby uniknąć powtarzających się żądań do zewnętrznych interfejsów API, gdy tematy się pokrywają. Memory and Caching : Jest to kolejny problem, który często objawia się podczas wdrażania badań głębokich, zwłaszcza jeśli głębokość przekracza dwa poziomy. można powiedzieć, że zwiększenie poziomu eksponencyjnie zwiększa złożoność badań. Execution Time and Server Timeouts 4.6. The Bottom Line: From Chaos to System Architektura drzewa przekształca chaotyczny proces poszukiwania informacji w systematyczne śledztwo, w którym każdy element ma swoje miejsce w ogólnej strukturze wiedzy. System sztucznej inteligencji, który myśli jak ludzki badacz, ale działa na skalę maszynową i prędkość.W następnej sekcji zanurzymy się w implementacji technicznej, która czyni tę wizję architektoniczną rzeczywistością. The result? Gotowi zobaczyć, jak przetłumaczymy te ramy koncepcyjne na kod produkcji? 5. The "Search-Evaluate-Deepen" Cycle: Implementing True Recursion Cykl „Szukaj-Oceniaj-Głębiej”: Wdrożenie prawdziwej recursji Recursywne analizowanie Internetu nie jest tylko cechą techniczną – jest podstawową koniecznością tworzenia naprawdę inteligentnych agentów AI. Pierwsza strona jakichkolwiek wyników wyszukiwania pokazuje tylko wierzchołek lodowca informacji. 5.1. Data Architecture for Deep Investigation W implementacjach produkcyjnych system działa z ustrukturyzowanymi typami danych, które gromadzą wiedzę na każdym poziomie recursji: 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[]; }; Ta struktura danych gromadzi wiedzę na każdym poziomie rekurencji, tworząc jednolity kontekst dla całego dochodzenia - dokładnie to, co oddziela profesjonalne badania od losowego gromadzenia faktów. 5.2. Stage 1: "Search" — Intelligent Query Generation System nie polega na pojedynczym zapytaniu wyszukiwania. Zamiast tego generuje wiele ukierunkowanych zapytań przy użyciu inteligencji LLM: 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; }; • The parametr kontroluje szerokość badań — liczbę różnych aspektów tematu, które będą badane równolegle. Key insight breadth 5.3. Stage 2: "Evaluate" — AI-Driven Result Filtering Nie wszystkie znalezione źródła są równie cenne.System wykorzystuje agenta AI z narzędziami do inteligentnej oceny każdego wyniku: 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; }; System wykorzystuje agenta sztucznej inteligencji z narzędziami, które mogą wielokrotnie wyszukiwać i oceniać wyniki, aż znajdzie wystarczającą odpowiednią informację. Revolutionary approach 5.4. Vector Knowledge Base Integration The real power emerges from synergy between external and internal search. For each query, the system simultaneously searches the internet and its own vector knowledge base: 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 W głównym cyklu badawczym system kwerendy obu źródeł równolegle: 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 Questions Najpotężniejsza cecha: zdolność systemu do generowania nowych kierunków badań na podstawie już znalezionych informacji: 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 Each found source is analyzed to extract new questions that become the foundation for the next search level: 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 Wdrożenie produkcji pokazuje, jak zarządzać eksponencyjnym wzrostem złożoności: 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 • : na każdym poziomie zapobiega wzrostowi eksponencyjnemu : Umożliwia kierowanie badań do określonych obszarów Wszystkie wyniki są przechowywane w jednolitej strukturze danych Width Reduction Math.ceil(breadth / 2) Thought Vector vectorOfThought Context Accumulation 5.10. The Hybrid Advantage in Practice Połączenie danych publicznych z wiedzą wewnętrzną umożliwia tworzenie raportów, których nikt inny nie może powtórzyć. Twoi konkurenci mogą uzyskać dostęp do tych samych publicznych źródeł, ale nie do Twoich wewnętrznych przypadków, statystyk i wiedzy. Creating Unique Content : Dane zewnętrzne zapewniają walutę i szerokość, dane wewnętrzne zapewniają głębokość i specyfikę. System może znaleźć ogólne trendy branżowe w Internecie, a następnie uzupełnić je własnymi danymi o tym, jak te trendy wpływają na Twoją firmę. Context Enrichment Nawet jeśli informacje internetowe są przestarzałe lub niedokładne, Twoja wewnętrzna baza wiedzy może dostarczyć świeżych i zweryfikowanych danych. Maintaining Currency 6. From Chaos to Order: Generating Expert-Level Reports 6. From Chaos to Order: Generating Expert-Level Reports Po zakończeniu wszystkich poziomów wyszukiwania rekurencyjnego system gromadzi ogromne ilości różnych informacji: wyniki wyszukiwania internetowego, dane bazy danych wektorowych, wygenerowane uczenia się i pytania następcze. 6.1. Context Accumulation: Building the Complete Picture Wszystkie zebrane dane są połączone w jeden Struktura, która służy jako kompletny kontekst końcowej syntezy: 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 }; Jest to kompleksowy wykres wiedzy, który rejestruje całą podróż badawczą.Każda wiedza, każde źródło, każde połączenie jest zachowane do ostatecznej syntezy. This isn't just data storage 6.2. The Master Prompt: Where Intelligence Meets Synthesis Jakość końcowego raportu zależy bezpośrednio od wyrafinowania prośby o generowanie.System wykorzystuje do syntezy najpotężniejszy 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; }; : Nie tylko prosimy AI o podsumowanie - dostarczamy mu kompletny zestaw danych badawczych i prosimy o myślenie jak ekspert w dziedzinie domen. Key insight 6.3. Structured Output: Beyond Simple Summaries System nie tylko tworzy podsumowanie tekstu – generuje strukturalne dokumenty z nagłówkami, tabelami, listami pro/con i profesjonalnym formatowaniem, jak pokazano w wyniku zapisywania: 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 Jest to idealny format dla treści generowanych przez sztuczną inteligencję – wystarczająco zorganizowany do profesjonalnej prezentacji, wystarczająco elastyczny do różnych formatów wyjściowych i czytelny w każdym nowoczesnym przepływie pracy rozwojowej. Why Markdown? 6.4. Quality Control Through System Prompts o Umożliwia dostosowanie stylu i struktury raportu do konkretnych potrzeb: systemPrompt Styl akademicki do prac badawczych i analizy naukowej Format biznesowy dla sprawozdań korporacyjnych i streszczeń wykonawczych for developer-focused content Technical documentation Analiza inwestycji w sprawozdaniach finansowych i strategicznych // Example: Business-focused system prompt const businessSystemPrompt = `You are a senior business analyst creating an executive report. Structure your analysis with: Podsumowanie wykonawcze Kluczowe odkrycia Implikacje rynkowe Zalecenia Ocena ryzyka Use data-driven insights and provide specific examples from the research.`; 6.5. The Intelligence Multiplier Effect System nie tylko gromadzi informacje – syntetyzuje wgląd, który wynika z połączeń między różnymi źródłami.Badacz ludzki może spędzić 8-12 godzin prowadząc ten poziom badań.Nasz system robi to w 10-60 minut, często odkrywając połączenia, które ludzie przegapili. Here's what makes this approach revolutionary 6.6. Production Considerations : Przy głębokich badaniach (głębokość 3-4), nagromadzony kontekst może stać się ogromny. Memory Management Wdrożenia produkcyjne wymagają inteligentnych strategii trunkowania, które zachowują najcenniejsze informacje. Token Optimization : Nie wszystkie generowane raporty są równe. rozważyć wdrożenie mechanizmów oceny, aby ocenić kompletność i spójność raportu. Quality Assurance 6.7. Real-World Impact : Godziny badań ludzkich → Minuty analizy AI Sztuczna inteligencja może przetwarzać i łączyć więcej źródeł niż jest to możliwe Każdy raport stosuje tę samą rygorystyczną metodologię Generowanie kilkudziesięciu raportów jednocześnie Time Compression Depth Enhancement Consistency Scalability 7. Conclusion: Building the Future of AI Research Konkluzja: Budowanie przyszłości badań AI Tworzenie głębokiego agenta badawczego AI to nie tylko wyzwanie techniczne – jest to rozwiązanie architektoniczne, które może stać się przewagą konkurencyjną dla każdego produktu. 7.1. Key Architectural Principles Głębokie wyszukiwanie polega na zbadaniu strukturalnych sieci informacyjnych, w których każde odkrycie generuje nowe pytania i kierunki badań. Think in Trees, Not Lines Specjalistyczne wyszukiwarki, takie jak exa.ai, nie są opcjonalne – są niezbędne do badań jakościowych. Use AI-Native Tools : Pierwsza strona wyników to tylko wierzchołek góry lodowej.Prawdziwe spostrzeżenia leżą w regresywnym pogłębianiu przez cykl "Wyszukiwanie - Ocena - Głęboko". Apply Recursion for Depth Synergia między publicznymi danymi internetowymi a prywatną wiedzą organizacyjną tworzy unikalne treści, których nie można uzyskać w inny sposób. Combine External and Internal Sources Agenci AI z narzędziami mogą nie tylko wyszukiwać informacje, ale także oceniać ich znaczenie, generować nowe pytania i tworzyć ustrukturyzowane raporty. Use LLMs for Both Analysis and Synthesis 7.2. Production-Ready Results Implementacja oparta na Next.js 15, OpenAI i exa.ai pokazuje, że taki system można zbudować i wdrożyć do produkcji. showcases all key components: https://github.com/aifa-agi/aifa-deep-researcer-starter Architektura rekursowa z zarządzaniem głębokością i szerokością Integracja wyszukiwarek internetowych z wektorowymi bazami wiedzy Agenci AI z narzędziami do oceny wyników Generowanie raportów ekspertów z możliwością zapisywania plików 7.3. Challenges and Limitations Badania o głębokości większej niż 2 poziomy mogą zająć godziny, wymagając specjalnych rozwiązań dla środowisk produkcyjnych. Server Timeouts Każdy poziom głębokości zwiększa liczbę zapytań geometrycznie, wymagając ostrożnego zarządzania zasobami. Exponential Complexity Growth Nawet wyszukiwarki AI mogą zwracać nieścisłe informacje, wymagające dodatkowej walidacji i weryfikacji faktów. Source Quality 7.4. Your Next Steps Teraz masz kompletny projekt architektoniczny i prawdziwe przykłady kodu. : Użyj podstawowej wersji z tego artykułu do prototypowania • klonowanie Eksperymenty lokalnie Integracja tych zasad z istniejącymi produktami i przepływami pracy 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 Wyzwanie zadań domowych: rozwiązanie długo oczekiwanego problemu UX Obejrzeliśmy architekturę techniczną głębokich badań agentów AI, ale pozostaje krytycznie ważny problem UX: co robisz, gdy system działa przez kilka minut, podczas gdy użytkownik patrzy na pusty ekran? 8.1. The Problem: Server Silence Kills Trust W przeciwieństwie do typowych aplikacji internetowych, w których operacje trwają kilka sekund, agenci głębokiego badania sztucznej inteligencji mogą milczeć przez kilka minut.Użytkownicy nie otrzymują żadnych informacji zwrotnych od serwera do samego końca procesu. Czekanie na niepokój: Użytkownicy nie wiedzą, czy system działa, czy jest zamrożony Utrata kontroli: brak sposobu, aby zrozumieć, jak długo czekać Spadek zaufania: Wydaje się, że aplikacja jest uszkodzona lub "jedzenie" żądania Wysoki współczynnik odrzucenia: Użytkownicy zamykają kartę bez czekania na wyniki Perplexity, Claude i inne nowoczesne produkty AI rozwiązują to za pomocą interaktywnych animacji, wskaźników postępu i dynamicznych wskazówek. 8.2. The Developer Challenge Wyobraź sobie to ograniczenie techniczne: Twoja trasa Next.js API wykonuje długą operację (głębokie badania) i nie może wysyłać danych pośrednich, dopóki nie zostanie zakończona. Frontend otrzymuje odpowiedź tylko na samym końcu. 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: Jakie wzorce UX zastosowałbyś, aby wizualizować głębokie procesy wyszukiwania, gdy serwer jest „ciszy”? Jak można symulować "na żywo" postęp nawet bez rzeczywistych aktualizacji stanu serwera? Czy powinieneś używać fałszywych pasków postępu, czy też narusza to zaufanie użytkowników? Jakie animacje i mikrointerakcje pomagają stworzyć poczucie „żyjącego” systemu? User Communication: Jak wyjaśniasz użytkownikom, dlaczego czekanie może być długie? Jakie teksty/ilustracje użyć? Czy powinieneś pokazać szacowane czasy oczekiwania, jeśli mogą się one znacznie różnić (2 do 60 minut)? Jak wizualizować etapy procesu („Generowanie zapytań wyszukiwania...”, „Analyzowanie źródeł...”, „Tworzenie raportu eksperta...”)? Jakie metafory pomagają użytkownikom zrozumieć wartość czekania? Technical Implementation: Jakie optymistyczne podejścia do interfejsu użytkownika można zastosować bez opinii serwera? Jak wdrożyć interfejs „konwersacyjny”, który wspiera użytkowników podczas czekania? Czy można użyć lokalnych obliczeń (Web Workers, WASM) do symulacji postępu? Jak zorganizować uroczą degradację, jeśli użytkownicy zamkną kartę podczas badań? 8.4. Learning from the Best Badanie rozwiązań wdrożonych w Perplexity Deep Research, Bing Copilot, Google Search Generative Experience. Co można wziąć z ekranów ładowania gier, które zatrzymują uwagę przez kilka minut? : W dobie natychmiastowych odpowiedzi ChatGPT, jakość czekania może stać się przewagą konkurencyjną.Użytkownicy są gotowi czekać, jeśli rozumieją wartość procesu i czują, że system działa dla nich. Remember 9. About the Author and AIFA Project O autorze i projekcie AIFA i autora , , w swojej ostatniej serii publikacji, szczegółowo opisuje narzędzia i rozwiązania architektoniczne, które wdraża w swoim ambitnym projekcie open-source (agentami sztucznej inteligencji w ewolucyjnej i samoreplikującej się architekturze). Roman Bolszyjanow Aifa W swojej obecnej implementacji AIFA już reprezentuje imponujący szablon startowy do tworzenia aplikacji AI-first z unikalnym interfejsem użytkownika, w którym sztuczna inteligencja staje się główną metodą interakcji, podczas gdy tradycyjny interfejs internetowy służy jako wizualizacja pomocnicza. Długoterminowym celem projektu jest ewolucja do pełnoprawnego systemu AGI, w którym agenci AI będą posiadać zdolności do: Autonomiczna ewolucja i doskonalenie ich algorytmów Samoreprodukcja i tworzenie nowych specjalistycznych agentów Konkurencja i współpraca w środowiskach rozproszonych Autonomiczne działanie w przestrzeni internetowej i sieciach blockchain Głębokie poszukiwania opisane w tym artykule to tylko jedna z podstawowych umiejętności przyszłych agentów AGI, którzy będą w stanie nie tylko badać informacje, ale także podejmować decyzje, tworzyć produkty i wchodzić w interakcje z rzeczywistym światem. Jeśli jesteś zainteresowany obserwowaniem rozwoju projektu i eksperymentowaniem z najnowocześniejszymi technologiami AI, nie wahaj się przekonać Każdy z nich przybliża nas do stworzenia prawdziwie autonomicznej sztucznej inteligencji. AIFA repozytorium Kod jest otwarty, architektura jest udowodniona, a możliwości są nieograniczone. Ready to build the future?