GitHub toont 'agentmodus' voor Copilot die zelf beslissingen kan nemen

GitHub heeft meerdere nieuwe features uitgebracht voor zijn programmeerassistent Copilot, waaronder een mogelijkheid om wijzigingen in meerdere bestanden tegelijk uit te voeren. Ook toont GitHub een preview van een eigen agent, die zelfstandig taken moet kunnen uitvoeren.

GitHub zegt dat het Copilots 'agentmodus' in preview beschikbaar heeft gemaakt. Ontwikkelaars kunnen de agentmodus inschakelen en vervolgens Copilot zelf suggesties laten doen om de code beter te maken. In plaats van alleen code genereren naar aanleiding van een opgegeven prompt kan Copilot als 'agent' bijvoorbeeld ook zelfstandig foutmeldingen herkennen en die oplossen. In de agentmodus kan Copilot bovendien voortborduren op zijn eigen output en bijvoorbeeld nieuwe taken opstellen die nodig zijn om een doel te bereiken. De tool kan bijvoorbeeld cli-commando's voorstellen voor de gebruiker om uit te voeren.

De agentmodus is voorlopig alleen nog beschikbaar in een plug-in voor VS Code. GitHub zegt dat de modus in de toekomst ook beschikbaar komt voor ide's die Copilot ondersteunen, maar niet wanneer dat het geval is.

GitHub maakt ook Copilot Edits breder beschikbaar. Dat is een tool waarmee ontwikkelaars een wijziging kunnen doorgeven die Copilot vervolgens doorvoert over een complete codebase, in plaats van alleen het actuele bestand waarin gebruikers werken. Ontwikkelaars kunnen daarbij alle wijzigingen zelf accepteren of juist afwijzen. GitHub presenteerde Edits vorig jaar al tijdens een conferentie en gaf toen beperkte toegang aan sommige gebruikers, maar maakt de tool nu als preview beschikbaar voor alle gebruikers van Visual Studio 2022.

GitHub Copilot edits

GitHub toont tot slot een eerste versie van wat het Project Padawan noemt. Dat is een volwaardige agent die softwareontwikkelaars kan helpen taken uit te voeren zoals code reviewen, codebases optimaliseren, workflows zoals pipelines genereren of fouten herkennen. De agent kan zelfs zelfstandig pullrequests doen, waarna een mens dat request kan beoordelen of verbeteringen eraan kan doorvoeren.

De tool werkt op basis van een sandbox voor iedere losse taak die hij uitvoert. Als de taak is uitgevoerd, kloont de tool de repo en pakt daarin ook alle pullrequests en specifieke instructies mee die eerder zijn meegegeven. "Het zal zijn alsof Copilot een contributor wordt bij elke repo op GitHub", zegt het platform zelf erover. Project Padawan moet later dit jaar beschikbaar komen, maar GitHub zegt er nu een preview van te tonen.

Door Tijs Hofmans

Nieuwscoördinator

07-02-2025 • 08:43

80

Reacties (74)

Sorteer op:

Weergave:

Hoewel AI-coding assistance nog steeds niet (en voorlopig nog niet) ontwikkelaars gaat vervangen is dit een geniale toevoeging. Samen met de nieuwe modellen wordt het echt zeer krachtig. Ik geloof Zuck voor geen meter dat alle medior ontwikkelaars geen baan meer hebben. Het zit nog altijd barstensvol met fouten en je moet echt weten wat je doet. En toch is het zeer handig!

Zelf ben ik van mening dat we anders tegen dit soort tools aan moeten kijken. De ROI/Businesscase is snel gemaakt. Kost je 20-40 dollar en de productiviteitsverbetering heb je er dus qua kosten snel uit.

Ik adviseer klanten om naar de andere benefits te kijken. Wisten jullie dat volgens het 2024 DORA rapport voor elke 25% meer AI adoptie er een reductie is van 2,5% op burnout klachten? Ontwikkelaars zijn blijer, hebben een maatje op de machine en vooral reductie van taskswitching en daarmee de cognitieve load zijn wat mij betreft de echte drivers.
In mijn ogen gebruiken en kijken een hoop mensen verkeerd naar "AI". Ik maak dagelijks gebruik van verschillende tools als ChatGPT en Co-pilot, maar je moet dit niet gebruiken om dingen te doen die je zelf niet kan. Of om jouw complete taak uit te voeren. Het is een tool die je gebruikt om bepaalde dingen veel sneller voor elkaar te krijgen dan normaal mogelijk zou zijn. Mensen zijn grotendeels in de marketing en verhalen getrapt waar dit soort tools wel even jouw scriptie voor je schrijft of de baan van een junior developer overneemt, maar dit is natuurlijk onzin. Zolang je het gebruikt als een tool die je stuurt naar een doel, en waar je zelf ten alle tijden zelf ook nog weet waar je mee bezig bent geeft dit enorme productiviteit.
Ik gebruik het zelf vooral om het saaie werk te doen. Geef 'm 3 classes of componenten met voorspelbare namen, zeg dat je een 4e wil met een specifieke naam, en de meeste AI tools kunnen daar heel netjes de relevante delen uit halen.
De implementaties van functies zijn dan vaak óf heel generiek óf nutteloos, maar dat ze al zijn voorgesteld kan echt heel veel tijd schelen.
Voor nu is dat het geval maar straks zijn wij niet meer nodig. Ik had vorig jaar al een kleine c# test gemaakt waarbij Claude ai itereert over zijn eigen code totdat een relatief complexe applicatie succesvol gebuild is. Het werkte ook nog naar behoren.

