377 odczyty
377 odczyty

Zbuduj agenta AI, który bada Twoich konkurentów

przez aifa27m2025/07/02
Read on Terminal Reader

Za długo; Czytać

Ten wszechstronny przewodnik uczy programistów, jak zbudować głębokiego agenta badawczego AI podobnego do funkcji "Deep Research" firmy Perplexity. Dowiesz się architektury wyszukiwania nawrotnego, integracji wyszukiwania AI i jak łączyć zewnętrzne dane internetowe z wewnętrznymi bazami wiedzy. artykuł zawiera gotowy do produkcji kod TypeScript za pomocą Next.js 15, OpenAI i exa.ai, a także zasady architektoniczne do tworzenia systemów AI, które prowadzą badania jak analitycy ludzcy, ale w skali maszynowej.
featured image - Zbuduj agenta AI, który bada Twoich konkurentów
aifa HackerNoon profile picture

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.

AIFA for deep researching starter


Ź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.

Technical ArchitectureJak zaprojektować system wyszukiwania nawrotnego z wykorzystaniem Next.js 15, OpenAI i exa.ai, które faktycznie działają w produkcji

Mental ModelsDlaczego wyszukiwanie głębokie jest strukturą drzewa, a nie procesem liniowym – i jak to zmienia wszystko na temat badań nad AI

Practical SolutionsJak zintegrować zewnętrzne wyszukiwanie internetowe z wewnętrznymi bazami wiedzy wektorowej, aby stworzyć naprawdę unikalną zawartość, której Twoi konkurenci nie mogą powtórzyć

Performance OptimizationJak zarządzać zasobami serwera i doświadczeniem użytkownika podczas długotrwałych operacji AI bez złamania banku

Production-Ready CodeWdrożenia typu TypeScript z wykorzystaniem nowoczesnych technologii, które można wdrożyć już dziś

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

React 19Najnowsza wersja z ulepszoną wydajnością i nowymi funkcjami równoczesnego renderowania, które płynnie radzą sobie ze złożonymi interakcjami AI

Next.js 15Peł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)

TypeScript 5- rygorystyczne pisanie dla niezawodności kodu i doskonałego doświadczenia dewelopera przy budowie złożonych systemów AI

1.1.2. AI and Integrations

OpenAI SDK (v4.96.2)— Oficjalny SDK do integracji z GPT-4 i innymi modelami OpenAI, z pełnym wsparciem dla strumieniowania

AI SDK (v4.1.45)Uniwersalna biblioteka do pracy z różnymi dostawcami AI, zapewniając elastyczność w przełączaniu modeli

Exa.js (v1.4.10)- wyspecjalizowana wyszukiwarka zorientowana na sztuczną inteligencję dla wyszukiwania semantycznego, które naprawdę rozumie kontekst

1.1.3. UI and Styling

Tailwind CSS 4Utility-first framework CSS dla szybkiego rozwoju bez poświęcania jakości projektowania

Radix UIKomponenty bezgłowne do tworzenia dostępnych interfejsów, które działają na wszystkich urządzeniach

Lucide ReactNowoczesna biblioteka ikon z spójnym językiem projektowania

shadcn/ui— System komponentów oparty na Radix UI i Tailwind CSS dla profesjonalnych interfejsów

1.1.4. Forms and Validation

React Hook FormWysokowydajna biblioteka do obsługi formularzy, która nie spowalnia interfejsów AI

ZodSchemat walidacji TypeScript-first z statycznym pisaniem, który łapie błędy, zanim dotrą do produkcji

Hookform ResolversŁatwa integracja z Zod i React Hook Form

1.1.5. Content Processing

React MarkdownRendering zawartości Markdown z obsługą komponentów dla bogatych raportów generowanych przez AI

date-fns— Nowoczesna biblioteka do przetwarzania dat w czasach badań AI

Why This Stack Matters

Ta technologia stack zapewniahigh performance,type safety, orazscalabilityKaż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.

The result?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.

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.

The harsh realityFirmy 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.

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:

Surface-Level Search: System wykonuje jedno lub dwa zapytania wyszukiwania, przechwytuje pierwsze kilka wyników i nazywa to dniem.

Zero Follow-ThroughJeśli pierwsze wyszukiwanie nie przynosi kompleksowych wyników, system nie zadaje pytań następczych ani nie bada alternatywnych kątów.

