Blog GitHub Data & AI

13 veelvoorkomende fouten bij agentic development met GitHub Copilot

Bij agentic development voeren AI-agents samenhangende taken uit binnen de SDLC, in plaats van alleen losse programmeertaken. GitHub Copilot loopt hierin voorop: agents kunnen inmiddels in meerdere bestanden werken, wijzigingen doorvoeren, taken uitvoeren en bijdragen aan pull requests.

Voor veel developers voelt het alsof ze programmeren met een ervaren pair programmer. Maar geef een agent te veel vrijheid, te weinig context of te veel vertrouwen, en fouten kunnen zich snel opstapelen.

In dit artikel bespreken we de meest voorkomende valkuilen bij agentic development en hoe je ze voorkomt.

Niels Kroeze

Auteur

Niels Kroeze Cloud Content Specialist

Leestijd 11 minuten Gepubliceerd: 08 oktober 2026

KEY POINTS:

  • Agentic development geeft AI meer verantwoordelijkheid binnen de SDLC. Daardoor kunnen fouten ook grotere gevolgen hebben.
  • Onduidelijke prompts, ontbrekende context en onvoldoende afbakening zijn veelvoorkomende oorzaken van slechte agent-output.
  • Houd altijd een mens betrokken, ook als gegenereerde code er goed uitziet en alle tests slagen.
  • Neem security, governance en toegangsrechten vanaf het begin mee in je agent-workflows.
  • GitHub Copilot werkt het best met duidelijke context, een afgebakende scope en goede controles in je developmentproces.

 

 

Wat zijn de meest voorkomende fouten?

De belangrijkste risico’s bij agentic development met GitHub Copilot lopen uiteen van vage prompts en ontbrekende context tot reviewmoeheid, securityproblemen en agents die buiten hun scope werken.

Veelvoorkomende valkuil Wat kan er misgaan?
Onduidelijke prompts leiden tot verkeerde output De agent vult ontbrekende vereisten zelf in en lost mogelijk het verkeerde probleem op.
Contextverlies tussen sessies Eerdere architectuurkeuzes, beperkingen of gerelateerde wijzigingen gaan verloren tussen taken.
Te veel vertrouwen in overtuigende output Verzorgde code wordt geaccepteerd omdat die correct lijkt, terwijl de logica fouten bevat.
Reviewmoeheid Een grote hoeveelheid agent-gegenereerde PR’s maakt menselijke reviews oppervlakkiger en minder effectief.
Verborgen afhankelijkheden en onbedoelde neveneffecten Een lokale wijziging verstoort ongemerkt het gedrag elders in het systeem.
Hiaten in governance en compliance Teams verliezen zicht op wat de agent heeft gewijzigd, waarom en wie het resultaat heeft goedgekeurd.
Prompt drift Ad-hocwijzigingen aan prompts zorgen voor inconsistent gedrag tussen developers, repositories of teams.
Agents die buiten hun scope werken De agent wijzigt bestanden, configuratie of infrastructuur die hij niet moest aanpassen.
Te weinig context voor betere suggesties Vage namen, beperkte comments en onduidelijke vereisten leiden tot minder bruikbare of irrelevante suggesties.
Copilot geen duidelijke werkscope geven Te veel niet-gerelateerde code of context maakt het voor Copilot lastiger om zich op de juiste patronen te richten.
Onvoldoende aandacht voor code security Werkende code kan toch kwetsbaarheden of onveilige dependencies introduceren, of risico’s door kwaadaardige instructies met zich meebrengen.
Op Copilot vertrouwen in plaats van op basisvaardigheden Developers keuren code goed die ze onvoldoende begrijpen om later te debuggen of te onderhouden.
Eenvoudige wijzigingen onnodig ingewikkeld maken Kleine taken leiden tot onnodige abstracties, dependencies en extra onderhoudswerk.

 

Checklist Github Copilot

Hoeveel haalt je team uit GitHub Copilot?

Gebruik de GitHub Copilot Checklist om te beoordelen waar je developmentteam staat en welke verbeteringen nog mogelijk zijn.

Bekijk best practices om Copilot effectief en consistent toe te passen, veilig te gebruiken en onnodige kosten te voorkomen.

Bekijk de gratis checklist

Hoe voorkom je deze valkuilen met GitHub Copilot?

Door veelvoorkomende valkuilen te herkennen, houd je AI-gegenereerde code veilig, betrouwbaar en passend bij je project.

1. Onduidelijke prompts leiden tot verkeerde output

Het probleem: De agent levert resultaten die correct lijken, maar dat niet zijn, omdat het doel onvoldoende duidelijk was. Dit is een van de makkelijkste fouten om te maken bij agentic development. Een vage opdracht geeft de agent ruimte om de taak anders te interpreteren dan je bedoelt.

