- Published on
Eenvoud wint het van complexiteit bij de ontwikkeling van Anthropic Agents
De Definitie van Intelligentie Agents
De perceptie van wat een intelligent agent is, varieert sterk. Sommigen zien het als een 'allround butler', die onafhankelijk kan denken, beslissingen kan nemen en complexe taken kan uitvoeren met behulp van tools. Anderen beschouwen het als een 'formele werknemer', die volgens vooraf ingestelde procedures werkt. Anthropic noemt beide types intelligente systemen en maakt onderscheid tussen workflows en agents:
- Workflows: Systemen die Large Language Models (LLM's) en tools organiseren via vooraf gedefinieerde codepaden.
- Agents: Systemen waarbij de LLM het eigen proces en het gebruik van tools dynamisch aanstuurt, waardoor de manier waarop een taak wordt voltooid, onafhankelijk wordt bepaald.
Wanneer Kies je voor een Intelligent Agent?
Anthropic adviseert om bij de ontwikkeling van AI-applicaties het principe 'houd het zo simpel mogelijk' te volgen. Niet elke situatie vereist een complex intelligent systeem. Hoewel intelligente systemen krachtig zijn, kunnen ze leiden tot langzamere reacties en hogere kosten. Ontwikkelaars moeten een balans vinden tussen functionaliteit en efficiëntie.
- Workflows: Geschikt voor duidelijke taken die voorspelbaarheid en consistentie vereisen.
- Agents: Meer geschikt voor grootschalige scenario's die flexibiliteit en modelgestuurde besluitvorming vereisen.
Voor veel toepassingen is het gebruik van goede prompt engineering, in combinatie met het ophalen van relevante informatie en contextuele voorbeelden, vaak voldoende om direct een vraag aan een groot model te stellen.
Het Gebruik van Frameworks
Er zijn diverse frameworks beschikbaar die ontwikkelaars helpen bij het bouwen van AI-agents, zoals:
- LangGraph van LangChain
- Het AI Agent Framework van Amazon Bedrock
- De drag-and-drop tool Rivet voor het bouwen van workflows
- Vellum, een GUI-tool voor het bouwen en testen van complexe workflows
Deze frameworks vereenvoudigen het ontwikkelproces, maar kunnen ook een abstractielaag aan de code toevoegen. Dit maakt de onderliggende logica minder transparant, verhoogt de moeilijkheidsgraad bij het debuggen en kan leiden tot overdreven complexe oplossingen in eenvoudige scenario's.
Anthropic raadt ontwikkelaars aan om te beginnen met het direct gebruiken van de API's van grote modellen. Veel patronen zijn met slechts een paar regels code te realiseren. Als je ervoor kiest om een framework te gebruiken, is het essentieel om de onderliggende principes te begrijpen. Een gebrek aan begrip van de onderliggende mechanismen van frameworks is een belangrijke oorzaak van ontwikkelingsproblemen. Anthropic's cookbook biedt concrete voorbeelden.
Bouwstenen, Workflows en Agents
Basisbouwsteen: Verbeterde LLM
De basisbouwsteen van intelligente systemen is een verbeterde LLM, die over mogelijkheden beschikt zoals het ophalen van informatie en het onthouden van gegevens. De modellen van Anthropic kunnen deze mogelijkheden actief gebruiken, bijvoorbeeld door zoekopdrachten te genereren, tools te selecteren en te bepalen welke informatie moet worden bewaard. Bij het uitbreiden van de functionaliteit is het belangrijk om je te richten op:
- Het aanpassen van de functionaliteit aan de specifieke toepassing.
- Het zorgen voor eenvoudige en goed gedocumenteerde interfaces voor het model.
Het recentelijk door Anthropic uitgebrachte contextprotocol vereenvoudigt de integratie van AI-modellen met ecosystemen van externe tools.
Workflow: Prompt Chaining
Prompt chaining deelt complexe taken op in meerdere stappen, waarbij elke stap een beroep doet op een groot model. De volgende stappen zijn gebaseerd op de resultaten van de vorige stappen. Ontwikkelaars kunnen controlepunten toevoegen om ervoor te zorgen dat het proces volgens plan verloopt. Prompt chaining is geschikt voor situaties waarin complexe taken duidelijk kunnen worden opgedeeld in een reeks vaste subtaken. Elk model concentreert zich op het voltooien van een eenvoudige taak. Hoewel de totale responstijd iets langer kan zijn, wordt de nauwkeurigheid aanzienlijk verbeterd.
Typische toepassingsvoorbeelden:
- Eerst een marketingtekst genereren en deze vervolgens in andere talen vertalen.
- Eerst een documentoverzicht schrijven en de naleving controleren, en vervolgens een volledig document schrijven op basis van het overzicht.
Workflow: Intelligent Sorteren
Sorteringstechnologie bepaalt het type invoertaak en wijst deze toe aan de juiste module. Dit ontwerp optimaliseert elke module voor een specifieke taak, waardoor interferentie tussen verschillende taaktypen wordt vermeden. Intelligent sorteren is geschikt voor situaties waarin taken duidelijk te categoriseren zijn. AI-systemen kunnen grote taalmodellen of traditionele algoritmen gebruiken om het type taak nauwkeurig te identificeren en te sorteren.
Typische toepassingsvoorbeelden:
- In een klantenservicesysteem worden algemene vragen, terugbetalingsverzoeken en technische ondersteuningsvragen naar de juiste processen geleid.
- Eenvoudige, veelvoorkomende vragen worden toegewezen aan kleinere modellen, terwijl moeilijke, zeldzame vragen worden toegewezen aan krachtigere modellen om kosten en snelheid te optimaliseren.
Workflow: Parallel
Grote taalmodellen kunnen taken tegelijkertijd verwerken en de output op een programmeerbare manier aggregeren. De kenmerken van parallelle workflows zijn:
- Taaksegmentatie: Taken worden opgedeeld in subtaken die parallel kunnen worden uitgevoerd, waarbij de resultaten aan het einde worden geïntegreerd.
- Stemmechanisme: Dezelfde taak wordt meerdere keren uitgevoerd, waarbij het beste resultaat wordt gekozen of meerdere antwoorden worden gecombineerd.
De parallelle methode is zeer effectief wanneer subtaken parallel kunnen worden uitgevoerd om de snelheid te verhogen, of wanneer meerdere perspectieven nodig zijn om een betrouwbaarder resultaat te krijgen. Voor complexe taken is het effectiever om elke aanroep op een specifiek aspect te richten.
Typische toepassingsvoorbeelden:
- Taaksegmentatie:
- Beveiliging: het ene model verwerkt gebruikersverzoeken, het andere voert contentmoderatie uit.
- Prestatie-evaluatie: verschillende modellen evalueren de prestatie-indicatoren van het systeem.
- Stemmechanisme:
- Codebeveiligingscontrole: meerdere detectiemodellen werken samen om codekwetsbaarheden te vinden.
- Contentmoderatie: meerdere modellen evalueren de contentveiligheid vanuit verschillende perspectieven.
Workflow: Leider - Uitvoerder
Een centraal groot taalmodel deelt taken dynamisch op en wijst deze toe aan uitvoerdermodellen, en vat de resultaten samen. Deze workflow is geschikt voor complexe taken waarbij de specifieke stappen moeilijk van tevoren te bepalen zijn. De taakverdeling is niet vast, maar wordt dynamisch door het AI-systeem bepaald.
Typische toepassingsvoorbeelden:
- Programmeerapplicaties waarbij meerdere bestanden complex moeten worden aangepast.
- Zoektaken waarbij informatie uit meerdere bronnen moet worden verzameld en geanalyseerd.
Workflow: Evalueren - Optimaliseren
Een LLM-aanroep genereert een antwoord, terwijl een andere evaluatie en feedback geeft, waardoor een cyclus ontstaat. Deze workflow is vooral effectief wanneer er duidelijke evaluatiecriteria zijn en een iteratieve verfijning een aanzienlijke meerwaarde kan opleveren. De LLM kan feedback geven, vergelijkbaar met het proces waarbij een menselijke schrijver herhaaldelijk wijzigingen aanbrengt.
Typische toepassingsvoorbeelden:
- Literaire vertaling: het evaluatiemodel detecteert taalverschillen die in de vertaling zijn weggelaten en biedt wijzigingssuggesties.
- Complexe zoekopdrachten: het evaluatiemodel bepaalt of het nodig is om dieper te zoeken.
Intelligent Agents
Intelligente agents zijn ontstaan met de volwassenheid van LLM's in belangrijke mogelijkheden zoals het begrijpen van complexe invoer, redeneren, plannen, het gebruik van tools en foutenherstel. Het werk van een intelligent agent begint met een commando van een menselijke gebruiker of een interactieve discussie. Zodra de taak is gedefinieerd, plant en handelt de agent onafhankelijk, waarbij mogelijk meer informatie van mensen nodig is of beslissingen van mensen worden gevraagd.
Bij elke stap in het uitvoeringsproces is het essentieel om 'de waarheid' uit de omgeving te halen. Agents kunnen pauzeren bij controlepunten of wanneer ze een blokkade tegenkomen om feedback van mensen te vragen. Taken worden meestal beëindigd na voltooiing, maar bevatten vaak ook stopvoorwaarden. Agents kunnen complexe taken verwerken, maar hun implementatie is meestal eenvoudig. Het is vaak slechts een grote taalmodel dat tools gebruikt in een lus op basis van omgevingsfeedback. Daarom is het essentieel om de toolset en de documentatie ervan duidelijk en doordacht te ontwerpen.
Agents zijn geschikt voor open vragen, waarbij het aantal benodigde stappen moeilijk te voorspellen is en geen vaste, gecodeerde paden kunnen worden gebruikt. De autonomie van agents maakt ze een ideale keuze voor het uitbreiden van taken in een vertrouwde omgeving. De autonomie van agents betekent hogere kosten en er is een risico op het accumuleren van fouten. Het wordt aanbevolen om uitgebreid te testen in een sandboxomgeving en passende veiligheidsmaatregelen in te stellen.
Toepassingsvoorbeelden van agents:
- Een code-agent voor het oplossen van SWE-bench taken die het bewerken van meerdere bestanden op basis van een taakbeschrijving omvatten.
- De functie 'Computer use' van Anthropic, waarbij Claude een computer gebruikt om taken uit te voeren.
Combinatie en Aanpassing
Deze bouwstenen zijn niet voorschrijvend en ontwikkelaars kunnen ze naar eigen inzicht vormgeven en combineren. De sleutel tot succes ligt in het meten van prestaties en het iteratief implementeren. Complexiteit moet alleen worden overwogen wanneer eenvoudigere oplossingen niet werken. Succes in het LLM-domein ligt niet in het bouwen van de meest complexe systemen, maar in het bouwen van systemen die aan de behoeften voldoen. Begin met eenvoudige prompts, optimaliseer ze met uitgebreide evaluaties en voeg alleen meervoudige stapsystemen toe als eenvoudiger oplossingen niet werken.
Bij het implementeren van intelligente agents moeten de volgende principes worden gevolgd:
- Houd het ontwerp van de agent eenvoudig.
- Geef prioriteit aan transparantie van de agent, waarbij elke geplande stap duidelijk wordt weergegeven.
- Zorg voor een zorgvuldig gebouwde agent-computerinterface (ACI) door middel van uitgebreide tool documentatie en tests.