Garbage Data QualityTradycyjne wyszukiwarki zwracają strony HTML zatłoczone reklamami, elementami nawigacji i nieistotnymi treściami.

Context IsolationSystem nie może połączyć znalezionych informacji z wewnętrznymi danymi, dokumentami firmy lub bazami wiedzy specyficznymi dla danej domeny.

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.

AI-Optimized Search EnginesZamiast ogólnych połączeń Google API, używają wyspecjalizowanych systemów wyszukiwania, które zwracają czyste, ustrukturyzowane treści przeznaczone do konsumpcji AI.

Iterative Investigation ProcessSystem analizuje wyniki, formułuje nowe pytania i kontynuuje wyszukiwanie, aż zbuduje kompleksowy obraz.

Deep Research ModeJest 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ł.

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.

Important: 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.

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.

Pro tip: 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.

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:Large Language Models cannot independently access current information from the internetNie 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.

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ń.

Data ReliabilityStrukturowana zawartość bez potrzeby kruchej analizy HTML
ScalabilityStabilne interfejsy API zaprojektowane z myślą o zautomatyzowanym użyciu o dużej objętości
Cost Efficiency: Zmniejszona obliczeniowa nadwaga do przetwarzania danych
Accuracy: Lepsze znaczenie źródła prowadzi do lepszych wglądu końcowego

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 technicznethey're the architectural foundationBez odpowiedniego "psa przewodnika", nawet najbardziej wyrafinowany LLM będzie zmagać się z tworzeniem głębokiej, dokładnej analizy bieżących informacji.

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.

The solution?W następnej sekcji zanurzymy się w specyficznych wzorach architektury, które umożliwiają powtarzające się, głębokie badania.

Przygotowani, aby zobaczyć, jak elementy pasują do siebie?Zobaczmy projekt systemu, który wspiera prawdziwie inteligentnych agentów badawczych AI.

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

First-level branchessą 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ń.

Tree leavesSą 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.

Recursive branchessą najpotężniejszą cechą tej architektury. Gdy system analizuje znalezione źródła, może odkryć nowe aspekty tematu, które wymagają dodatkowego badania.

4.3. Practical Advantages of Tree Architecture

Research CompletenessZamiast losowego zbioru faktów, system buduje logicznie połączoną mapę wiedzy, w której każdy element ma swoje miejsce w ogólnej strukturze.

Adaptive Depth: 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.

Contextual Connectivity: Każde nowe zapytanie wyszukiwania jest tworzone z uwzględnieniem już znalezionych informacji, co pozwala na bardziej precyzyjne i konkretne pytania niż poszukiwania izolowane.

Quality AssessmentNa 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.

4.4. Managing Tree Parameters

Search DepthOkreś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 Widthkontroluje 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.

Branching Factorjest ś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.

4.5. Optimization and Problem Prevention

Cycle PreventionSystem musi śledzić już zbadane kierunki, aby uniknąć nieskończonych pętli recursji.

Dynamic Prioritization: Bardziej obiecujące gałęzie powinny być badane z większą głębią, podczas gdy mniej informacyjne kierunki mogą zostać zakończone wcześniej.

Parallel InvestigationRóżne gałęzie drzew można badać równolegle, znacznie przyspieszając proces, gdy dostępne są wystarczające zasoby obliczeniowe.

Memory and CachingWyniki 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ą.

Execution Time and Server Timeouts: 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ń.

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.

The result?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ą.

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;
};

Key insight• Thebreadthparametr kontroluje szerokość badań — liczbę różnych aspektów tematu, które będą badane równolegle.

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;
};

Revolutionary approachSystem wykorzystuje agenta sztucznej inteligencji z narzędziami, które mogą wielokrotnie wyszukiwać i oceniać wyniki, aż znajdzie wystarczającą odpowiednią informację.

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

Width Reduction• :Math.ceil(breadth / 2)na każdym poziomie zapobiega wzrostowi eksponencyjnemu
Thought VectorvectorOfThoughtUmożliwia kierowanie badań do określonych obszarów
Context AccumulationWszystkie wyniki są przechowywane w jednolitej strukturze danych

5.10. The Hybrid Advantage in Practice

Creating Unique ContentPołą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.

Context Enrichment: 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ę.

Maintaining CurrencyNawet jeśli informacje internetowe są przestarzałe lub niedokładne, Twoja wewnętrzna baza wiedzy może dostarczyć świeżych i zweryfikowanych danych.

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 jedenResearchStruktura, która służy jako kompletny kontekst końcowej syntezy:

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 storageJest 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.

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;
};