Vroeg of laat is copilot zover dat wij niet meer bezig gaan zijn met code, ik zeg een jaar of 2 minimaal, maar het gaat naar mijn idee erg snel gebeuren...
In mijn ervaring is het na drie jaar nog steeds allemaal poep. "AI" wil zo graag code genereren dat je geen juniors meer nodig hebt om hele lappen code te copy-pasten, dat doet ChatGPT/Claude/Copilot wel. Het genereert nog steeds aanroepen naar functies die niet bestaan. Het verzint commentaar dat ik absoluut niet wilde typen ("We finish each other's ... Sandwiches!"). Refactoren, opschonen, je laten twijfelen of je wel op het juiste pad zit? Nee, meer code moet er worden uitgescheten, MEER!

Al die cijfers die er rondgaan zijn onzin. Er wordt maar gedaan alsof nieuwe code tikken het belangrijkste is van het hele softwareontwikkelproces, en ik word er een beetje doodmoe van. Nadenken, afstemmen, ontwerpen en valideren zijn het belangrijkste. Code is bijzaak.

En nee, ik ben niet anti-LLM. Ik gebruik het dagelijks voor inspiratie, samenvatten, spelen. Nooit voor productiecode en al helemaal nooit voor copy-paste/agency. De bagger die uit dingen als Codacy komt, of uit Copilot die een PR moet beoordelen...

[Reactie gewijzigd door CodeCaster op 7 februari 2025 09:17]

Code is inderdaad een eindresultaat. Maar ik vind het geweldig om eindelijk een secretaresse te hebben voor de boilerplate. Het geeft mij op tal van onderwerpen veel vluggere starts. Uitzoeken vind ik leuk. Maar zakelijk is een versneller gewoon geld waard.

En als voorbeeldje. Ik doe niets met Ansible, maar ik weet wat het doet en hoe. Ik heb niet de tijd om alle modules van ansible te leren. Maar copilot schreef naar een enkele prompt 90% van wat ik nodig had. Paar extra vragen om modificaties en wat debuggen, loopt het "playbook" prachtig. Ik kan lezen en begrijpen wat hij doet. Maar ik heb niet de zoveelste taal of syntax hoeven leren voor iets dat ik 1 keer per jaar nodig heb..... Ronduit geweldig.

En dan code conversies van de ene taal in de andere... dat kan hij ook. En verbazend goed ook. Zeker met wat pointers.

En UI wat altijd een gedoe is, want ik ben geen UI persoon, kan hij ook. Is zeer lelijk en kaal, maar het begin is klaar voor mij om af te ronden.

Ja ik controleer alles, maar controleren is minder werk dan uitzoeken, bouwen en controleren.

[Reactie gewijzigd door bzuidgeest op 7 februari 2025 10:48]

Ja ik controleer alles, maar controleren is minder werk dan uitzoeken, bouwen en controleren.
Het controleren is nu juist nu discussie over. Veel mensen zijn meer tijd kwijt met het "fixen" dan wanneer ze het zelf hadden ontwikkeld + dat ze nu mogeljk code hbben die ze zelf niet begrijpen waarom het werkt.
Dat is niet anders dan met Google en stackoverflow gebruiken. Als je niet kan googlen dan kom je nergens. Je zou eens moeten weten hoeveel mensen ik heb ontmoet die gewoon niet weten hoe ze een effectieve informatie vraag doen aan die systemen.
Die denk dat je met "ik moet iets met uhm kleur in ..." een goede vraag stelt.

Je kan alleen goede vragen stellen als je een idee hebt van wat je aan het doen bent of weet waar je heen wil en waarom. Als je dan ook de juiste prompt geeft en begrijpt hoe de AI redeneert dan kom je heel ver en krijg je meest goede of bruikbare resultaten.

