Hoe we de acceptatie van AI-code verdubbelden door modellen te leren denken als Roblox-ingenieurs
Domeinbewuste code-intelligentie

Iedereen is enthousiast over het volgende baanbrekende AI-model, maar het geheim achter het verdubbelen van de effectiviteit van interne AI-tools bij Roblox was geen nieuw model. Het zat verweven in de geschiedenis van onze codebase. Door gebruik te maken van jarenlange code en beoordelingen van onze domeinexperts, hebben we de acceptatiegraad van door AI gegenereerde pull request (PR)-suggesties verhoogd van ongeveer 30% naar meer dan 60% over een set van 10.000 PR's, en de evaluatienauwkeurigheid van een project voor het opschonen van code door agents in dezelfde periode boven de 90% gebracht.
De AI-kwaliteitskloof dichten
In de hele sector wordt 50% tot 60% van de codeertijd besteed aan softwareonderhoud.1 Bij Roblox is dat niet anders.
Op papier zijn repetitieve onderhoudstaken met duidelijk omschreven vereisten en een beperkte probleemruimte perfecte kandidaten voor AI-automatisering. In de praktijk hadden onze AI-assistenten echter moeite met de evaluatienauwkeurigheid en de acceptatie door de technici.
Bij Roblox is het probleem niet de capaciteit, maar de context. Een generiek model heeft de afgelopen twintig jaar van Roblox-engineering niet meegemaakt. Het heeft de 700.000 pull-verzoeken die we de afgelopen drie jaar hebben samengevoegd niet gezien, en heeft niet geleerd van de 1,7 miljoen opmerkingen bij codereviews waarin onze meest ervaren engineers onze coderingsstandaarden definiëren en verdedigen.
AI-assistenten die deze geschiedenis negeren, slagen er niet in het vertrouwen van engineers van wereldklasse te winnen. Ondanks dat de helft van de Roblox-engineers AI-aangedreven assistenten gebruikt, wordt slechts ongeveer 20% van de door AI gegenereerde suggesties geaccepteerd na menselijke beoordeling. Onze driemaandelijkse enquête over engineeringproductiviteit weerspiegelt deze realiteit. Engineers geven de impact van AI op de productiviteit een score van 4,02 op 5, maar het vertrouwen in de kwaliteit van AI-code slechts 3,09 op 5. Kortom, AI helpt, maar het vertrouwen blijft beperkt, met name in legacy C++ en complexere codedomijnen.
Om deze contextkloof te dichten, hebben we geïnvesteerd in een agentisch code-intelligentieplatform dat is gebouwd op basis van de eigen engineeringgeschiedenis van Roblox, is afgestemd op voorbeelden van experts en is gevalideerd door middel van een grondige evaluatie. Dit code-intelligentieplatform is niet alleen ontworpen om codesuggesties te genereren, maar ook om te itereren met de institutionele diepgang van een Roblox-ingenieur.
Leren van de beste technische ervaring van Roblox
Het engineeringcorpus van Roblox omvat bijna 20 jaar aan commits, ontwerpdocumenten en productietelemetrie: een unieke, rijke dataset die laat zien hoe onze systemen zich hebben ontwikkeld en hoe onze engineers moeilijke problemen hebben opgelost.
Het code-intelligentieplatform heeft als doel die data om te zetten in een gestructureerde kennisgrafiek, een aanzienlijke technische uitdaging. In een enorme polyglotte omgeving is code niet zomaar tekstbestanden. Het is een complex web van build-doelen, C++-sjablooninstantiaties en dynamische Lua-afhankelijkheden. Het simpelweg parseren van de tekst is onvoldoende; het systeem moet de diepe semantische relaties begrijpen die verborgen liggen in de codebase zelf, specifiek voor onze unieke architectuur.
Een andere uitdaging is het traceren en de temporele afstemming. Om te kunnen redeneren over onderling verbonden systemen heen, moet een agentisch systeem statische coderepositories koppelen aan ruisrijke runtime-telemetrie en miljoenen productiesignalen terugkoppelen naar de exacte versie van de code die ze heeft gegenereerd, zelfs terwijl de codebase zich blijft ontwikkelen.