Key insight: Nie tylko prosimy AI o podsumowanie - dostarczamy mu kompletny zestaw danych badawczych i prosimy o myślenie jak ekspert w dziedzinie domen.

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

Why 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.

6.4. Quality Control Through System Prompts

osystemPromptUmożliwia dostosowanie stylu i struktury raportu do konkretnych potrzeb:

  • Styl akademicki do prac badawczych i analizy naukowej
  • Format biznesowy dla sprawozdań korporacyjnych i streszczeń wykonawczych
  • Technical documentation for developer-focused content
  • 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:

  1. Podsumowanie wykonawcze
  2. Kluczowe odkrycia
  3. Implikacje rynkowe
  4. Zalecenia
  5. Ocena ryzyka

Use data-driven insights and provide specific examples from the research.`;

6.5. The Intelligence Multiplier Effect

Here's what makes this approach revolutionarySystem 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.

6.6. Production Considerations

Memory Management: Przy głębokich badaniach (głębokość 3-4), nagromadzony kontekst może stać się ogromny.

Token OptimizationWdrożenia produkcyjne wymagają inteligentnych strategii trunkowania, które zachowują najcenniejsze informacje.

Quality Assurance: Nie wszystkie generowane raporty są równe. rozważyć wdrożenie mechanizmów oceny, aby ocenić kompletność i spójność raportu.

6.7. Real-World Impact

Time Compression: Godziny badań ludzkich → Minuty analizy AI
Depth EnhancementSztuczna inteligencja może przetwarzać i łączyć więcej źródeł niż jest to możliwe
ConsistencyKażdy raport stosuje tę samą rygorystyczną metodologię
ScalabilityGenerowanie kilkudziesięciu raportów jednocześnie

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

Think in Trees, Not LinesGłębokie wyszukiwanie polega na zbadaniu strukturalnych sieci informacyjnych, w których każde odkrycie generuje nowe pytania i kierunki badań.

Use AI-Native ToolsSpecjalistyczne wyszukiwarki, takie jak exa.ai, nie są opcjonalne – są niezbędne do badań jakościowych.

Apply Recursion for Depth: 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".

Combine External and Internal SourcesSynergia między publicznymi danymi internetowymi a prywatną wiedzą organizacyjną tworzy unikalne treści, których nie można uzyskać w inny sposób.

Use LLMs for Both Analysis and SynthesisAgenci AI z narzędziami mogą nie tylko wyszukiwać informacje, ale także oceniać ich znaczenie, generować nowe pytania i tworzyć ustrukturyzowane raporty.

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.https://github.com/aifa-agi/aifa-deep-researcer-starter showcases all key components:

  • 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

Server TimeoutsBadania o głębokości większej niż 2 poziomy mogą zająć godziny, wymagając specjalnych rozwiązań dla środowisk produkcyjnych.

Exponential Complexity GrowthKażdy poziom głębokości zwiększa liczbę zapytań geometrycznie, wymagając ostrożnego zarządzania zasobami.

Source QualityNawet wyszukiwarki AI mogą zwracać nieścisłe informacje, wymagające dodatkowej walidacji i weryfikacji faktów.

7.4. Your Next Steps

Teraz masz kompletny projekt architektoniczny i prawdziwe przykłady kodu.

Start with Minimal Implementation: Użyj podstawowej wersji z tego artykułu do prototypowania
Explore the Ready Solution• klonowaniehttps://github.com/aifa-agi/aifa-deep-researcer-starterEksperymenty lokalnie
Adapt to Your NeedsIntegracja tych zasad z istniejącymi produktami i przepływami pracy


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?

Remember: 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.

9. About the Author and AIFA Project

O autorze i projekcie AIFA

i autora ,Roman Bolszyjanow, w swojej ostatniej serii publikacji, szczegółowo opisuje narzędzia i rozwiązania architektoniczne, które wdraża w swoim ambitnym projekcie open-sourceAifa(agentami sztucznej inteligencji w ewolucyjnej i samoreplikującej się architekturze).

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ćAIFA repozytoriumKażdy z nich przybliża nas do stworzenia prawdziwie autonomicznej sztucznej inteligencji.

Ready to build the future?Kod jest otwarty, architektura jest udowodniona, a możliwości są nieograniczone.


Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks