Een onderzoeksagent die het web doorzoekt
Combineer een zoektool, een fetch-tool en een LLM om een onderwerp te onderzoeken en een samenvatting met bronnen te schrijven.
Een onderzoeksagent die het web doorzoekt is een gratis AI-agenten-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AI-agenten. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AI-agenten bevat in totaal 4 lessen.
Delen van deze les zijn nog niet vertaald en worden in het Engels weergegeven.
Projectdoel
Bouw een agent die een onderwerp onderzoekt door op internet te zoeken, pagina's op te halen en een samenvatting met bronvermeldingen te schrijven — als een kleine versie van Perplexity.
Benodigde hulpmiddelen
- search — voer een zoekopdracht uit via een zoek-API (Tavily, Serper, Brave) en geef resultaten terug
- fetch_url — download een pagina en geef opgeschoonde tekst terug
- answer — de agent schrijft de uiteindelijke samenvatting met bronvermeldingen
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] # truncateStep 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'}Een staplimiet toevoegen
Zonder limiet kan de agent eindeloos doorgaan. max_steps=8 is een verstandige standaardwaarde.
Opgehaalde pagina's afkappen
De meeste pagina's zijn 50 KB of groter — veel te groot. Kap ze af op 5000 tekens (ongeveer 1300 tokens). Het model heeft zelden meer nodig.
Respecteer robots.txt
Browsen in productie moet robots.txt en de servicevoorwaarden van de site respecteren. Gebruik bij twijfel een beheerde zoek- en ophaaldienst.
Resultaten cachen
Dezelfde query en URL worden vaak opgevraagd. Sla resultaten een uur lang op in Redis:
@lru_cache(maxsize=1000)
def cached_fetch(url):
return fetch_url(url)Fouten afhandelen
Netwerkfouten komen vaak voor. Geef de fout door aan het model, zodat het een andere bron kan proberen:
try:
return fetch_url(url)
except Exception as e:
return {'error': f'Could not fetch {url}: {e}'}Bronvermeldingen afdwingen
Sluit de systeemprompt af met: "Je uiteindelijke antwoord moet URL's bevatten voor elke bewering, zoals [1] https://..." — en overweeg een controle van het uitvoerschema.
De kosten bewaken
Onderzoeksagents zijn duur — 5-15 aanroepen van hulpmiddelen per vraag, waarbij telkens kilobytes worden opgehaald. Stel een budgetlimiet per vraag in.
Staplimiet
Waarom stel je een limiet met max_steps in voor de agentlus?
Samenvatting
Zoeken + ophalen + LLM + een staplimiet = een werkende onderzoeksagent in 50 regels. Een uitstekend derde project.
Leer AI-agenten met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 60
- Lessen
- 239
Veelgestelde vragen
Is de les “Een onderzoeksagent die het web doorzoekt” gratis?
Ja — de volledige tekst van “Een onderzoeksagent die het web doorzoekt” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus AI-agenten wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus AI-agenten bevat in totaal 4 lessen.
Wat leer ik in “Een onderzoeksagent die het web doorzoekt”?
Combineer een zoektool, een fetch-tool en een LLM om een onderwerp te onderzoeken en een samenvatting met bronnen te schrijven. Je oefent met AI-agenten door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met AI-agenten te beginnen?
Ervaring vooraf is niet nodig. AI-agenten op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Een onderzoeksagent die het web doorzoekt”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over AI-agenten?
Ja. Elke les over AI-agenten bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Een Q&A-bot voor uw documenten
- Een agent die code uitlegt
- Een onderzoeksagent die het web doorzoekt
- Een SQL-assistent voor uw database