Waarom dit een probleem is: Een opdracht als “los het authenticatieprobleem op” is misschien volkomen duidelijk voor de developer die het al drie dagen onderzoekt. De agent heeft diezelfde context niet en moet zelf invullen wanneer het probleem is opgelost. Dat kan leiden tot een technisch geldige wijziging die het verkeerde probleem oplost, onnodige aanpassingen introduceert of een belangrijke productvereiste negeert.

Zo voorkom je dit:

  • Gebruik gestructureerde prompttemplates met expliciete acceptatiecriteria
  • Voeg beperkingen toe: "wijzig X niet" of "de scope is beperkt tot Y"
  • Laat de agent de opdracht in eigen woorden herhalen voordat hij begint

Bij grotere taken helpt het ook om het verwachte gedrag te beschrijven, in plaats van alleen de implementatie voor te schrijven.

2. Contextverlies tussen sessies

Het probleem: Een agent verliest eerdere beslissingen, architectuurkeuzes of gerelateerde wijzigingen uit het oog wanneer hij in meerdere bestanden, repositories of lange sessies werkt.

Waarom dit een probleem is: De agent begrijpt misschien de code die hij op dat moment ziet, zonder te weten waarom eerdere architectuurkeuzes zijn gemaakt. Misschien heeft je team zes maanden geleden een bepaald framework afgewezen. Een agent die een nieuwe sessie begint, weet daar mogelijk niets van. Daardoor kunnen inconsistente patronen, dubbel werk of wijzigingen ontstaan die eerdere beslissingen terugdraaien. Dit merk je vooral in grotere codebases, bijvoorbeeld wanneer development meerdere repositories, teams of langdurige taken omvat.

Zo voorkom je dit:

  • Houd een beknopt context.md-bestand of architecture decision record bij dat de agent altijd eerst leest
  • Geef relevante bestandspaden en eerdere diffs expliciet mee in de prompt
  • Werk met korte, afgebakende taken in plaats van lange sessies met meerdere stappen

Houd deze contextbestanden actueel, zodat de agent geen nieuwe beslissingen neemt op basis van verouderde informatie.

3. Te veel vertrouwen in overtuigende output

Het probleem: Teams mergen agent-gegenereerde code zonder grondige controle, omdat die er “goed uitziet”.

Waarom dit een probleem is: AI-gegenereerde code kan er verzorgd uitzien en bekende developmentpatronen volgen, terwijl er toch subtiele bugs, kleine logische fouten, gemiste edge cases, verouderde API’s of slechte architectuurkeuzes in zitten. Dat kan onterecht vertrouwen geven, vooral wanneer developers snel werken en de oplossing op het eerste gezicht logisch lijkt.

Zo voorkom je dit:

  • Behandel agent-output als een PR van een junior developer: review die altijd
  • Stel CI, linting, typechecks en testdekkingscontroles verplicht vóór het mergen
  • Hanteer een beleid waarbij PR’s van agents niet automatisch worden gemerged totdat voldoende vertrouwen is opgebouwd

4. Reviewmoeheid

Het probleem: Een grote hoeveelheid agent-gegenereerde PR’s overbelast menselijke reviewers, waardoor de kwaliteit van reviews afneemt.

Waarom dit een probleem is: Agents kunnen wijzigingen veel sneller genereren dan developers ze kunnen reviewen. Als het aantal PR’s groeit, gaan reviewers mogelijk diffs vluchtig bekijken, te veel op samenvattingen vertrouwen of wijzigingen goedkeuren zonder alle betrokken onderdelen te controleren. Meer development-output helpt alleen als het team dezelfde reviewstandaard kan behouden.

Zo voorkom je dit:

  • Stel een maximale PR-grootte in, bijvoorbeeld maximaal 400 gewijzigde regels
  • Gebruik een review-agent om diffs vooraf te controleren en samen te vatten voor de menselijke review
  • Bundel kleine, samenhangende wijzigingen in logische groepen

Laat menselijke reviewers verantwoordelijk blijven voor de definitieve goedkeuring, ook als een andere agent de wijziging al heeft gereviewd.

CIE Visual

GitHub Copilot Team Workshop

Leer tijdens een interactieve teamsessie hoe developers GitHub Copilot effectiever inzetten in hun dagelijkse workflows. Georganiseerd door Microsoft, GitHub en Intercept.

Meer info

5. Verborgen afhankelijkheden en onbedoelde neveneffecten

Het probleem: De agent lost lokaal iets op, maar verstoort ongemerkt het gedrag elders in het systeem.

