Ken je deze Quora-opmerking nog (die ook een meme werd)?
(Bron: Quora)
In pre-groot taalmodellering (LLM) In het tijdperk van Stack Overflow zijn de uitdagingen enorm Welke codefragmenten om effectief over te nemen en aan te passen. Hoewel het genereren van code tegenwoordig eenvoudig is geworden, ligt de grotere uitdaging in het betrouwbaar identificeren en integreren van hoogwaardige bedrijfscode in productieomgevingen.
Dit artikel bespreekt de praktische obstakels en beperkingen die worden waargenomen wanneer ingenieurs moderne codeermiddelen gebruiken voor echt werk in de onderneming, waarbij complexere problemen worden aangepakt rond integratie, schaalbaarheid, toegankelijkheid, evoluerende beveiligingspraktijken, gegevensprivacy en onderhoudbaarheid in de onderneming. directe operationele instellingen. We hopen de hype in evenwicht te brengen en een meer technisch gefundeerde kijk te bieden op de mogelijkheden van AI-codeermiddelen.
Beperkt begrip van domein- en servicegrenzen
AI-bureaus hebben moeite met het ontwerpen van schaalbare systemen vanwege de overvloed aan keuzes en het gebrek aan bedrijfsspecifieke context. Om het probleem in grote lijnen te illustreren: de codebases en monorepo’s van grote ondernemingen zijn vaak te omvangrijk om agenten er rechtstreeks van te laten leren, en kritische kennis is vaak gefragmenteerd binnen interne documentatie en individuele expertise.
Meer specifiek worden veel populaire codeermiddelen geconfronteerd met servicebeperkingen die hun effectiviteit in grootschalige omgevingen belemmeren. De indexeringsfunctie kan mislukken of slechter worden voor opslagplaatsen die meer dan 2.500 bestanden bevatten, of als gevolg van geheugenbeperkingen. Bovendien worden bestanden die groter zijn dan 500 KB vaak uitgesloten van indexeren/zoeken, wat gevolgen heeft voor oudere producten met grotere, tientallen jaren oude codebestanden (hoewel nieuwere projecten dit minder vaak tegenkomen).
Voor complexe taken waarbij uitgebreide bestandscontext of refactoring betrokken is, wordt van ontwikkelaars verwacht dat ze de relevante bestanden aanleveren en tegelijkertijd expliciet de refactoringprocedure en de omliggende build-/opdrachtreeksen definiëren om de implementatie te valideren zonder feature-regressie te introduceren.
Gebrek aan context en gebruik van hardware
AI-agent hebben blijk gegeven van een gebrek aan bewustzijn met betrekking tot de OS-engine, opdrachtregel en installatieomgeving (conda/venv). Deze tekortkoming kan leiden tot frustrerende ervaringen, zoals agenten die Linux-opdrachten proberen uit te voeren in PowerShell, wat consequent kan resulteren in ‘onbekende opdracht’-fouten. Bovendien vertonen agenten vaak een inconsistente ‘wachttolerantie’ bij het lezen van de uitvoer van opdrachten, waardoor ze voortijdig aangeven dat ze de resultaten niet kunnen lezen (en overgaan tot opnieuw proberen/overslaan) zelfs voordat de opdracht is voltooid, vooral op langzamere machines.
Dit gaat niet alleen over kieskeurig functie; het probleem zit eerder in deze praktische details. Deze hiaten in de ervaring manifesteren zich als echte wrijvingspunten en vereisen constante waakzaamheid van mensen om de activiteit van agenten in realtime te volgen. Anders kan de agent de aanvankelijke informatie over de tooloproep negeren en voortijdig beëindigen, of doorgaan met een halfbakken oplossing waarbij sommige/alle wijzigingen ongedaan moeten worden gemaakt, opdrachten opnieuw moeten worden geactiveerd en tokens moeten worden verspild. Het verzenden van een bestelling op vrijdagavond en het verwachten van code-updates tijdens de inspectie op maandagochtend is niet gegarandeerd.
De hallucinatie eindigt herhalen actie
Het werken met AI-codeermiddelen brengt vaak de uitdaging met zich mee van al lang bestaande hallucinaties, of onjuiste of onvolledige informatie (zoals kleine codefragmenten) binnen een grotere reeks veranderingen die van ontwikkelaars wordt verwacht met triviale tot lage inspanning te repareren. Wat echter een probleem wordt, is wanneer er sprake is van verkeerd gedrag herhalen in één enkele thread, waardoor de gebruiker wordt gedwongen een nieuwe thread te starten en alle context opnieuw aan te bieden, of handmatig in te grijpen om de agent te ‘deblokkeren’.
Tijdens het instellen van Python-functiecode komt de agent die is belast met het implementeren van complexe wijzigingen in de productiegereedheid bijvoorbeeld het bestand (zie hieronder) bevat speciale tekens (haakjes, punten, sterretjes). Deze karakters worden heel vaak gebruikt in de informatica softwareversie.

