Wat een agent in productie is
In deze les ga je
- De zes stappen van een agentlus beschrijven en waarom hij grenzen nodig heeft
- De acht bouwstenen noemen en wat je in elk beheert
- Een begrensde lus schetsen met een toegestane toollijst en twee overdrachtsuitgangen
Een agent is een systeem rond een prompt
Een chatbot beantwoordt één vraag en stopt. Een agent gaat door tot de taak klaar is. Hij maakt een plan, roept een tool aan, leest het resultaat, controleert het en bepaalt de volgende stap. Die lus maakt een agent nuttig, en ook riskant: elke ronde kan een echt systeem raken.
Bij NexOps beginnen we elk agentproject met één zin: welke taak, voor wie en hoe meten we dat het goed ging? Kun je dat niet beantwoorden, dan ben je er nog niet klaar voor om een model te kiezen. Het model is één onderdeel van het systeem, en het onderdeel dat je het makkelijkst vervangt.
Deze cursus volgt één agent van ontwerp tot beheer. In deze eerste les beschrijven we de lus en de acht bouwstenen. Keuzes tussen frameworks behandelen we niet uitgebreid, want de bouwstenen blijven hetzelfde, welk framework je ook kiest.
De lus
Elke agent in productie doorloopt dezelfde zes stappen.
- Doel. Een taak met een succesmaat, bijvoorbeeld "classificeer het binnenkomende verzoek en schrijf een antwoord dat een mens kan goedkeuren".
- Plan. Het model verdeelt de taak in stappen. Houd plannen kort. Een lang plan is een lange lijst plekken waar het mis kan gaan.
- Tool aanroepen. Het model vraagt de harness om een tool uit te voeren. De harness voert hem uit, niet het model, met de rechten van een afgebakend service-account.
- Observeren. De harness geeft het resultaat terug, samen met de bron.
- Controleren. Regels, guardrails en een evaluatieset bepalen of de stap acceptabel is.
- Antwoorden of overdragen. De agent rondt af, of een mens beslist.
De belangrijkste ontwerpregel is dat de lus begrensd is. Stel een maximum aantal stappen in, een maximale duur en een tokenbudget. Een agent zonder grens blijft vroeg of laat hangen in een toolfout en besteedt je budget daaraan.
De acht bouwstenen
Dezelfde onderdelen zitten in elke agent die we bouwen. Behandel elk onderdeel als iets dat je configureert, test en beheert.
| Bouwsteen | Wat hij doet | Wat jij beheert |
|---|---|---|
| Model | Leest context, kiest de volgende actie | Een keuze per taak, op jouw evaluatieset |
| Instructies | Systeemprompts en regels | Bestanden in versiebeheer, gereviewd als code |
| Tools | Acties die de agent kan uitvoeren | Een korte lijst, elk met een eigen identiteit |
| Geheugen en state | Sessiecontext en langetermijnfeiten | Bewaar- en verwijderregels |
| Retrieval | Passages uit je documenten | Bronnen bij elke passage |
| Guardrails | Controles op verzoeken, aanroepen en antwoorden | Beleid dat bij elke aanroep geldt |
| Evaluatie en tracing | Meet kwaliteit, legt elke stap vast | Een testset uit echte cases |
| Menselijke controle | Een mens bevestigt acties met gevolgen | Een regel welke acties dat nodig hebben |
Les 2 tot en met 8 behandelen deze bouwstenen een voor een.
Een minimale lus in code
Het voorbeeld hieronder toont de vorm van een begrensde lus. Het is schematisch: het laat de besturing zien, niet de API van een framework.
Illustratie
# Schematische agentlus. De namen zijn plaatsaanduidingen, geen echte framework-API.
MAX_STEPS = 8 # harde grens op het aantal rondes in de lus
TOKEN_BUDGET = 40_000 # harde grens op tokens voor één taak
def run_agent(task, model, tools, checks):
state = {"task": task, "history": [], "tokens": 0}
for step in range(MAX_STEPS):
decision = model.decide(state) # plannen of antwoorden
if decision.kind == "answer":
return checks.final(decision.text, state) # laatste poort voor de gebruiker
if decision.tool not in tools: # standaard weigeren
state["history"].append(("error", "unknown tool"))
continue
result = tools[decision.tool].run(decision.args) # draait met een afgebakende identiteit
state["history"].append((decision.tool, result)) # resultaat en bron
state["tokens"] += model.last_usage
if state["tokens"] > TOKEN_BUDGET:
return handover(state, reason="budget") # een mens neemt over
return handover(state, reason="step limit")Drie details tellen. De toollijst is een toegestane lijst, dus een onbekende tool is een fout en nooit een improvisatie. Elk resultaat gaat samen met zijn bron in de geschiedenis. En beide uitgangen, budget en staplimiet, dragen de taak over aan een mens in plaats van stilletjes te falen.
Waar de agentlus aansluit op het platform
Op Databricks sluiten de onderdelen zo op elkaar aan. Tools bereik je via MCP-servers, die door Databricks beheerd, eigen of extern kunnen zijn, en Unity Catalog-rechten sturen de beheerde servers aan. Gespreksstate en langetermijngeheugen staan in beheerde stores op basis van Lakebase. MLflow Tracing legt elke stap vast met invoer, uitvoer, latency en tokengebruik. Unity Gateway staat voor de modellen en voegt toegangsbeheer, budgetten, limieten en logging toe. De huidige documentatie noemt het Unity Gateway; veel teams, en onze site, zeggen nog Unity AI Gateway.
Lees dit niet als een boodschappenlijst. Begin bij de taak en de maat, en voeg alleen de bouwstenen toe die de taak nodig heeft. Een antwoordschrijver voor een interne servicedesk heeft minder tools nodig dan een agent die je ERP bijwerkt.
Veelgemaakte fouten
- Beginnen met het framework. Kies eerst de taak en de evaluatieset. Frameworks komen en gaan; de lus blijft.
- Eén grote agent. Meerdere kleine agents met elk één taak zijn makkelijker te testen dan één agent met twintig tools.
- Geen grens. Stel altijd limieten in voor stappen, tijd en tokens.
- Geen overdracht. Bepaal wie overneemt en hoe die persoon ziet wat de agent deed.
Samenvatting
Een agent is een begrensde lus rond een model met afgebakende tools, geheugen, guardrails, evaluatie en een mens die kan goedkeuren. Het model is vervangbaar. De lus, de grenzen en het bewijs houd je.
In de volgende les kijken we naar de bouwsteen met het meeste risico: tools.
Het idee in één schema
De lus die een agent doorloopt
- DoelEen taak met een succesmaat
- Plan
- Tool aanroepenAfgebakende identiteit
- ObserverenResultaat en bron
- ControlerenRegels en evaluatie
- Antwoorden of overdragen
Kenniscontrole
Beantwoord elke vraag. Je ziet meteen de reden achter elk antwoord.
0 van 3 beantwoord
Praktisch lab
Doel. Voer een begrensde agentlus uit en breid hem uit met een stubmodel.
Waar je het draait
Lokale Python Draai dit lab op je eigen computer met Python 3.10 of nieuwer in een virtuele omgeving.
Stappen
- Kopieer de lus uit de les naar agent.py. Schrijf een klasse StubModel waarvan decide() twee keer een toolaanroep teruggeeft en daarna een antwoord.
- Voeg één tool toe, get_order_status, die een vaste dictionary teruggeeft voor order SO-100234 en een fout geeft bij elk ander id.
- Laat de stub één keer om een onbekende tool vragen en controleer dat de lus een fout vastlegt en doorgaat.
- Zet MAX_STEPS op 2 en draai opnieuw. Bevestig dat handover() wordt aangeroepen met reden 'step limit'.
Verwacht resultaat
De normale run eindigt met een antwoord. De run met de onbekende tool legt een fout vast en eindigt toch. De run met MAX_STEPS=2 eindigt in een overdracht.
Verdiepen
Officiële documentatie en aanbevolen cursussen van de aanbieders.
- Databricks
- Gratis met account
- Databricks Academy-account
- Beginner
AI Agent Fundamentals
Een gratis introductie in agentconcepten, handig voor de MCP- en agentcursussen.
Open cursus : AI Agent Fundamentals. Opent de site van de aanbieder in een nieuw tabblad
- DeepLearning.AI
- Kosten niet vermeld
- Gemiddeld
- 9 u 55 min
Agentic AI
Een langere cursus over het ontwerpen en bouwen van agentsystemen van begin tot eind.
Open cursus : Agentic AI. Opent de site van de aanbieder in een nieuw tabblad
- docs.databricks.com
Agents bouwen op Databricks
Open de documentatie : Agents bouwen op Databricks. Opent bij de aanbieder
Lees bij NexOps
Artikelen uit onze eigen projecten over hetzelfde onderwerp.
Bronnen
Laatst gecontroleerd 2026-11-11
- Build agents on Databricks (Agent Bricks)
- MCP on Databricks
- Stateful agents on Databricks
- MLflow Tracing for GenAI
- Unity Gateway
We controleren elke bron aan de hand van de officiële documentatie. Producten veranderen, dus bevestig details daar voordat je bouwt.