Om dit op te lossen, is onze strategie om versiebeheer, buildgrafieken en runtime-telemetrie te verenigen in een hybride symbolisch-vectorrepresentatie, waarbij syntaxis, semantiek en relaties behouden blijven. Hierdoor kan het code-intelligentieplatform code begrijpen zoals senior engineers dat doen: als onderling verbonden systemen die gevormd worden door ontwerpdoelstellingen, afwegingen en prestatiegegevens, en niet als geïsoleerde tekstbestanden.
Expert-signalen extraheren via exemplar alignment
Echte expertise schuilt in patronen, opmerkingen bij reviews, commitgeschiedenis en subtiele code-idiomen. Code-intelligentie brengt deze impliciete wijsheid aan het licht via een engine voor het afstemmen van voorbeelden, waarmee engineers 'gouden' voorbeelden van ideale implementaties of review-redeneringen kunnen samenstellen.
Voorheen besteedde een ervaren engineer misschien wel uren per week aan het beoordelen van PR's, waarbij hij herhaaldelijk het gebruik van een blokkerende FetchData-aanroep binnen hoogfrequente loops markeerde, een patroon dat semantisch correct lijkt maar ernstige vertraging veroorzaakt op Roblox-schaal. Als de expert niet aanwezig is of een fout over het hoofd ziet, wordt zijn kennis mogelijk niet toegepast en kan een anti-patroon in de productie terechtkomen en een storing veroorzaken voor onze community.
Met behulp van de alignment-engine kan die engineer zijn oordeel coderen in een voorbeeld in natuurlijke taal. Dit is een gestructureerde definitie die het codepatroon (het 'wat') combineert met de redenering (het 'waarom'). Nu detecteert het systeem automatisch de blokkerende aanroep, markeert deze, legt het latentierisico uit en linkt het direct naar de interne documentatie over best practices voor asynchrone verwerking:
Blokkering binnen een hoogfrequente lus leidt tot verhoogde latentie en uitputting van threads. Wanneer een `FetchData`-aanroep wordt gedaan in een asynchrone taak, waarschuw de auteur dan voor latentie en uitputting van threads. `FetchData` is OK zolang er al op de taak is gewacht. Geef een directe link naar best practices voor asynchrone verwerking op: internal_guidance/async. |
Hiermee wordt de door een engineer in jarenlange ervaring opgedane kennis effectief vastgelegd. Het systeem zet een eenmalige beoordelingsopmerking om in een permanente, geautomatiseerde veiligheidsbarrière.
“Wat de alignment-engine zo krachtig maakt, is niet alleen dat het de kwaliteit van de code verbetert, maar ook dat het mentorschap opschaalt. We coderen de expertise en intuïtie van onze meest ervaren experts in het platform zelf. Het is alsof je elke dag de hele dag samen programmeert met een senior Roblox-domeinexpert.” —Tom Knych, Senior Technical Director
Maar onze experts hebben ook hun handen vol, en hen vragen om al hun belangrijkste inzichten te onthouden en op te schrijven is op zijn best een tijdrovend en onvolledig proces. Dus, hoe helpen we hen om hun beste advies vast te leggen gedurende hun tijd bij Roblox?
Het is er al, vastgelegd in hun nauwgezette opmerkingen bij codereviews en vereeuwigd in elke PR die de productiefase haalt:

We leiden historische PR-opmerkingen door een pijplijn die de Roblox-ervaring opschoont en de meest waardevolle thema's eruit haalt. In eerste instantie zit ruis in de data, zoals niet-bruikbare opmerkingen zoals lof of correcties van typefouten, terwijl waardevolle feedback vaak in steno is geschreven die sterk afhankelijk is van de context. Een opmerking als "gebruik hier het nieuwe patroon" is bijvoorbeeld zinloos zonder kennis van het specifieke bestand en de verschillen. Het systeem moet deze specifieke interacties vertalen naar herbruikbare, generaliseerbare regels.
Om dit op te lossen, gebruiken we een meerfasig algoritme dat terugkerende thema's in duizenden PR's detecteert zonder menselijke tussenkomst. Het systeem integreert historische opmerkingen in de vectorruimte, gebruikt greedy clustering om clusters van gerelateerde feedback te vinden en past LLM-gestuurde verfijning toe om deze samen te voegen tot hoogwaardige patronen.
Het resultaat is een gerangschikte lijst van kandidaat-voorbeelden (of leerpunten), geprioriteerd op basis van hoe vaak ze voorkomen en hoe vaak ze door verschillende reviewers worden geciteerd, compleet met verwijzingen naar de oorspronkelijke opmerkingen. Onze domeinexperts beoordelen vervolgens de kandidaten, brengen indien nodig wijzigingen aan en beslissen welke naar de kennisbank worden gepromoveerd als essentiële best practices. Na de eerste previews van deze pijplijn waren de repository-leiders enthousiast om hun favoriete onderwerpen naar voren te zien komen als belangrijke richtlijnen en wilden ze hun repositories onmiddellijk aanmelden voor analyse.