Als voorbeeld. Een collega's vond het jammer dat de AI vertelde dat hij geen 3d modellen kon ontwerpen. Ik suggereerde dat hij zou vragen om het model in openSCAD "programmeer" taal. En toen kwam er een keurig 3d model uit rollen. Want openscad is 3d met scripting. Je moet nadenken over wat je aan het doen bent en de limitaties en sterke punten van de AI tool begrijpen.
Als ze werkelijk een goede prompt hadden geschreven en de juiste context hadden aangeboden waren ze echt niet meer tijd bezig met fixen. En het begrijpen van code is iets anders dan het schrijven er van zeker met de zoveelste yaml voor GitHub Actions, Ansible Playbooks, DevOps Pipelines, GitLab Pipelines, AWS CloudFormation etc.
met de zoveelste yaml voor GitHub Actions, Ansible Playbooks, DevOps Pipelines, GitLab Pipelines, AWS CloudFormation etc.
Precies dat. Al die tools doen exact hetzelfde. Maar ze hebben allemaal hun eigen "taaltje" Ik begrijp het proces, de AI mag het dialect van de tool schrijven. Ik ben nu voor mijn "baas" tien keer zo nuttig.
Ik herken helemaal wat je zegt. Het is helaas de hype en de framing die het kapot maakt. Het is geen vervanging en zal het denk ik ook in mijn leven nooit worden. Je moet het ook gewoon zien als een tooltje die wat kan meer niet.
Prima om daar nu zo over te denken, maar houdt het wel continu in de gaten. Voor je het weet ben je wel ingehaald door dat "tooltje" en is je vakkennis niet meer relevant. Het zal niet de eerste keer zijn dat mensen of bedrijven de boot missen.
Klopt. Het wordt ook met de dag beter. Echter, het is al vaker gezegd hier: code kloppen is maar een klein aspect van een ontwikkelaar/engineer zijn.
Ik gebruik het ... voor een lijntje ofzo ok, voor triviale code ... mwah dikwijls ok. Maar productie ready code : no way. Het is wel handig en je kan er wel tijd mee uitsparen. Ik ken niet in elk framework dat ik gebruik elke functie, maar weet wel wat ik wil doen en dikwijls heb ik wel een idee hoe het werk of noemt. Ipv op google te zoeken dus alt tab effe googlen en dan een paar pagina's door te spitten kan ik meestal wel het resultaat vinden. Het is iets sneller. En daar kan je wel winst mee halen.

Het is wel al beter geworden, maar productie ready: niet echt. Wat wel zo is ... mensen die niet veel kennis hebben kunnen wel iets maken daarmee. Dat het met haken en ogen aan elkaar hangt zal hun dikwijls worst wezen, ken er zo genoeg.

Ik moet hier nog 20 jaar werken, ik ga er mij geen zorgen over maken. Daarbij het moeilijkste is nog altijd: de klant begrijpen en dat vertalen. Dat gaat een AI niet zo snel overnemen
Dingen die wel goed werken en me daadwerkelijk tijd schelen bij development:
- Maak van deze git commits nette releasenotes die de manager ook begrijpt
- Herschrijf mijn braindump over deze nieuwe functionaliteit naar een implementatieplan.
- Converteer template stijl A naar template stijl B, (want ik heb echt geen zin om de quirks van de legacy stijl A te leren, zodat ik ze correct kan converteren naar iets uit deze eeuw.)
- Ik schrijf het commentaar een een functiehead.. dan moet ik altijd ff denken over hoe ik dat ga implementeren.. en dan komt Copilot vaak met een suggestie.. vaak fout, maar het is wel een valide oplossingsrichting. Als een soort sparring partner vindt ik dat best handig.
En dat is waarom ik het zelf liever een soort ReSharper on steroids noem :)

Dat het automatisch summaries met comments schrijft die totaal nutteloos zijn dat is een gegeven omdat het (nog?) niet begrijpt wat het idee was achter de opzet (buiten de code om), maar de rest is best fijn.

Vaak geeft het ook net wat meer aanknopingspunten als je iets nieuws probeert te leren, of als je je kennis wil opfrissen. Ik weet niet hoe het met de rest hier zit, maar als ik weer eens Kubernetes in moet duiken na twee maanden iets anders te hebben gedaan, dan is alle hulp om m'n hersenen een kickstart te geven een fijne aanvulling. Scheelt een hoop los Googlen naar documentatie en geeft mij minder het gevoel dat ik een raket aan het besturen ben.

[Reactie gewijzigd door Stukfruit op 7 februari 2025 10:48]

Als je ergens werkt waar gemiddelde kwaliteit niet goed genoeg is dan kan je zeker niet zomaar de suggesties aannemen, is mijn ervaring ook.
Geef je LLM een wat meer context en dan kom je een heel stuk verder!
Och ja, het feit dat LLM's onzin genereren ligt aan het feit dat ik niet lief genoeg vraag of die geen onzin wil verkondigen, en niet aan de fundamentele opzet ervan.
Duidelijk zijn helpt, lief zijn is leuk maar weinig effectief. Ik bedoel codebase, documentatie context etc. het gaat herkennen wat gangbaar is binnen jouw context. Dus geen wilde suggesties voor het zoveelste sql framework of document standaard.
Ik ben vooral bang dat er over een paar decennia niemand meer echt kan coden omdat ze allemaal blind op AI vertrouwen. De kennis gaat verloren. En als AI dan een keer niet werkt is het paniek.
Er zijn maar weinig mensen die een hele applicatie of functionaliteit kunnen bouwen zonder eerst even wat informatie te raadplegen. Of je dat nou doet uit een boek, uit Google, uit stack overflow, chatgpt of copilot, we doen het allemaal.... En veel belangrijker, elke keer leren we hierdoor iets meer bij.