Waarom dit een probleem is: Een wijziging die op zichzelf lijkt te staan, kan invloed hebben op gedeelde methodes, API’s, achtergrondprocessen of integraties elders in de applicatie. Dit is vooral riskant in bestaande software waarin afhankelijkheden niet altijd duidelijk zijn. Lokale tests kunnen slagen terwijl een ander deel van het product niet meer werkt zoals verwacht. Dit probleem is extra lastig bij software met legacycode en ongedocumenteerde afhankelijkheden.

Zo voorkom je dit:

  • Laat agents de volledige testsuite uitvoeren, niet alleen tests voor de gewijzigde onderdelen
  • Gebruik impactanalyse: de agent moet aangeven welke bestanden of modules door de wijziging geraakt kunnen worden
  • Stel integratietests verplicht voordat een PR van een agent kan worden gemerged

Schrijf unit tests, integratietests en controles voor edge cases voor alle code die Copilot genereert.

6. Hiaten in governance en compliance

Het probleem: Er is geen duidelijk audit trail van wat de agent heeft besloten, waarom en wat hij heeft gewijzigd.

Waarom dit een probleem is: Zodra agents acties uitvoeren in repositories, moeten teams weten welke agent handelde, welke instructies hij kreeg en wie het resultaat goedkeurde. Zonder die registratie wordt het lastiger om onverwachte wijzigingen te onderzoeken. Dit kan ook problemen opleveren voor organisaties met security-, audit- of compliancevereisten.

Zo voorkom je dit:

  • Gebruik GitHub Apps, één per agent, zodat elke actie aan een agent wordt gekoppeld en wordt gelogd
  • Leg prompts, antwoorden en diffs vast in een onveranderbare auditopslag
  • Vereis menselijke goedkeuring op vastgelegde controlemomenten, zoals architectuur, security en release

7. Prompt drift

Het probleem: Engineers passen prompts individueel en ad hoc aan, waardoor agents na verloop van tijd inconsistent gedrag vertonen.

Waarom dit een probleem is: De ene developer verandert een instructie, een andere maakt een eigen versie en een derde kopieert een oudere prompt naar een andere repository. Kleine verschillen kunnen invloed hebben op codestijl, tests, scope en architectuurkeuzes. Uiteindelijk denken teams misschien dat ze dezelfde agentconfiguratie gebruiken, terwijl het gedrag verschilt.

Zo voorkom je dit:

  • Behandel prompts als code: sla ze op in versiebeheer en review wijzigingen via een PR
  • Maak een gedeelde promptbibliotheek met templates per agentrol en houd de versies bij
  • Voer regressietests uit op promptwijzigingen voordat je ze merget

Wijs duidelijke eigenaren aan voor belangrijke prompts en instructiebestanden, zodat wijzigingen niet ongemerkt plaatsvinden.

8. Agents die buiten hun scope werken

Het probleem: Een agent wijzigt bestanden, configuraties of infrastructuur die hij niet mocht aanpassen.

Waarom dit een probleem is: Een agent kan besluiten dat extra wijzigingen nodig zijn om de taak af te ronden. Daardoor kan een kleine applicatiewijziging uitlopen op een onverwachte aanpassing aan CI/CD, infrastructuur of gedeelde configuratie. Reviewers richten zich mogelijk op de gevraagde wijziging en missen andere aanpassingen in de diff.

Zo voorkom je dit:

  • Gebruik GitHub App-permissies volgens het least privilege-principe, met alleen leestoegang voor gevoelige paden
  • Voeg CODEOWNERS-regels toe, zodat wijzigingen buiten de scope menselijke goedkeuring vereisen
  • Neem in elke prompt expliciet op welke onderdelen de agent niet mag wijzigen

9. Onvoldoende aandacht voor code security

Het probleem: Teams controleren AI-gegenereerde code op functionaliteit, maar besteden minder aandacht aan de securitygevolgen van de implementatie.

Waarom dit een probleem is: Code kan alle tests doorstaan en toch kwetsbaarheden introduceren. Gegenereerde wijzigingen kunnen onveilige verwerking van invoer, zwakke authenticatielogica, blootgestelde secrets of riskante dependencies bevatten. De impact neemt toe als een agent in meerdere bestanden kan werken of commando’s kan uitvoeren.

Zo voorkom je dit:

  • Neem securityvereisten op in de opdracht, in plaats van aan te nemen dat de agent ze automatisch toepast
  • Voer statische analyse en dependency scanning uit op gegenereerde wijzigingen
  • Controleer authenticatie, autorisatie, datatoegang en de omgang met secrets handmatig
  • Controleer nieuwe dependencies voordat je ze aan het project toevoegt
  • Pas je bestaande secure coding-standaarden toe op AI-gegenereerde code

10. Te weinig context voor betere suggesties

Het probleem: Copilot krijgt vage functienamen, minimale comments of weinig informatie over wat de code moet doen. De developer verwacht vervolgens dat Copilot op basis van die beperkte aanwijzingen de juiste implementatie afleidt.