De laatste stap is de afstemmingsagent, die zowel menselijke engineers als AI-codeeragenten ondersteunt door alle wijzigingen te toetsen aan de voorbeeldkennisbank. Deze flexibele beoordeling kan gedurende de hele levenscyclus van de softwareontwikkeling worden toegepast: tijdens het coderen, tijdens het samenvoegen en zelfs met een agent voor continue verbetering die de Roblox-codebase autonoom bijwerkt naarmate de kennisbank groeit.
Door dit contextuele leren te gebruiken om AI-gedrag te verankeren in de Roblox-normen, zagen we de slagingspercentages van één AI-codeeragent op zijn gouden evaluatiedataset stijgen van 84% naar 100%. We leren de Roblox-AI niet alleen hoe te coderen; we leren onze AI hoe Roblox-ingenieurs denken.
Leren van negatieve signalen
Hoewel het afstemmen op voorbeelden onze basisnorm voor de kwaliteit van de codebase aanzienlijk heeft verhoogd, is ons uiteindelijke doel om het punt te bereiken waarop de eerste versie van door AI voorgestelde code even betrouwbaar is als het werk van onze meest ervaren engineers. Daarom gebruiken we elke afgewezen AI-suggestie, mislukte refactor of regressie-veroorzakende samenvoeging als een waardevol signaal dat we terug kunnen koppelen naar het systeem. Dit creëert een pijplijn voor agents om zich continu te verbeteren en te leren van hun fouten.
Negatieve uitkomsten kunnen door domeinexperts worden gefilterd en gelabeld met gedetailleerde redeneringen, een gedachtegang en eventuele aanvullende context rond de mislukking. Deze gegevens worden vervolgens semantisch ingebed en geïndexeerd voor terugvinding. Wanneer ons code-intelligentieplatform nieuwe output voorstelt, voert het een semantische zoekopdracht uit in deze gegevens, waarbij eerdere fouten en feedback van reviewers worden opgeroepen om herhaling te voorkomen.
Deze gesloten feedbackloop zet elke codereview om in gestructureerde leergegevens, waardoor het toekomstige gedrag van de agent voortdurend wordt verfijnd door middel van adversarial en op kritiek gebaseerde training.
Een robuust evaluatiekader opbouwen
Vertrouwen wordt opgebouwd door betrouwbaar, voorspelbaar gedrag dat begint met metingen. We hebben een speciaal evaluatiesysteem ontworpen om de prestaties van onze agents in de loop van de tijd bij te houden.

Het raamwerk omvat:
- Benchmarks op taakniveau: precisie en recall voor duizenden technische activiteiten in Roblox, zoals refactoring, testen en het verhelpen van bugs.
- Simulatietests: synthetische PR's met deterministische uitkomsten voor reproduceerbare scores.
- Human-in-the-loop-panels: Vergelijking door experts van AI-output versus implementaties volgens de gouden standaard.
- Uitvoeringsraamwerk: bij het samenvoegen van agentverbeteringen worden relevante evaluaties parallel uitgevoerd als onderdeel van de pre-merge continuous integration (CI)-suite, waardoor engineers veel vertrouwen hebben in hun wijzigingen.
- Longitudinale statistieken: regressies na samenvoeging, terugdraaifrequentie en veranderingen in latentie worden bijgehouden over releases heen.
- Alomtegenwoordige observeerbaarheid: Automatische tracering en visualisatie van agentactiviteit om agenten te relateren aan de rest van Roblox en om soepel door te voeren in online en offline evaluatie.
Dit systeem produceert een agentkwaliteitsscore die prestatieverschuivingen in de loop van de tijd nauwkeurig bijhoudt, waardoor gestandaardiseerde vergelijkingen tussen agentrevisies en modelversies mogelijk worden. Sinds we exemplar alignment en een volledige evaluatiesuite hebben geïntroduceerd, is het acceptatiepercentage van PR-suggesties van één Roblox-code-intelligence-agent verbeterd van ongeveer 30% naar meer dan 60% op een set van 10.000 PR's, een vroege indicatie van betrouwbare, domeingerichte prestaties. Via hetzelfde proces heeft onze feature flag cleanup-agent zijn algehele nauwkeurigheid verhoogd van 46% naar meer dan 90%.
De weg vooruit: deskundig oordeel verweven in elke tool
We verbeteren de bruikbaarheid van onze gevestigde interne systemen door een laag van MCP en toolwrappers te bouwen en het code intelligence-platform te evolueren van gerichte taken naar een systeem dat de Roblox-codebase gezond houdt.
We voorzien een technische toekomst waarin kennis die van oudsher moeilijk schaalbaar is, zoals runtime-context en deskundig oordeel, wordt verweven in elke tool en workflow. Wanneer code-intelligentie, afstemming op voorbeelden en observeerbaarheid samenkomen, ontgrendelen we blijvende voordelen: betere kwaliteit, snellere levering en een gezondere, evoluerende codebase. Het langetermijndoel is om elke engineer de kracht van institutioneel geheugen te geven, elk team het vertrouwen om snel te leveren, en elke engineer de vrijheid om zich te richten op innovatie, niet op onderhoud.


