Winst:
- Het toepassen van de toenemende schaal van complexiteit, van de eenvoudigste oplossing tot de agent
- Onderscheid maken tussen chaining, routing en parallelle workflowpatronen
- Een uit meerdere stappen bestaande taak opsplitsen in een cyclus van planning, uitvoering en verificatie
In de vorige unit hebben we de eenvoudige cyclus voor één voertuig vastgelegd. Echt werk vereist vaak meerdere stappen, meerdere tools en soms vertakkende beslissingen: “Vind bestellingen die deze maand te laat zijn, stel een verontschuldigingsmail op aan klanten, vat samen voor een manager.” In dit onderdeel behandelen we patronen voor het organiseren van taken die uit meerdere stappen bestaan, wanneer je een echte agent nodig hebt, en de cyclus van planning, uitvoering en verificatie. Het belangrijkste principe: complexiteit zoveel als nodig is.
Schaal van de eenvoudigste oplossing tot agent
Niet elke taak verdient de meest complexe oplossing. Klim stap voor stap op de complexiteitsschaal en stop bij de eenvoudigste adequate oplossing:
- Enkele oproep: Als de taak wordt opgelost door een enkele modeloproep (samenvatten, classificeren), stop dan hier.
- Enkele oproep met RAG: Als er informatie nodig is, voeg dan ophalen en opnieuw enkele oproep toe.
- Vaste workflow: Als de stappen vooraf bekend zijn, volg ze dan handmatig (codeflow). Bij elke stap doet het model een deeljob, maar jij bepaalt de volgorde.
- Modelgestuurde agent: Als de stappen niet vooraf bekend zijn, beslist het model welke agent wanneer moet worden gebeld. De krachtigste maar duurste en meest risicovolle optie.
Het verschil tussen Workflow en agent is van cruciaal belang: in Workflow schrijf je de controlestroom (voorspelbaar, testbaar, goedkoop). Je geeft controle over de agenda aan het model (flexibel maar onvoorspelbaar). Het meeste bedrijfswerk is eigenlijk een workflow; echte agenten zijn er relatief weinig.
Tip: "Kan ik de stappen voor deze taak vooraf uitschrijven?" vragen. Als je het kunt schrijven, bouw dan een workflow – goedkoper, veiliger en beter testbaar. Als de stappen echter variëren afhankelijk van de invoer en niet kunnen worden voorspeld, is een agent vereist.
Drie basisworkflowpatronen
Prompt chaining: de uitvoer van de ene stap is de invoer van de volgende. "Concept genereren → bewerken → formatteren." Elke stap is eenvoudig en doelgericht; gemakkelijk te debuggen.
Routing: U classificeert eerst de binnenkomende aanvraag en stuurt deze naar de juiste deskundige. “Is deze vraag van technische aard, van facturering of van terugbetaling?” → doorverwijzen naar de juiste substream. Elk pad is geoptimaliseerd met zijn eigen prompt en hulpmiddelen.
Parallellisatie: het tegelijkertijd uitvoeren van onafhankelijke taken en het combineren van de resultaten. "Vat 5 documenten afzonderlijk samen en combineer ze vervolgens." Het is niet alleen snel, maar elk stuk krijgt de volledige aandacht.
patroon
wanneer
voorbeeld
geketend
De stappen zijn opeenvolgend en afhankelijk
Concept → bewerken → formatteren
omleiden
Verschillende verwerking afhankelijk van het invoertype
Classificatie van ondersteuningsverzoeken
parallel
Onafhankelijke deelwerken
Vat meerdere documenten afzonderlijk samen
Agent (lus)
Stappen kunnen niet vooraf worden voorspeld
Onderzoek/reparatie met open einde
# Routeringspatroon (conceptueel)type = patroon.classify(verzoek) # "return" | "techniek" | "factuur"if tour == "retour": antwoord = return_flow(request)elif tur == "technisch": antwoord = technische_flow(request)else: antwoord = factuur_flow(request)
Planning-uitvoering-verificatiecyclus
Een krachtig patroon bij echte agenten: zorg voor een modelplan, voer het uit en verifieer het vervolgens. Het model verdeelt de complexe taak in substappen, voert elke stap uit met hulpmiddelen en vraagt uiteindelijk: "Heb ik het doel bereikt?" hij controleert. De verificatiestap vangt fouten op met een aparte, frisse blik (“voldoet deze uitvoer aan de taak?”).
# Plan-execute-verify (conceptueel)plan = model.uret("Breek deze taak op in stappen: " + taak)voor stap in plan: result = agent_loop(step) # execute with toolscheck = model.uret("Voldoet deze uitvoer aan de taak? Vertel me of er iets ontbreekt: " + taak + resultaten)if check.missing: # correctieronde ...
Twee goede praktijken voor lange taken: een stopvoorwaarde opleggen (maximaal aantal stappen – voorkomt een oneindige lus) en voortgangsregistratie (laat de agent opschrijven wat hij doet, zodat hij niet wordt afgeleid). De agent, die geen staplimiet heeft, kan voor altijd ronddraaien als hij vastloopt en de kosten zullen exploderen.
Zwak/sterk ontwerp
Zwak (alles op één gigantische agent zetten):
Zeg "krijg dat complexe ding voor elkaar" en geef het vrij met onbeperkte tools. # Resultaat: onvoorspelbaar gedrag, risico op oneindige lussen, hoge kosten, # onmogelijk om fouten op te sporen.
Krachtig (stroom eerst, alleen agent waar nodig, beperkt):
Verdeel de klus eerst in vaste stappen (routing + chaining). Gebruik agent alleen in subtaak waarbij stappen onbekend zijn; Voeg staplimiet, voortgangsregistratie en verificatieronde toe.
Drie mini-hoesjes
Geval 1 – Workflow in plaats van agent. Eén team heeft de taak "ondersteuningsverzoek verwerken" opgezet met een vrije agent; Soms draaide de agent 15 stappen en ging het verkeerde pad in. De stappen lagen in essentie vast (classificeren → relevante informatie ophalen → concept schrijven → ter goedkeuring indienen). Toen we overstapten op de routing + chaining-workflow, steeg de consistentie van 58% naar 96% en werden de kosten gehalveerd.
Geval 2 — Parallelle winst. Een juridisch team was twintig contracten één voor één aan het samenvatten; In totaal duurde het 4 minuten. Toen we overschakelden naar een parallel patroon (allemaal tegelijk en dan combineren), werd de tijd teruggebracht tot 25 seconden en nam de kwaliteit toe naarmate elke samenvatting de volledige aandacht kreeg.
Geval 3 — Er was geen sprake van een stopvoorwaarde. Een onderzoeksagent bleef eindeloos dezelfde twee tools bellen, op zoek naar informatie die hij niet kon vinden; heeft van de ene op de andere dag aanzienlijke kosten gemaakt. Toen de maximale limiet van 8 stappen en de regel 'Als je het in drie pogingen niet kunt vinden, zeg dan dat ik het niet weet' werden toegevoegd, bleven de kosten onder controle en kwamen er eerlijke 'Ik kon het niet vinden'-antwoorden.
Veel voorkomende fouten
- Alles delegeren aan de agent: De workflow is goedkoper, veiliger en testbaar als de stappen bekend zijn.
- Workflow en agent combineren: Neem jij of het model de controle over? Ontwerp niet zonder dit duidelijk te maken.
- Geen stopvoorwaarde instellen: de agent komt in een oneindige lus terecht en stapelt de kosten op.
- Geen voortgangsregistratie: tijdens een lange missie raakt de agent afgeleid en doet hij opnieuw hetzelfde werk.
- De verificatieronde overslaan: onjuiste maar plausibel ogende uitvoer wordt ongecontroleerd afgeleverd.
Let op: hoe vrijer de agent, hoe groter de explosieradius wordt. Flexibiliteit is niet gratis; elke extra vrijheid voegt onvoorspelbaarheid en risico toe. Kies de smalste adequate oplossing.
Samengevat
- Bij complexiteit geldt het ‘zo nodig’-principe: enkele oproep → RAG → workflow → agent alleen als het echt nodig is.
- In Workflow schrijf je de flow of control (voorspelbaar); Je laat de agenda over aan het model (flexibel maar riskant).
- Drie basispatronen: aaneenschakeling (opeenvolgend afhankelijk), routering (verdeeld op type), parallel (onafhankelijke taken).
- Echte agenten gebruiken de plan-uitvoer-verifieer-cyclus, de stopvoorwaarde en het bijhouden van de voortgang.
- Naarmate de flexibiliteit toeneemt, nemen de onvoorspelbaarheid en de kosten toe; Kies de smalste adequate oplossing.
Applicatie taak
Kies een uit meerdere stappen bestaande taak uit uw eigen bedrijf (bijvoorbeeld 'maandrapport opstellen en distribueren'). (1) Kun je de stappen van deze taak van tevoren opschrijven? Als je het kunt schrijven, ontwerp het dan als een workflow (welk patroon: chaining/routing/parallel?); Als u niet kunt schrijven, leg dan uit waarom er een agent nodig is. (2) Teken het door u gekozen ontwerp met een doospijldiagram. (3) Indien bureau: schrijf op hoe u de stopvoorwaarde, het bijhouden van de voortgang en de verificatieronde gaat instellen. (4) Noem 3 risico’s als je dezelfde taak uitvoert met een “enkele ontwikkelagent”.
controlelijst
- [ ] Ik kan het juiste niveau kiezen op de schaal van 'complexiteit als dat nodig is'.
- [ ] Ik kan het verschil in controle tussen Workflow en agent onderscheiden.
- [ ] Ik kan keten-, routerings- en parallelle patronen in kaart brengen voor de juiste taken.
- [ ] Ik kan de plan-uitvoer-verifieer-cyclus opzetten, de conditie stoppen en de voortgang volgen bij agenten.
- [ ] Ik houd er rekening mee dat te veel flexibiliteit onvoorspelbaarheid en kosten met zich meebrengt.