78 lines
2.3 KiB
Markdown
78 lines
2.3 KiB
Markdown
# Les 14: Agents — LLM in een loop met tools
|
|
|
|
> ✅ **Deze les is volledig uitgewerkt**
|
|
|
|
## Lesmateriaal
|
|
|
|
- [Slide Overzicht](../Les14-Agents/Les14-Slide-Overzicht.md)
|
|
- [Docenttekst](../Les14-Agents/Les14-Docenttekst.md)
|
|
- [Lesstof](../Les14-Agents/Les14-Lesstof.md)
|
|
- [Lesopdracht](../Les14-Agents/Les14-Lesopdracht.md)
|
|
- [Huiswerk](../Les14-Agents/Les14-Huiswerk.md)
|
|
|
|
---
|
|
|
|
## Deel
|
|
**Deel 3 — AI Development** (Les 11-16)
|
|
|
|
## Beschrijving
|
|
We gaan een stap verder dan multi-step tool calling. Een agent kan 20-50 stappen autonoom uitvoeren, eigen plannen maken en dynamisch bijsturen. We bouwen een research-agent from scratch met `ToolLoopAgent`, `stopWhen` en `prepareStep`.
|
|
|
|
---
|
|
|
|
## Te Behandelen
|
|
|
|
### Theorie
|
|
- Wat is een agent eigenlijk? (LLM + loop + tools + stopconditie)
|
|
- Wanneer wel/niet een agent gebruiken
|
|
- AI SDK v6 agent-primitives: `ToolLoopAgent`, `stopWhen`, `prepareStep`
|
|
- `prepareStep`: dynamisch model + tools per stap wisselen
|
|
- Cost & latency van agents — wat moet je weten?
|
|
|
|
### Live demo's
|
|
1. Setup nieuwe research-agent (los project)
|
|
2. Tools: webSearch, fetchPage, summarize, writeReport
|
|
3. `stopWhen: stepCountIs(20)` + `hasToolCall("writeReport")`
|
|
4. `prepareStep` om Sonnet te gebruiken voor summarize, Haiku voor search
|
|
5. Live: vraag de agent een onderwerp te onderzoeken
|
|
|
|
---
|
|
|
|
## Tools
|
|
- Vercel AI SDK v6 (`ToolLoopAgent`, `stopWhen`, `prepareStep`)
|
|
- Tavily of Exa API voor web search
|
|
- Anthropic + OpenAI providers
|
|
|
|
---
|
|
|
|
## Lesopdracht (in-class, 60 min)
|
|
|
|
Studenten kijken mee. In-class oefening:
|
|
- Voeg een eigen tool toe aan de research-agent
|
|
- Tweak de stopconditie: laat de agent na 5 minuten stoppen
|
|
- Bekijk de trace: welke stappen koos de agent?
|
|
|
|
**Inleveren:** Screenshot van werkende agent-loop.
|
|
|
|
---
|
|
|
|
## Huiswerk (take-home)
|
|
|
|
Bouw je eigen agent voor een eigen use-case:
|
|
- Minimaal 3 tools
|
|
- Slimme stop-conditie
|
|
- `prepareStep` voor model-routing
|
|
- Reflectie 500 woorden: kan dit ook met gewone tool calling?
|
|
|
|
**Inleveren:** GitHub URL via Teams.
|
|
|
|
---
|
|
|
|
## Leerdoelen
|
|
Na deze les kan de student:
|
|
- Het verschil uitleggen tussen tool calling en een agent
|
|
- Een agent opzetten met `ToolLoopAgent` en custom tools
|
|
- Een doordachte stopconditie schrijven met `stopWhen`
|
|
- Modellen dynamisch routen per stap via `prepareStep`
|
|
- Inschatten wanneer een agent de juiste oplossing is
|