We worden als programmeurs niet dommer, maar wel efficiënter omdat het zoeken naar voorbeelden, design patterns enz sneller gaat. Tenminste, dat is mijn ervaring.
Ik herken me totaal niet in jouw kritiek.

ChatGPT met 4o werkt top. Schrijft foutloos code. Enige aanpassing is misschien een variabele naam of een functie naam zodat het meer in mijn codebase past qua naamgeving.

Recente voorbeelden:
- I have a python application that patches system config periodically and monitors the system, and does a reboot is nessecary. Except that when i update the service with apt get. Then the newer version van update new settings and issue a reboot. This is not handy when apt is still running. Can you write python code that can detect if apt is still running? But also if it is running for over 2 hours. Because the monitoring system should not reboot during apt. But if apt hangs, then it might intervene.
=> Foutloze implementatie voor deze functie geschreven.

- I am looking for something that just writes an image to /dev/fb0. fim and fbi do more than that, and also keep a claim gpu or something.
=> komt met de suggestie om zelf in C een mini programma te schrijven die precies doet wat ik nodig hebt, inclusief implementatie. En na het geven van context dat de image processing ook met QT6 libs mag gebeuren, rolt er een hele werkende correcte implementatie uit, inclusief foutafhandeling. Werkt perfect.
Ik heb wel geleerd dat het werken van Copilot erg afhangt van de context die je het biedt.

Als ik bijvoorbeeld wil dat hij SQL statements genereert voor mij, dan geef ik hem als context een SQL create script van mijn database mee. En dan komen er ineens queries uit die zowaar ook echt werken.

Zonder die context is het inderdaad bullshit in, bullshit out.

En Copilot komt dus echt best ver vind ik. Ik kan gewoon prompten "geef mij de openstaande posten van klant Pietje" en dan zoekt hij zelf uit welke tabellen hij daarvoor moet joinen. En als er iets niet klopt, dan prompt ik simpelweg "gebruik alsjeblieft voortaan deze tabel" en dan herschrijft hij de query naar iets dat zowaar nog klopt ook.

Tuurlijk, Copilot kan het niet zonder mij. Alleen het voordeel is wel dat ik nu niet meer de hele boel zelf aan het tikken ben. Ik laat het voor 80% de query voor mij genereren en dan pas ik hem nog even aan, de puntjes op de i zeg maar en dan ben ik klaar.

En de grap is dat het mij soms ook door mijn middagdip helpt. Soms heb je gewoon geen puf om die query te schrijven om 4 uur 's middags. Maar omdat de AI iig "iets" voor mij neerzet dan krijg ik mezelf ook zover om nog ff een paar aanpassingen te doen.

Kortom, het verbetert de productiviteit op dat soort momenten. Terwijl ik anders waarschijnlijk muziek was gaan luisteren en had gedacht dat het morgen wel komt :X

[Reactie gewijzigd door Lethalis op 8 februari 2025 11:40]

Ik gebruik Copilot steeds meer in zowel Visual Studio als Visual Studio Code. Vooral voor schrijven van unit tests is het erg handig en bespaart tijd. Maar ook bij het schijven van code comments of het omzetten van code naar een andere structuur.

Leuk om te zien dat Copilot rekening houdt met bestaande code en conventies. Zo schrijft Copilot nieuwe unit testen op dezelfde manier als andere al bestaande testen. En bij implementatie stelt Copilot het gebruik van bestaande methods voor die al beschikbaar zijn in de code base en het doet voorstellen om nieuwe methods te maken die passen bij de bestaande methods, m.b.t. naamgeving, params en result.
De komende jaren gaan we eerst moeten zorgen dat de AI ook bij alle relevante zaken kan. Code changes in isolatie lukt nu, a.d.h.v. Standaarden en configuraties.

Maar om je eigen code te analyseren, jouw documentatie, requirements en bedrijfsstandaarden na te leven, en verder gevorderde zaken, moeten we eerst zorgen dat onze “geprogrammeerde collega’s” er iets mee kunnen.

En er zijn zoveel bedrijven waar ze dit met menselijke collega’s al niet eens kunnen…
Het daadwerkelijke "engineering" in Software Engineering ontbreekt (vaak) bij zowel modellen als mensen, ja.
Ik ben geen typische developer, maar hebt in mijn vakgebied wel mee te maken. Ik begrijp hoe je moet programmeren en wat, maar als ik het zelf ga typen ga ik erg lang bezig zijn. Dankzij AI kan zelfs ik nu delen (scripts) schrijven die nodig zijn.