Waarom dit een probleem is: Copilot is sterk afhankelijk van de beschikbare context rond de taak. Als namen, types en omliggende code onduidelijk zijn, kunnen suggesties technisch aannemelijk zijn maar niet aansluiten op de werkelijke vereiste. Developers besteden dan meer tijd aan het corrigeren van gegenereerde code. Of erger: ze accepteren een implementatie die op een verkeerde aanname is gebaseerd.

Zo voorkom je dit:

  • Gebruik beschrijvende functie- en variabelenamen die de bedoeling duidelijk maken
  • Voeg nuttige comments en docstrings toe waar het doel niet uit de code blijkt
  • Geef verwachte invoer, uitvoer en beperkingen mee wanneer je Copilot een opdracht geeft
  • Gebruik specifieke signatures zoals normalizeUserInput(userData: string[]): string[] in plaats van algemene namen zoals processData()

11. Copilot geen duidelijke werkscope geven

Het probleem: Copilot moet werken in grote, onoverzichtelijke bestanden of met te veel niet-gerelateerde code tegelijk, zonder duidelijke afbakening.

Waarom dit een probleem is: Te veel irrelevante context maakt het voor de agent lastiger om te bepalen welke patronen en afhankelijkheden ertoe doen. Dit kan leiden tot minder gerichte suggesties, onnodige wijzigingen of oplossingen die worden beïnvloed door niet-gerelateerde delen van de codebase.

Zo voorkom je dit:

  • Splits grote bestanden waar mogelijk op in kleinere, gerichte modules
  • Verwijs Copilot naar de specifieke bestanden en componenten die relevant zijn voor de taak
  • Laat niet-gerelateerde code en vereisten uit de prompt
  • Verdeel omvangrijk developmentwerk in kleinere taken met duidelijke grenzen

12. Eenvoudige wijzigingen onnodig ingewikkeld maken

Het probleem: Een relatief kleine vereiste leidt tot extra abstracties, helper classes, dependencies of configuratie die de taak niet nodig had.

Waarom dit een probleem is: Agents kunnen tegen lage kosten code genereren, waardoor extra complexiteit ook goedkoop lijkt. Na verloop van tijd zorgen die kleine toevoegingen voor een grotere codebase met meer dependencies en meer onderhoud. Een oplossing kan op zichzelf technisch goed opgezet lijken en toch onnodig ingewikkeld zijn voor het product.

Zo voorkom je dit:

  • Vergelijk de gegenereerde oplossing met de eenvoudigste implementatie die aan de vereiste voldoet
  • Verwijder abstracties die geen duidelijk voordeel bieden
  • Beoordeel kritisch elke nieuwe dependency die een agent introduceert
  • Laat gegenereerde code aansluiten op de bestaande patronen van je team
  • Vraag de agent om een eenvoudiger alternatief voordat je een omvangrijke oplossing accepteert
  • Geef onderhoudbaarheid voorrang boven de hoeveelheid geproduceerde code

13. Op Copilot vertrouwen in plaats van op basisvaardigheden

Het probleem: Developers accepteren gegenereerde code zonder de taal, het framework of de achterliggende architectuurkeuzes volledig te begrijpen.

Waarom dit een probleem is: AI kan snel code genereren waar je weinig ervaring mee hebt. Het probleem ontstaat later, wanneer die code gedebugd, uitgebreid of onderhouden moet worden. Als niemand begrijpt waarom een implementatie werkt, wordt technische schuld lastiger te herkennen en kan het oplossen van eenvoudige problemen langer duren.

Zo voorkom je dit:

  • Zorg dat een developer de gegenereerde code kan uitleggen voordat die wordt goedgekeurd
  • Gebruik Copilot om onbekende patronen uit te leggen en controleer die uitleg vervolgens aan de hand van officiële documentatie
  • Gebruik AI om te leren, in plaats van het leerproces over te slaan
  • Laat onbekende implementaties of implementaties met een hoog risico extra door een mens reviewen
  • Merge geen code die het team zonder Copilot niet met vertrouwen zou kunnen onderhouden

 

Conclusie

Copilot is een tool, geen teamgenoot. Dat onderscheid wordt belangrijker naarmate agents toestemming krijgen om zelfstandig bestanden te wijzigen, commando’s uit te voeren en PR’s te openen.

Zet agents volop in voor het werk waar ze goed in zijn. Maar besteed je eigen oordeel niet uit.

Een duidelijke scope, goede context, geautomatiseerde controles en een developer die de diff blijft lezen, brengen je veel verder.

Insights Logo NOBG (1)

Mis nooit meer een update

Ontvang de laatste updates over Azure, GitHub en AI. Elke maand rechtstreeks in je inbox. Geen spam.

Meld je hier aan