(Afbeelding handmatig gemaakt met standaardcode. Bron: Microsoft Leer En Het toepassingshostbestand (host.json) bewerken in de Azure Portal)
De agent markeert dit ten onrechte als een onveilige of gevaarlijke waarde, waardoor het hele creatieproces wordt stopgezet. Deze verkeerde identificatie van de vijandige aanval werd vier tot vijf keer herhaald, ondanks meerdere verzoeken om te proberen de wijziging opnieuw op te starten of voort te zetten. Het formaat van deze versie is eigenlijk een standaard, aanwezig in een Python HTTP-triggercodesjabloon. De enige oplossing die werkt, is een agent opdracht geven dit te doen Nee leest het bestand en vraagt het in plaats daarvan om de gewenste configuratie op te geven en zorgt ervoor dat de ontwikkelaar het handmatig aan dat bestand toevoegt, het bevestigt en vraagt om door te gaan met de resterende codewijzigingen.
Het onvermogen om lussen van agent-uitvoer te verlaten die herhaaldelijk binnen dezelfde draad breken, benadrukt een praktische beperking die de ontwikkeltijd aanzienlijk verspilt. In wezen besteden ontwikkelaars nu meer tijd aan het debuggen/repareren van door AI gegenereerde code dan aan Stack Overflow-codefragmenten of hun eigen code.
Gebrek aan codeerpraktijken op bedrijfsniveau
Best practices voor beveiliging: Codeeragenten gebruiken vaak minder veilige authenticatiemethoden, zoals op sleutels gebaseerde authenticatie (clientgeheim) versus moderne op identiteit gebaseerde oplossingen (zoals Entra ID of federatieve inloggegevens). Dit toezicht kan aanzienlijke kwetsbaarheden introduceren en de onderhoudskosten verhogen, omdat sleutelbeheer en -rotatie complexe taken zijn die in bedrijfsomgevingen steeds meer aan beperkingen onderhevig zijn.
Verouderde SDK en het wiel opnieuw uitvinden: Agents maken mogelijk niet consequent gebruik van de nieuwste SDK-methoden, wat in plaats daarvan resulteert in implementaties die langer en moeilijker te onderhouden zijn. Door Azure Functions-instanties te ondersteunen, heeft de agent code uitgegeven met behulp van de reeds bestaande SDK v1 voor lees-/schrijfbewerkingen in plaats van de veel schonere en eenvoudiger te onderhouden SDK v2-code. Ontwikkelaars moeten de nieuwste best practices online onderzoeken om een kaart te krijgen van afhankelijkheden en verwachte implementaties die onderhoud op de lange termijn garanderen en toekomstige inspanningen voor technologiemigratie verminderen.
Introductie van beperkte intentie en herhaalbare code: Zelfs voor modulaire taken met een kleinere omvang (die meestal bedoeld zijn om hallucinaties of het opsporen van fouten te minimaliseren), zoals het uitbreiden van de definitie van een bestaande functie, kunnen agenten instructies volgen letterlijk en produceert bijna repetitieve logica, zonder te anticiperen op gebeurtenissen of wat gaat komen niet gearticuleerd behoeften van de ontwikkelaar. Dit betekent dat agenten bij deze modulaire taken mogelijk niet automatisch vergelijkbare logica identificeren en herstructureren in gedeelde functies of klassendefinities gebruiken, wat resulteert in technologieschulden en een codebasis die moeilijker te beheren is, vooral met codeervibes of luie ontwikkelaars.
Simpel gezegd: virale YouTube-video’s waarin de snelle zero-to-one-applicatieontwikkeling in slechts één zin wordt getoond, slagen er niet in de uitdagingen van productiesoftware te vatten, die prioriteit geeft aan beveiliging, schaalbaarheid, onderhoudbaarheid en toekomstbestendige ontwerparchitectuur.
Bevestiging bias uitlijning
Voorkeur voor bevestiging is een groot probleem, omdat LLM’s vaak de premissen van gebruikers bevestigen, zelfs als gebruikers twijfels uiten en agenten vragen hun begrip te verfijnen of alternatieve ideeën voor te stellen. Deze tendens leidt, wanneer het model aansluit bij wat de gebruiker wil horen, tot een afname van de algehele uitvoerkwaliteit, vooral voor meer objectieve/technische taken zoals coderen.
Er is veel literatuur om te zeggen dat als een model begint met het uiten van een claim als “Je hebt absoluut gelijk!”, andere uitvoertokens de neiging hebben deze claim te bevestigen.
De voortdurende behoefte om voor kinderen te zorgen
Ondanks de aantrekkingskracht van autonome codering, vereist de realiteit van AI-agenten in de ontwikkeling van ondernemingen vaak constante menselijke waakzaamheid. Voorbeelden zoals agenten die proberen Linux-opdrachten uit te voeren in PowerShell, vals-positieve beveiligingswaarschuwingen of het veroorzaken van onnauwkeurigheden om domeinspecifieke redenen benadrukken kritieke hiaten; ontwikkelaars kunnen niet zomaar weglopen. In plaats daarvan moeten ze voortdurend het redeneerproces in de gaten houden en codetoevoegingen uit meerdere bestanden begrijpen om te voorkomen dat ze tijd verspillen met ondermaatse antwoorden.
De slechtst mogelijke ervaring met een agent is dat een ontwikkelaar een code-update van meerdere bestanden vol met bugs ontvangt en vervolgens tijd besteedt aan het debuggen vanwege hoe ‘mooi’ de code eruit ziet. Dit kan zelfs aanleiding geven verzonken kostenmisvatting in de hoop dat de code na enkele reparaties zal werken, vooral wanneer er updates worden uitgevoerd voor veel bestanden in een complexe/onbekende codebase met verbindingen met meerdere onafhankelijke services.
Dit lijkt op samenwerken met een tienjarig wonderkind dat veel kennis uit zijn hoofd heeft geleerd en zelfs elke gebruikersintentie heeft aangepakt, maar prioriteit geeft aan het tonen van die kennis boven het oplossen van echte problemen, en de vooruitziende blik mist die nodig is om te slagen in praktijksituaties.
Deze vereiste van ‘ouderschap’, in combinatie met de herhaling van frustrerende hallucinaties, betekent dat de tijd die wordt besteed aan het debuggen van door AI gegenereerde code de verwachte tijdsbesparing door het gebruik van de agent kan overschrijden. Uiteraard moeten ontwikkelaars bij grote bedrijven zeer voorzichtig en strategisch zijn bij het gebruik van moderne agenttools en use cases.
Conclusie
Het lijdt geen twijfel dat AI-codeermiddelen revolutionair zijn: ze versnellen het maken van prototypen, automatiseren standaardcodering en veranderen de manier waarop ontwikkelaars bouwen. De echte uitdaging van vandaag is niet het genereren van code, maar eerder het weten wat te verzenden, hoe het te beveiligen en waar te schalen. Slimme teams leren hypes weg te filteren, agenten strategisch in te zetten en hun technisch oordeel te verdubbelen.
Als CEO van GitHub Thomas Dohmke merkte dit onlangs op: De meest geavanceerde ontwikkelaars zijn “overgestapt van het schrijven van code naar het ontwerpen en verifiëren van het implementatiewerk dat door AI-agenten wordt uitgevoerd.” In het agententijdperk behoort succes niet toe aan degenen die kunnen coderen, maar aan degenen die duurzame systemen kunnen ontwerpen.
Rahul Raja is software-ingenieur bij LinkedIn.
Advitya Gemawat is machine learning (ML)-ingenieur bij Microsoft.
Noot van de redactie: De meningen in dit artikel zijn de persoonlijke meningen van de auteur en weerspiegelen niet noodzakelijkerwijs de meningen van de bedrijven waarvoor zij werken.