Dat is voor mij erg waardevol. Ik denk ook dat de wat typische developer, die ook nog niet op AI heeft ingezet het erg zwaar krijgt. Een software developer blijft bestaan, maar softskills zullen een stuk belangrijker gaan zijn dan misschien in het verleden was.
Ik ben een "echte" developer. En deze tool versnelt mijn werk enorm. Net of ik een junior of secretaresse heb. Ik bedenk waar we heengaan en dat ding doet het opstart werk. Ik hoef het alleen maar te controleren en debuggen.
Dat is gewoon een enorme versneller. Waar ik de tool overvleugel is in begrip en ervaring en de echte wereld. Maar voor het type werk? daar is het een prima helper voor. En ik schaam me niet dat te zeggen zoals sommige developers.

[Reactie gewijzigd door bzuidgeest op 7 februari 2025 10:51]

Je hoeft je nergens voor te schamen hoor. Ik denk dat het idee ergens ontstaan is dat AI het werk van ontwikkelaars gaat vervangen, terwijl het juist een versneller is omdat je sneller en effectiever resultaat hebt.

Hoe vaak ik code heb overgenomen van een boek, website of stackoverflow is niet meer te tellen. Je past het aan naar je behoefte, je structuur en conventies, en zo bouw je software. Niemand heeft alle kennis van alle frameworks, taal versies en protocollen in zijn hoofd. Hoe sneller en efficiënter je de informatie kan opzoeken, hoe beter. AI helpt enorm in je zoektocht naar informatie.
Je hoeft je nergens voor te schamen hoor.
:) Daarom vertel ik ook dat NIET te doen :)

Niettemin lijken sommige developers te denken dat je dom overkomt als je AI nodig hebt of gebruikt.
Mijn ervaring als echte developer is toch compleet anders. Ik zie over het algemeen zo veel lage kwaliteit code gegenereerd worden dat ik meer tijd bezig ben met debuggen en aanpassen dan als ik het zelf schrijf. Daarnaast is mijn ervaring ook dat door TDD toe te passen ik vaak minder typwerk heb in het algemeen dan als ik probeer AI code te laten genereren. Daarnaast en goede IDE met ondersteuning voor code snippets en templates en die in macro's vastleggen en ik kan in veel gevallen sneller werkende functionaliteit opleveren dan met AI. Daarbij wel belangrijk te melden dat ik dat meet door daadwerkelijk naar snelheid naar productie en change failure rate (hoe vaak leid een aanpassing tot een defect) te kijken en niet naar hoe snel ik iets gemerged krijg of hoeveel code ik schrijf (wat in veel gevallen online wel de metrics voor productiviteit lijken te zijn).

Edit: AI werkt vaak wel beter dan Google als je iets moet opzoeken.

[Reactie gewijzigd door DdeM op 7 februari 2025 14:28]

Ik moest onlangs nog een heel stel soap berichten opstellen. Er was een manco in de wsdl (service description) waardoor de auto proxy generatie tooling niet gebruikt kon worden. Ik gaf een voorbeeldbericht uit soapui aan copilot en vraag dan code te maken die resulteert in dezelfde XML en de ? door parameters te vervangen. Er kwamen perfecte stukken code uit met zelfs correcte datatypen voor de parameters.

Had ik het zelf gekund. Zeker, maar het was annopying, dom, tik werk geweest. De ai doet het in een seconde. Nu kon ik die tijd aan iets echts leuks besteden, intelligent werk.

Ik schrijf graag complexe code, maar complexe code word altijd omringt door domme simpele infrastructuur code, boilerplate, model classes en wat al niet meer. De rommel die je liefst aan een junior zou geven. Nu heb ik er een AI voor. Ik kan ook meer tooling gebruiken, tooling waar ik geen zin heb het zoveelste config dialect te leren. terraform, ansible etc... Ik kan die nu allemaal makkelijk gebruiken want de AI assisteert. Dus mijn inzet word alleen maar breder, het kost mij minder tijd dus ik kan meer.

