AI-agenter · leksjon

En agent for nettlesing og research

Kombiner et søkeverktøy, et henteverktøy og en LLM for å undersøke et emne og skrive et sammendrag med kildehenvisninger.

Leksjon 3 av 416 trinn

En agent for nettlesing og research er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Deler av denne leksjonen er ennå ikke oversatt og vises på engelsk.

Prosjektmål

Bygg en agent som undersøker et emne ved å søke på nettet, hente sider og skrive et sammendrag med kilder — som en liten versjon av Perplexity.

Verktøy De trenger

  1. search — spør et søke-API (Tavily, Serper, Brave), og returner resultater
  2. fetch_url — last ned en side, og returner renset tekst
  3. answer — agenten skriver det endelige sammendraget med kildehenvisninger

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

Legg til en trinngrense

Uten en grense kan agenten kjøre i det uendelige. max_steps=8 er en fornuftig standardverdi.

Avkort hentede sider

De fleste sider er på over 50 KB — altfor store. Avkort dem til 5000 tegn (omtrent 1300 tokens). Modellen trenger sjelden mer.

Respekter robots.txt

Nettlesing i produksjon må respektere robots.txt og nettstedets bruksvilkår. Bruk en administrert søke- eller hentetjeneste hvis De er i tvil.

Bufre resultater

Den samme spørringen og URL-en vil ofte bli forespurt. Bufre resultater i Redis i én time:

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

Håndter feil

Nettverksfeil er vanlig. Returner feilen til modellen, slik at den kan prøve en annen kilde:

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

Tving frem kildehenvisninger

Avslutt systemprompten med: «Det endelige svaret må inneholde URL-er for hver påstand, for eksempel [1] https://...» — og vurder å kontrollere et utdataformat.

Følg med på kostnadene

Forskningsagenter er dyre — 5–15 verktøykall per spørsmål, der hvert kall henter kilobyte med data. Sett en kostnadsgrense per spørring.

Trinngrense

Hvorfor sette en max_steps-grense på agentløkken?

Oppsummering

Søk + henting + LLM + en trinngrense = en fungerende forskningsagent på 50 linjer. Et utmerket prosjekt nummer 3.

Gratis å komme i gang

Lær deg AI-agenter med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
60
Leksjoner
239

Ofte stilte spørsmål

Er leksjonen «En agent for nettlesing og research» gratis?

Ja – hele teksten i «En agent for nettlesing og research» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Hva lærer jeg i «En agent for nettlesing og research»?

Kombiner et søkeverktøy, et henteverktøy og en LLM for å undersøke et emne og skrive et sammendrag med kildehenvisninger. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AI-agenter?

Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «En agent for nettlesing og research»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?

Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. En spørsmål-og-svar-bot over dokumentene dine
  2. En agent som forklarer kode
  3. En agent for nettlesing og research
  4. En SQL-assistent for databasen din
← Tilbake til AI-agenter