AI Agents · Lekcja

Agent badawczy przeglądający sieć

Połącz narzędzie wyszukiwania, narzędzie pobierania danych i LLM, aby zbadać temat i napisać podsumowanie ze źródłami.

Lekcja 3 z 416 kroki

Agent badawczy przeglądający sieć to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Cel projektu

Zbuduj agenta, który wyszukuje informacje o danym temacie w internecie, pobiera strony i tworzy podsumowanie ze źródłami — jak niewielka wersja Perplexity.

Potrzebne narzędzia

  1. search — wysyła zapytanie do API wyszukiwarki (Tavily, Serper, Brave) i zwraca wyniki
  2. fetch_url — pobiera stronę i zwraca oczyszczony tekst
  3. answer — agent tworzy końcowe podsumowanie z cytowaniami

Step 1: Search Tool

import requests

def search(query: str, k: int = 5) -> list[dict]:
    r = requests.post(
        'https://api.tavily.com/search',
        json={'api_key': TAVILY_KEY, 'query': query, 'max_results': k}
    )
    return r.json()['results']   # list of {url, title, snippet}

Step 2: Fetch Tool

from bs4 import BeautifulSoup

def fetch_url(url: str) -> str:
    r = requests.get(url, timeout=10)
    soup = BeautifulSoup(r.text, 'html.parser')
    for tag in soup(['script', 'style', 'nav', 'footer']):
        tag.decompose()
    return soup.get_text(separator='\n', strip=True)[:5000]   # truncate

Step 3: Tool Definitions

tools = [
    {'type': 'function', 'function': {
        'name': 'search',
        'description': 'Search the web for a query, return top results with URLs',
        'parameters': {'type': 'object', 'properties': {'query': {'type': 'string'}}, 'required': ['query']}
    }},
    {'type': 'function', 'function': {
        'name': 'fetch_url',
        'description': 'Download the text of a URL',
        'parameters': {'type': 'object', 'properties': {'url': {'type': 'string'}}, 'required': ['url']}
    }}
]
import json
print(json.dumps(tools, indent=2))

Step 4: The Agent Loop

def research(question, max_steps=8):
    messages = [
        {'role': 'system', 'content': 'You are a research agent. Use search and fetch_url to gather facts. Cite each claim with a URL.'},
        {'role': 'user', 'content': question}
    ]
    for _ in range(max_steps):
        r = oai.chat.completions.create(model='gpt-4o-mini', messages=messages, tools=tools)
        msg = r.choices[0].message
        messages.append(msg)
        if not msg.tool_calls:
            return msg.content
        for tc in msg.tool_calls:
            result = dispatch(tc)
            messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})
    return 'Step limit reached'

Tool Dispatcher

def dispatch(tc):
    args = json.loads(tc.function.arguments)
    if tc.function.name == 'search':
        return search(**args)
    if tc.function.name == 'fetch_url':
        return fetch_url(**args)
    return {'error': 'unknown tool'}

Dodawanie limitu kroków

Bez limitu agent może działać w nieskończoność. max_steps=8 to rozsądna wartość domyślna.

Skracanie pobranych stron

Większość stron ma ponad 50KB — to zdecydowanie za dużo. Skróć je do 5000 znaków (około 1300 tokenów). Model rzadko potrzebuje więcej.

Przestrzeganie robots.txt

Przeglądanie internetu w środowisku produkcyjnym musi respektować robots.txt oraz warunki korzystania z witryny. W razie wątpliwości użyj zarządzanej usługi wyszukiwania i pobierania.

Buforowanie wyników

To samo zapytanie i ten sam adres URL będą często używane. Buforuj wyniki w Redisie przez godzinę:

@lru_cache(maxsize=1000)
def cached_fetch(url):
    return fetch_url(url)

Obsługa błędów

Błędy sieci są czymś typowym. Zwróć błąd do modelu, aby mógł spróbować użyć innego źródła:

try:
    return fetch_url(url)
except Exception as e:
    return {'error': f'Could not fetch {url}: {e}'}

Wymuszanie cytowań

Na końcu promptu systemowego umieść: „Twoja końcowa odpowiedź musi zawierać adresy URL dla każdego twierdzenia, na przykład [1] https://...” — rozważ także sprawdzanie schematu danych wyjściowych.

Kontrola kosztów

Agenci badawczy są kosztowni — od 5 do 15 wywołań narzędzi na pytanie, z których każde pobiera kilobajty danych. Ustaw limit budżetu dla każdego zapytania.

Limit kroków

Dlaczego ustawiać limit max_steps w pętli agenta?

Podsumowanie

Wyszukiwanie + pobieranie + LLM + limit kroków = działający agent badawczy w 50 wierszach. To świetny trzeci projekt.

Bezpłatny start

Ucz się AI Agents dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
60
Lekcje
239

Często zadawane pytania

Czy lekcja „Agent badawczy przeglądający sieć” jest bezpłatna?

Tak — pełny tekst „Agent badawczy przeglądający sieć” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Agent badawczy przeglądający sieć”?

Połącz narzędzie wyszukiwania, narzędzie pobierania danych i LLM, aby zbadać temat i napisać podsumowanie ze źródłami. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Agent badawczy przeglądający sieć”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Bot pytań i odpowiedzi nad Twoimi dokumentami
  2. Agent wyjaśniający kod
  3. Agent badawczy przeglądający sieć
  4. Asystent SQL dla Twojej bazy danych
← Powrót do AI Agents