Ik denk dat elke programmeur, tenzij je heel specifieke taken hebt, baat kan hebben bij zulke AI. Als het je werk en mogelijkheden niet versnellen kan dan kan het niet anders dan dat je heel specialistisch bent. Ik doe maatwerk en dus in principe alles.
Helemaal eens met het feit dat ontwikkelaars nog steeds heel erg nodig is.
Het grote probleem is en blijft dat de AI's zijn getrained met voorbeelden van het internet.
De voorbeelden op internet zijn niet geweldig en o.a. zeer onveilig omdat in vrijwel alle gevallen de `veiligheid` problemen buiten beschouwing worden gelaten om een functionaliteit or concept te omschrijven demonstreren, en op z'n best worden veiligheid issues in een voetnoot vermeld.
Gezien kwantitatief dit soort informatie de grote overhand heeft en AI in de meeste gevallen statistisch gedreven is, wat is het meest voorkomende is hetgeen wat het meest voor de hand licht als antwoord, zal het resultaat van de code die AI's genereren in de meeste gevallen onveilig zijn.
Een ontwikkelaar, zal in de meeste gevallen dit snel herkennen en kunnen corrigeren, en is en blijft dus onmisbaar in het proces.
Jee. GitHub Copilot heeft een proxy tussen het model en jou IDE staan. In die proxy wordt de code gecheckt op security risks en weer gecorrigeerd.
Dan heb je nog nooit gekeken naar de code die het produceert.
Want die is echt onveilig. Zéér onveilig soms. En memory leaks zijn nog het minste probleem.
Ik geloof Zuck voor geen meter dat alle medior ontwikkelaars geen baan meer hebben.
Ik denk niet dat je dat moet zien dat AI die banen gaat vervangen, maar als productiviteit omhoog gaat, dan heb je simpelweg minder mensen nodig. En dan gaat het wel degelijk banen kosten. Niet alle, natuurlijk. AI heeft voorlopig nog altijd een prompt-engineer nodig die de prompts maakt en de output controleert, en zo iemand moet wel iemand zijn die de code beter snapt dan de AI. Dus die banen zullen gewoon blijven.
Note: deze post was een reactie op een reactie op Joost dat hij een marketing praatje houdt voor Google door het Dora report te noemen; deze post is verdwenen maar vond het toch nuttig mijn post hier te plaatsen voor meer context over Dora en hun observaties mbt AI.
--------------------------

Dora is onderdeel van Google ja, maar als je denkt dat de Dora reports daardoor minder waarde hebben dan moet je je toch echt beter inlezen. Om te beginnen is het report het resultaat van een jaarlijkse enquête onder de hele industrie; en daarnaast staan de resultaten vaak genoeg haaks op hoe ze bij Google werken.

Nog een feitje, in het 2024 report staat ook dat teams die veel gebruik maken van ai minder stabiele software leveren en de throughout lager is. Wat ik dan altijd interessant vind om te lezen omdat mensen wel zeggen dat ze productiever zijn, maar hoe kan je productiever zijn als de code die je released instabieler is en je throughout nog lager is ook?

Interview met een van de onderzoekers voor nog meer context: https://thenewstack.io/do...m-engineering-fall-short/
Tof @DdeM en die conclusie is heel gaaf. Wat in het rapport ook staat is dat ze denken dat de lagere throughput een relatie heeft met dat AI-assistentie zorgt voor een grotere batch size.

40% geeft ook aan een kleine verbetering te zien qua productiviteit, maar 25% significant. Het rapport laat denk ik prima zien waar we staan. Het werkt maar nog lang niet zoals de hype het verteld.
Toch heb ik soms dat copilot totaal de verkeerde kant opslaat als ik een prompt uitvoer. Hij maakt dan een aanname en gaat daarop verder. De code kan ik dan vaak niet gebruiken, maar het draagt vaak wel bij aan de uiteindelijke oplossing voor het probleem. Ik ben benieuwd of het wisselen van de modellen en het voorstellen van wijzigingen voor betere resultaten kan zorgen in PhpStorm.
En zo moet je het zien. Het is een stukje van de oplossing. De hype maakt het echter kapot.

Het is jammer dat de JetBrains suite niet zoveel aandacht krijgt tov VSCode
Another tool in the toolbox. Ik moet bekennen dat ik wel enthousiast ben over de AI assistant in PHPStorm.

Ik heb het nu een week in gebruik en nog niet heel veel gebruikt, maar het heeft me al enkele tientallen minuten bespaard door exact de juiste Google charts piechart code te schrijven voor me op basis van mijn prompts.

Overigens ChatGPT al langer (ook betaald) in gebruik, dus het had me niet moeten verbazen, maar het gemak ervan dat het ook direct wist waar ik het over had op basis van het bestand waar ik in werk, en het kunnen klikken om de code te inserten maakte de ervaring nog wel wat beter.

[Reactie gewijzigd door CorbataGames op 7 februari 2025 10:04]

Ik gebruik Copilot in VSCode, imo, dat is ook hoe je deze dingen moet gebruiken.

Niet ala de default interface van chatgpt, waar je een prompt in een tekstvak gooit en dan verwacht dat daar werkende code uit gaat komen dat precies doet zoals je omschrijft. Ik heb het idee dat de meeste mensen die de bruikbaarheid afkraken het op deze manier testen. Je moet het als assistent in je favo editor gebruiken waardoor het een autocorrect/suggest-on-steroids wordt en dat is echt wel geniaal. Definieer arraytje, tiep for/while oid en hoppa, daar is je loop al, even snel controleren of het goed is, ram op enter, en verder. Scheelt je weer wat tikwerk. Het is niet per se dat je hier AI nodig voor hebt, maar hebt maakt je absoluut zo veel sneller. En soms komt hij met suggesties waar ik zelf niet aan gedacht had om zo te doen "hey, goed idee, prima, accept".

