Software ontwikkelen met agentic development?
Agentic development is een opkomende aanpak voor het ontwikkelen van software met AI-agents en agentic coding. In plaats van ontwikkelaars alleen te ondersteunen met suggesties of codefragmenten, gaan agentic systemen verder dan traditionele AI-assistenten door namens ontwikkelaars te handelen. Dit omvat het schrijven van code, het uitvoeren van tests, het debuggen van problemen en zelfs samenwerken in verschillende workflows.
Nu organisaties meer waarde uit AI willen halen, betekent agentic ontwikkeling een verschuiving van passieve tools naar actieve samenwerkingspartners. Deze ontwikkeling is vooral relevant voor IT-leiders, architecten en engineeringteams die de kloof willen dichten tussen experimenteren met AI en gebruik in de praktijk in productieomgevingen, en die zakelijke impact willen realiseren.
Wat betekent agentic?
Agentic betekent dat iets zelfstandig naar een doel kan handelen. In AI verwijst het naar systemen die AI-agents gebruiken om te plannen, beslissingen te nemen en acties uit te voeren in meerdere stappen, met beperkte menselijke tussenkomst. Een AI-agent binnen een systeem met agents kan:
- Zijn omgeving waarnemen.
- Neem beslissingen op basis van doelen.
- Actie ondernemen om die doelen te bereiken.
- Leren van resultaten uit het verleden.
- Aanpassen aan scenario's en menselijke inbreng.
Bij softwareontwikkeling ondersteunt een agentic systeem ontwikkelaars bij hun dagelijkse werkzaamheden. Het begrijpt doelstellingen, splitst deze op in taken, voert die taken uit met behulp van tools en verfijnt de resultaten in de loop van de tijd – alles binnen vastgestelde kaders.
Agentic AI-ontwikkeling vs. traditionele AI-assistentie
In plaats van constante menselijke input te vereisen, kunnen agentic systemen met een grotere mate van onafhankelijkheid functioneren, waardoor ze bijzonder nuttig zijn in complexe omgevingen waar taken meerdere tools en fasen omvatten.
Hoe werkt agentic ontwikkeling?
Agentic ontwikkeling is gebaseerd op een gestructureerde cyclus van planning, uitvoering en verfijning. Hoewel implementaties kunnen variëren, volgen de meeste systemen een vergelijkbaar patroon.
Doeldefinitie
Het proces begint met een door een mens geformuleerde doelstelling op hoog niveau, zoals:
- 'Bouw een API-eindpunt voor onboarding.'
- 'Refactor deze module voor betere prestaties.'
- 'Schrijf integratietests voor het afrekenproces.'
De agent interpreteert het doel en bepaalt de succescriteria.
Taakplanning
De agent splitst het doel op in kleinere, uitvoerbare stappen. Bijvoorbeeld:
- Analyseer de bestaande codebase
- Identificeer afhankelijkheden
- Schrijf vereiste functies
- Genereer testcases
Deze planningsfase onderscheidt agentic systemen van eenvoudige assistenten. Ze vormen gestructureerde workflows in plaats van te reageren op afzonderlijke prompts.
Toolgedreven uitvoering
Agents gebruiken andere agents via het Agent2Agent-protocol, en externe systemen die beschikbaar worden gesteld via Model Context Protocol-servers, om te communiceren met tools waarmee ze taken in de gehele ontwikkelingscyclus kunnen plannen en uitvoeren. Met deze gecombineerde mogelijkheid kan agentic coding van suggesties naar daadwerkelijke actie gaan.
Gebruik van agents:
- API-gebaseerde services voor integratie met externe systemen en gegevensbronnen.
- Workflows en automatiseringstools voor het uitvoeren en orkestreren van bedrijfsprocessen.
- Kennisbronnen en repositories voor het ophalen van gestructureerde en ongestructureerde informatie.
- Communicatie- en samenwerkingstools voor meldingen, berichtenuitwisseling en teamcoördinatie.
- Bedrijfssystemen en applicaties voor toegang tot en het bijwerken van bedrijfsgegevens en records.
- Bestandsopslag en documentsystemen voor het lezen, genereren en beheren van content.
- Aangepaste functies en services voor de verwerking van gespecialiseerde bedrijfslogica, validatie en operationele taken.
De agent kan vervolgens stap voor stap taken uitvoeren:
- Schrijft of wijzigt code
- Voert tests uit
- Corrigeert fouten
- Werkt documentatie bij
De uitvoering is adaptief, waarbij de agent zijn aanpak aanpast op basis van resultaten en uitkomsten.
Iteratieve feedbackloops
Agents evalueren continu resultaten:
- Is de code succesvol gecompileerd?
- Zijn de tests geslaagd?
- Worden de prestatiedoelen gehaald?
Zo niet, dan herziet de agent zijn aanpak en probeert het opnieuw, waardoor een zelfverbeterende lus ontstaat die geheugen benut om van eerdere resultaten te leren en toekomstige prestaties te verbeteren.
Menselijke beoordeling
Ondanks de toenemende autonomie blijft het menselijk brein een cruciaal onderdeel van agentic coding. Menselijke beoordeling is nodig voor:
- Wijzigingen goedkeuren
- Correcties aanbrengen
- Vangrails instellen
Agentic ontwikkeling is het meest effectief wanneer deze gepaard gaat met doordacht menselijk toezicht.
Kerncomponenten van agentic ontwikkeling
Verschillende fundamentele elementen zorgen ervoor dat agentic systemen effectief functioneren.
Agents
Agents zijn de primaire actoren. Verschillende agents kunnen zich specialiseren in specifieke rollen, zoals codering, testen of documentatie. Ze combineren redeneervermogen met uitvoeringslogica, waardoor ze het volgende kunnen doen:
- Interpreteer doelen
- Plan taken
- Coördineer acties
Modellen
De kern van agents bestaat uit AI-modellen, meestal large language models (LLM's), die vaak worden geleverd via geïntegreerde AI-platforms die ontwikkeling, implementatie en schaalvergroting ondersteunen. Deze modellen bieden onder meer:
- Begrip van natuurlijke taal
- Codegenerering
- Redeneermogelijkheden
In de praktijk kunnen agentic systemen, afhankelijk van de taak, een mix van algemene en gespecialiseerde LLM's voor code gebruiken. Hieronder kunnen modellen vallen die zijn geoptimaliseerd voor codeaanvulling, herstructurering, testgeneratie en begrip op repositoryniveau, evenals domeinspecifiek afgestemde modellen die zijn ontworpen voor specifieke talen of frameworks.
Tools
Tools breiden de mogelijkheden van agents uit. Voorbeelden zijn onder meer:
- Zoeken op internet: vindt informatie op internet.
- Browserautomatisering: interageert automatisch met websites.
- API-connectors: roept externe services en systemen aan via API's.
- Bestandsbewerkingen: leest, schrijft, wijzigt of verwijdert bestanden in lokale of cloudopslagsystemen.
- Terminaluitvoering: voert opdrachtregelinstructies uit.
- Code-uitvoering: voert gegenereerde of bestaande code uit.
- Pijplijnen voor continue integratie/continue implementatie (CI/CD): bouwen, testen en implementeren code.
- Low-code/no-code platforms
Geheugen
Met geheugen kunnen agents het volgende doen:
- Behouden van context binnen taken
- Leren van eerdere interacties
- Op de hoogte blijven van de codebase
In systemen met agents wordt geheugen vaak opgesplitst in:
- Kortetermijngeheugen dat de directe context voor de huidige taak of het huidige gesprek vasthoudt (zoals recente prompts of tussenresultaten).
- Langetermijngeheugen dat duurzame kennis in de loop der tijd opslaat (zoals projectgeschiedenis, kennis van de codebase of gebruikersvoorkeuren), waardoor hergebruik en continuïteit tussen sessies mogelijk zijn.
Vangrails
Grenzen leggen beperkingen op, zoals toegangscontrole, codekwaliteit, beveiliging en controleerbaarheid.
Agentic ontwikkeling versus AI-codeerassistenten
AI-ondersteuning bij softwareontwikkeling heeft zich stapsgewijs ontwikkeld, van eenvoudige productiviteitshulpmiddelen tot steeds autonomere systemen. Inzicht in deze verschillen helpt teams de juiste verwachtingen te stellen over wat agentic ontwikkeling mogelijk maakt.
Tools voor automatisch aanvullen
Basistools met AI bieden codeaanvulling en syntaxistips. Tools voor automatische aanvulling en syntaxis bieden lichte ondersteuning door de volgende regelcode te voorspellen of fouten te markeren. Ze verbeteren de efficiëntie van individuele taken, maar blijven beperkt tot reactieve ondersteuning in één stap.
Copilots
Tools in copilotstijl bieden rijkere, contextbewuste ondersteuning, maar blijven afhankelijk van menselijke aansturing. Ze kunnen functies genereren, refactorings voorstellen en code uitleggen, maar zijn nog steeds afhankelijk van ontwikkelaars om elke stap te definiëren, wijzigingen door te voeren en workflows te beheren.
AI-coderingsagents
In plaats van ondersteuning te bieden bij losstaande taken, kunnen AI-agents voor programmeren binnen agentic ontwikkelsystemen workflows met meerdere stappen plannen, met tools communiceren, tests uitvoeren, problemen oplossen en itereren richting een gedefinieerd doel met minder voortdurende menselijke input.
De verschuiving van suggestie naar actie
Het belangrijkste verschil is de mogelijkheid om van suggestie naar uitvoering te gaan, waarbij ontwikkelaars niet alleen worden geholpen, maar doelstellingen daadwerkelijk worden gerealiseerd. Terwijl assistants ontwikkelaars helpen sneller te werken, stelt agentic ontwikkeling systemen in staat verantwoordelijkheid te nemen voor het realiseren van doelstellingen, waarbij intenties onder menselijke begeleiding en controle worden omgezet in werkende resultaten.
Voordelen van agentic ontwikkeling
Deze voordelen weerspiegelen een bredere verschuiving naar samenwerking tussen mens en AI. Duidelijke controlepunten, goedkeuringsworkflows en de mogelijkheid om in te grijpen, zorgen ervoor dat agentische systemen het menselijk oordeel ondersteunen in plaats van vervangen.
- Snelheid: Agents versnellen het oplossen van bugs, ontwikkelcycli en de time-to-market. Ze voeren taken met meerdere stappen van begin tot eind uit, waardoor overdrachten en wachttijden worden verminderd. Teams kunnen sneller van idee naar implementatie gaan, waardoor de time-to-market voor nieuwe functies en verbeteringen wordt verkort.
- Productiviteit: Ontwikkelaars kunnen zich richten op ontwerp en innovatie. Door routinematig en operationeel werk uit te besteden, maken agentische systemen ontwikkelaars vrij om zich te richten op activiteiten met meer waarde, zoals architectuur, probleemoplossing en innovatie. Dit leidt tot een beter gebruik van technisch talent.
- Verminderd handmatig werk: Routinetaken zoals testen en refactoring worden geautomatiseerd. Repetitieve taken, zoals het schrijven van boilerplate-code, het genereren van tests, refactoring en documentatie, kunnen worden geautomatiseerd of gedeeltelijk geautomatiseerd, waardoor de cognitieve belasting afneemt en de kans op burn-out bij ontwikkelaars wordt verminderd.
- Iteratie: Feedbackloops zorgen voor snelle verbetering. Ingebouwde feedbackloops maken snel testen, valideren en verfijnen mogelijk. Agents kunnen snel problemen identificeren, oplossingen voorstellen en het opnieuw proberen, wat sneller leren en meer stapsgewijze verbetering ondersteunt.
- Schaal: Agentic workflows worden gestandaardiseerd en opgeschaald voor alle teams. Agentic workflows maken het eenvoudiger om ontwikkelpraktijken voor alle teams te standaardiseren. Naarmate het gebruik toeneemt, kunnen organisaties consistente patronen, controles en kwaliteitsnormen toepassen zonder de levering te vertragen.
- Kwaliteit: Agents kunnen consistente patronen toepassen, code refactoren en automatisch tests genereren, waardoor teams hun codebases in de loop der tijd schoner en betrouwbaarder kunnen houden.
- Beveiliging: Agentische workflows kunnen beveiligingscontroles rechtstreeks in ontwikkelings- en CI/CD-pijplijnen integreren, zodat kwetsbaarheden worden opgespoord voordat code in productie gaat.
Samen weerspiegelen deze voordelen een bredere verschuiving naar gezamenlijke ontwikkeling tussen mensen en AI, waarbij agents de impact van ontwikkelaars versterken, terwijl mensen de strategische richting en het toezicht behouden.
Voorbeelden van agentic ontwikkeling
Agentic ontwikkeling kan gedurende de hele levenscyclus van appontwikkeling worden toegepast, van vroeg featureontwerp tot doorlopend onderhoud. Deze voorbeelden illustreren hoe AI-codeeragenten verder gaan dan geïsoleerde ondersteuning en gecoördineerde, resultaatgerichte taken uitvoeren. Ze werken samen met ontwikkelaars om handmatige inspanningen te verminderen, de levering te versnellen en de consistentie te verbeteren.
- Functieontwikkeling: Agents genereren en integreren code.
- Code herstructureren: Agents optimaliseren en moderniseren codebases.
- Testen: Agents maken en voeren testsuites uit.
- Debuggen: Agents identificeren en lossen problemen op.
- Documentatie: Agents produceren automatisch documentatie.
Risico's en governance voor ontwikkeling met agents
AI-agents moeten zo worden ontworpen dat ze kunnen worden opgeschaald binnen teams en voor verschillende use cases. Dit omvat ondersteuning voor vereisten op het gebied van veiligheid en compliance, betrouwbaarheid op schaal, integratie met bedrijfssystemen en de mogelijkheid om mee te evolueren naarmate de behoeften van de organisatie toenemen. Menselijk toezicht is cruciaal voor het inbouwen van governancecontroles om risico's te helpen verminderen.
- Machtigingen: Agents hebben vaak toegang nodig tot codebases, systemen en gegevens. Zonder duidelijk gedefinieerde machtigingen en toegangscontroles volgens het least-privilegeprincipe kan deze autonomie het risico op onbedoelde wijzigingen, blootstelling van gegevens of beleidsovertredingen vergroten.
- Beveiliging: Gegenereerde code kan kwetsbaarheden introduceren als deze niet zorgvuldig wordt beoordeeld. Beveiligingspraktijken zoals statische analyse, het scannen van afhankelijkheden en veilige standaardinstellingen blijven essentieel in agentic workflows.
- Kwaliteitscontrole: De kwaliteit en consistentie van agentoutput kunnen variëren en validatie vereisen. Validatiestappen, zoals testen, linting en menselijke beoordeling, helpen ervoor te zorgen dat gegenereerde code voldoet aan architectuurstandaarden en prestatieverwachtingen.
- Controleerbaarheid: Organisaties hebben duidelijke traceerbaarheid nodig van wat agents hebben gedaan, wanneer ze dat hebben gedaan, en waarom. Gedetailleerde logs en beslissingstrajecten zijn essentieel voor compliance, probleemoplossing, en continue verbetering.
- Betrouwbaarheid: Agents kunnen doelen verkeerd interpreteren, werken met onvolledige context of falen in uitzonderlijke gevallen. Waarborgen zoals begrensde uitvoering, nieuwe pogingen en escalatiepaden helpen deze risico's te beperken.
- Toezicht: Mensen blijven verantwoordelijk voor de resultaten. Duidelijke controlepunten, goedkeuringsworkflows en de mogelijkheid om in te grijpen, zorgen ervoor dat agentische systemen het menselijk oordeel ondersteunen in plaats van vervangen.
Agentic ontwikkeltools evalueren
Het selecteren van de juiste tools voor agentic ontwikkeling is cruciaal om waarde te realiseren met behoud van controle. Naast pure functionaliteit moeten teams beoordelen hoe goed tools passen binnen hun bestaande omgevingen, governancemodellen en behoeften op het gebied van schaalbaarheid op lange termijn.
Codebasebewustzijn
Effectieve tools moeten de structuur, afhankelijkheden en conventies van uw codebase begrijpen. Dit omvat het behouden van context tussen bestanden en repositories, het herkennen van bestaande patronen en het aanpassen aan gevestigde standaarden in plaats van fragmentatie te introduceren.
Toegang tot tools
Agents moeten naadloos integreren met het bredere ontwikkelingsecosysteem. Dit omvat IDE's, versiebeheersystemen, CI/CD-pijplijnen, testframeworks, API's en runtime-omgevingen. Veilige, goed afgebakende toegang is essentieel om betekenisvolle uitvoering mogelijk te maken zonder overmatige blootstelling.
Observatie
Zichtbaarheid in de uitvoering is essentieel. Teams hebben duidelijke zichtbaarheid nodig in wat agents doen en waarom. Sterke observeerbaarheid omvat uitvoeringslogs, beslissingstraces, tussentijdse uitvoer en prestatiemeetgegevens, wat debugging, vertrouwen en continue verbetering mogelijk maakt.
Controles
Tools voor ondernemingen bieden robuuste governancefuncties, zoals op rollen gebaseerde toegangscontrole, goedkeuringsworkflows, beleidshandhaving en auditlogboeken. Deze controles helpen ervoor te zorgen dat grotere autonomie geen afbreuk doet aan beveiliging, compliance of kwaliteitsnormen.
Geschiktheid voor bedrijven
Oplossingen moeten veilig kunnen opschalen binnen organisaties. Dit omvat ondersteuning voor vereisten op het gebied van veiligheid en compliance, betrouwbaarheid op schaal, integratie met bedrijfssystemen en de mogelijkheid om mee te evolueren naarmate de behoeften van de organisatie toenemen.
Aan de slag met agentic ontwikkeling
De invoering van agentic ontwikkeling is een gestructureerde evolutie naar samenwerking tussen mensen en AI in plaats van vervanging. Voor teams die onderzoeken hoe ze AI-agents kunnen ontwikkelen, zijn best practices de sleutel tot succes. Begin bewust, combineer experimenteren met duidelijke controles en leer terwijl je opschaalt.
- Begin met pilot usecases: begin met kleine, afgebakende scenario's, zoals het genereren van tests, documentatie of afgebakend featurewerk. Gebruik deze aanpak om het doel ervan te bepalen, de waarde te bevestigen, het model te verifiëren en vertrouwen op te bouwen zonder onnodige risico's te introduceren.
- Stel richtlijnen op: Definieer duidelijk beleid voor beveiliging, toegang, kwaliteitsnormen en acceptabel gebruik. Richtlijnen helpen agents autonoom te handelen en tegelijkertijd in lijn te blijven met organisatorische en wettelijke vereisten.
- Implementeer controlepunten voor menselijke controle: Handhaaf menselijke controle in belangrijke fasen, waaronder codewijzigingen, implementaties en kritieke beslissingen. Deze controlepunten helpen vertrouwen, verantwoordelijkheid en kwaliteit te behouden.
- Succesmetrics definiëren: Houd metrics bij, zoals ontwikkelsnelheid, foutpercentages, acceptatie en tevredenheid van ontwikkelaars. Duidelijke maatstaven maken het gemakkelijker om impact aan te tonen en toekomstige investeringen te sturen bij de invoering van een nieuw technologieplatform.
- Geleidelijk opschalen: Breid agentic workflows stapsgewijs uit naar teams en use cases. Door geleidelijk op te schalen kunnen organisaties patronen standaardiseren, governance verfijnen en lessen die ze in de loop van de tijd hebben geleerd, integreren.
Veelgestelde vragen
SAP-PRODUCT
AI-oplossingen van idee naar productie
Gebruik AI om agentic oplossingen te bouwen, implementeren en beheren, en versnel zo de ontwikkeling op schaal.