Zo gebruik je het regeltje voor regeltje en werkt het prima.
"Chatgpt, verzin de code voor een nieuw social media platforn"-gaat hem voorlopig niet worden in ieder geval.
To be honest, vind ik de default interface van ChatGPT ook heel bruikbaar. Leg dan alleen extra duidelijk uit wat je wilt en verwacht code die je nog wat moet aanpassen.

Ik schrijf persoonlijk bijvoorbeeld eigenlijk geen regel "vanilla" javascript meer (heb ik een hekel aan, jquery gaat me een stuk beter af).
Ik merk ook dat het regelmatig een oude, maar veel gebruikte, manier voorstelt om iets te doen. Vaak is het voorstel niet perse fout, maar je moet er goed om denken om copilot er op te wijzen dat je wat anders bedoeld. En dat moet je toch echt zelf eerst uitzoeken.
Oudere content is doorgaans meer van te vinden, alle content voor het nieuwe moet nog komen, dus zo'n bot heeft daar gewoon meer van gehad om op te trainen. Ook hebben ze maar een learnset tot een bepaalde datum, altijd wel interessant om te checken wat dat is voor het model dat je gebruikt.

Ik heb wel eens met een stokoude library moeten werken dat niet om github te vinden is, documentatie ervan bestond niet met, in ieder geval, niet zo ver ik kon vinden. En Copilot had ook geen idee waar hij het over had dus hij had overduidelijk ook 0 referenties naar dit in zn learnset. Alle antwoorden 100% gehalucineerd, aannames doen uit context en daarmee functies uit andere soortgelijk werkende libraries suggesten, maar dat werkt dus niet. Leuke is dat als je om bronnen vraagt (wie weet heeft hij toch ergens documentatie gevonden), krijg je doodleuk links die niet bestaan of over iets anders gaan.

Ik heb geleerd dat je doorgaans aan zo'n bot kan vragen hoeveel procent hij denkt correct te zijn (en hoeveel hij er dus bij verzint), alles onder de 80% kan je wel als bogus beschouwen, als hij 20% hallucineert, grote kans dat het juist de library specifieke dingen zijn (de overige 80% is de ifjes en whiletjes, dat zal vast wel goed zijn) en heb je er dus niks aan.

Het zou fijn zijn als een bot gewoon zou toegeven "sorry ik weet het niet" in plaats van je tijd te verdoen met klinklare onzin.

Heb uiteindelijk de broncode van de library gevonden die gelukkig voldoende comments had om het te omschrijven Plak dat in copilot en hij wist plots prima te vertellen hoe het hele ding werkt.
Maar wat gebeurt er dan als je hem dat verteld? Ik heb ook wel eens dat hij dus de verkeerde kant op gaat, maar vaak, als je dat dan verteld dan gaat het meestal wel goed. Moet zeggen dat ik over het algemeen er aan het eind zeker iets uitkreeg wat ik kan gebruiken.

Je moet Copilot ook behandelen alsof het een menselijke assistent is, dus gewoon tegen het systeem praten/typen alsof je met een mens aan het communiceren bent. Wijzen op fouten etc, dat scheelt al een hele hoop.
Het gedraagt zich dus al heel menselijk. Ook mensen maken vaak aannames als niet alle relevante informatie wordt gegeven met allerlei gevolgen.
Toch heb ik soms dat copilot totaal de verkeerde kant opslaat als ik een prompt uitvoer. Hij maakt dan een aanname en gaat daarop verder.
Wat ik voornamelijk mis is dat je geen system prompt kan opgeven. Want soms gaat het goed, maar soms ook niet. Bijvoorbeeld: Ik gebruik geen FluentAssertions, ik gebruik NUnit Assert.That-style asserts, ik gebruik Given/When/Then. Het is een muntje opgooien of ie eraan houdt of niet.
Je kunt wat tweaken met een system prompt in GitHub Copilot in VSCode. zoek in de settings op "Copilot Instructions" en daar kun je wat zaken mee geven specifiek voor verschillende contexten zoals chat, commit messages, test generation & suggested files.

🚨 dit is nog een experimental feature dus use at own risk

[Reactie gewijzigd door Crysania op 7 februari 2025 13:19]

Ik heb het gisteren uitgeprobeerd maar het viel mij eigenlijk best tegen vergeleken met Roo Code of Cline. Qua UI ziet het er allemaal strakker uit maar het loopt toch erg vaak vast.

Ik vind Copilot wel handig voor het schrijven van documentatie of (jsdocs) comments etc. Natuurlijk wel controleren wat Copilot geschreven klopt. Scheelt een hoop werk en de code wordt ook een beetje duidelijker door. Soms kan het ook unit tests schrijven en/of repareren maar dat werkt nog niet altijd even lekker. Conversie van bijv. Jest naar Vitest ging wel weer redelijk goed.

[Reactie gewijzigd door alienfruit op 7 februari 2025 12:12]

Hoe ver staan we nog af van Skynet ?
Redelijk ver, want dit is voornamelijk een geavanceerde variant op ReSharper met interfacing dmv natural language (tekst, stem).

Omdat het een taalmodel is kan het makkelijker editten op basis van tekst die al in je bronbestanden te vinden is, net zoals bij tekst uit gesproken talen in de normale wereld.
Ok. Maar in het totaal met al dit soort technieken en agents ?
Ook. Er zit geen intelligentie in, ondanks dat de makers je iets anders willen laten geloven.

De relatief nieuwere benadering met het beredeneren om tot een beter antwoord te komen is voor zover ik weet (en heb gezien) ook gebaseerd op tekstvoorspelling, wat dus nog steeds op basis van een model met het halve web als input is.

En als die input veel slechte data bevat, dan gaat het nog steeds fout. Want: geen intelligentie.

Neemt overigens niet weg dat het superhandig is als je het gebruikt als aanvulling op eigen kennis. Ik (programmerend sinds de jaren negentig) ben er in ieder geval heel blij mee :)
Heeft er niet iemand een verkeerde prompt/commando aan SkyNet gegeven? :Y)
Niet zo heel ver. Wat we nu voorgeschoteld krijgen om mee te spelen is bij lange na niet de techniek die de grote jongens gebruiken. wij zitten in de zandbak te frutten tussen de kattendrollen
Actually... is het exact dezelfde techniek bij de grotere jongens.

Don't believe the marketeers hype.
Skynet is het gevaar niet. Werkelijke intelligentie kan je mee redeneren. Het gevaar zit in een "domme" AI die alleen regeltjes volgt. De paperclip AI:

https://johnnosta.medium....p-apocalypse-9c6ebb5b15cd
Ik ben benieuwd of Edits dan ook meer dan 10 bestanden tegelijkertijd gaat toestaan. Tot noch toe moet je constant wisselen van bestanden als je bijv. De bug in je code niet kunt vinden.
@TijsZonderH Beslissingen neem je, you make decisions.
Dit wordt echt enorm vaak fout gedaan. Ik zie het steeds vaker in de media gebeuren.
Enigszins off-topic, maaar ook toch weer wel.

AI gegenereerde/vertaalde tekst (code) heeft echt wel een check nodig, anders krijg je een inferieur resultaat. Nu is dit een relatief simpel voorbeeld van een rechtstreekse vertaling uit het Engels, maar ik moet er toch aan denken dat het zo ongeveer algemeen aanvaard is dat er altijd wel fouten in code staan. Neem je die fouten over als je AI gebruikt, of worden ze juist eruit gehaald? Het voorbeeld van de foute vertaling doet me eraan twijfelen of het op dit moment de goede kant op gaat en code beter wordt door het gebruik van AI.
AuteurTijsZonderH Nieuwscoördinator @guarana7 februari 2025 11:29
Ja of, hou je vast, dat is gewoon een menselijke fout die ik maak. Schokkend I know, maar we doen niks met AI in onze teksten, die worden door mensen geschreven die ook wel eens fouten maken.
Gaat wel ver dat hij gelijk zegt dat je AI gebruikt
Ik hoop dat er dit jaar iets op de markt komt waarbij je een aantal van dit soort agents lokaal kunt draaien. Met name in de koppeling met Home Assistant en Nextcloud lijkt me dat wel erg handig, of het geven van advies op basis van gezondheidsdata uit fitbits. Ik kan wel een soort K.I.T.T. / virtuele coach gebruiken die me helpt om de boel georganiseerd te houden maar ik wil niet dat een derde partij al dit soort data geven.
Is er al zoiets aangekondigd of gaat deze droom een zelfbouw-project worden?
Dat zou je met LangChain en lokale LLM's en Agents aan elkaar moeten knopen.
Met al die hosted oplossingen zie je niet hoe houtje-touwtje het allemaal aan elkaar gekoppeld is.
Project Padawan klinkt interessant. Als je het automatisch uit kunt laten voeren wanneer een bugmelding binnen komt en op basis daarvan alvast (mogelijke) steps to reproduce en een (mogelijke) bugfix in een pullrequest stopt (die het zelf dus ook al heeft kunnen testen) heb je als ontwikkelaar alvast een mogelijke oplossing klaar liggen en hoef je alleen nog te kijken of deze past binnen het grotere plaatje van wat je met de software van plan bent.
We weten allemaal hoe dit afliep bij Agent Smith.
Met de juiste setup worden nu al 65% van github issues in populaire python libraries opgelost. Zo een setup bestaat o.a. uit een set van agents die elkaar controleren, toegang hebben tot relevante docs, testcases schrijven en samen net zo lang itereren tot een oplossing die een senior ontwikkelaar zou schrijven. Verkijk je niet op hoe dichtbij SWE agents zijn.
Of het geeft aan hoe belabberd de code(kwaliteit) in Python libraries is. :Y)
Core libraries, populaire machine learning en ORM libs durf ik aan te merken als hoge kwaliteit libraries.

Op dit item kan niet meer gereageerd worden.