Werk samen met GitHub Copilot modernisatie

In dit artikel wordt beschreven hoe u in contact kunt treden met de GitHub Copilot moderniseringsagent, het uw voorkeuren leert, fouten corrigeert, het werk bekijkt en upgrades beheert over meerdere sessies heen.

GitHub Copilot modernisering is een interactieve samenwerker die vragen stelt, strategieën voorstelt, zich aanpast aan uw feedback en leert van uw voorkeuren in de loop van de tijd. Geef de agentcontext om de beste resultaten te krijgen. Hoe meer het weet over uw doelen, beperkingen en voorkeuren, hoe beter het presteert.

❌ Vague — the agent has to guess
"Upgrade my project"

✅ Specific — the agent knows exactly what you need
"Upgrade the WebAPI project to .NET 10. We need to keep backward
compatibility with our existing REST clients, and we can't change the
public API surface."

Aanbeveling

U hoeft niet alle context vooraf te geven. De agent stelt vervolgvragen wanneer deze meer informatie nodig heeft.

Een gesprek starten

  1. Open Copilot Chat in VS Code, Visual Studio of Copilot CLI.
  2. Selecteer de GitHub Copilot moderniseringsagent voor .NET in de agentkiezer of typ de juiste agentvermelding voor uw omgeving: @modernize-dotnet in VS Code en Copilot CLI of @Modernize in Visual Studio.
  3. Beschrijf wat u in natuurlijke taal wilt bereiken.

Wat u moet zeggen

Natuurlijke taal werkt. Probeer deze voorbeelden:

Wat u wilt Wat u moet zeggen
Een volledige oplossing upgraden "Upgrade mijn oplossing naar .NET 10"
Een specifieke technologie upgraden "Help me met het upgraden van EF6 naar EF Core"
Bekijk wat er beschikbaar is "Welke scenario's zijn beschikbaar?"
Eén project eerst upgraden 'Upgrade eerst het API-project en vervolgens de gedeelde bibliotheek'
Inzicht in de huidige status Wat is de huidige status van mijn upgrade?

Wat gebeurt er vervolgens?

Wanneer u een gesprek start, controleert de agent op bestaand upgradewerk in uw werkruimte:

  • Als er geen bestaand werk is, begint de agent nieuw, meestal beginnend met een evaluatie van uw oplossing.
  • Als er al werk in uitvoering is, gaat de agent verder waar u gebleven was en toont de huidige status, zoals '3 van de 8 taken voltooid.'

Een stroommodus kiezen

De agent ondersteunt twee instelmodi die bepalen hoeveel de agent pauzeert voor uw invoer.

Automatische modus

In de automatische modus werkt de agent door de fasen (evaluatie, planning, uitvoering) zonder dat de goedkeuring aan elke grens wordt onderbroken. De agent stopt nog steeds bij echte obstakels of wanneer er een beslissing nodig is die alleen u kunt nemen.

Het meest geschikt voor ervaren gebruikers, eenvoudige upgrades en kleine oplossingen.

Begeleide modus

In de begeleide modus onderbreekt de agent bij elke fasegrens voor uw beoordeling:

  • Na evaluatie, voordat u het plan maakt.
  • Na de planning, voordat u taken uitvoert.
  • Voordat complexe taken worden uitgesplitst.
  • Op belangrijke beslissingspunten waar meerdere geldige benaderingen bestaan.

Het beste voor gebruikers voor het eerst, complexe oplossingen en wanneer u het proces wilt leren.

Schakel tussen modi tijdens een sessie

Schakelen tussen modi op elk gewenst moment:

Overschakelen naar Wat u moet zeggen
Begeleide modus "Onderbreken" of "Overschakelen naar begeleide modus"
Automatische modus "Doorgaan" of "Ga door"

Aanbeveling

Begin met de begeleide modus voor uw eerste upgrade. De begeleide modus is de beste manier om te leren hoe de agent denkt en welke beslissingen deze neemt. Schakel over naar de automatische modus zodra u vertrouwd bent.

De agent trainen

De agent leert van u. De agent slaat uw correcties, voorkeuren en instructies op in de map voor de upgrade-conditiestatus scenario-instructions.md. Deze voorkeuren blijven behouden over meerdere sessies.

Vergissingen corrigeren

Wanneer de agent een beslissing neemt waarmee u het niet eens bent, laat u de agent het volgende weten:

You: "Actually, don't use Newtonsoft.Json — we're standardizing on System.Text.Json."
Agent: "Got it. I'll use System.Text.Json for all serialization going forward.
        I've saved this as a preference."

De agent werkt scenario-instructions.md bij en zal niet opnieuw dezelfde keuze maken, zelfs niet in een toekomstige sessie.

Voorkeuren instellen

Laat de agent proactief weten hoe u wilt dat dingen gedaan worden:

You: "Always use bottom-up strategy for this solution — upgrade leaf projects first."
Agent: "Noted. I'll use a bottom-up upgrade strategy, starting with projects that
        have no internal dependencies and working up to the top-level projects."

Taakspecifieke instructies geven

Soms is een voorkeur alleen van toepassing op een specifieke taak:

You: "For this task, skip the test validation — the tests are broken for a known
      reason and we'll fix them separately."
Agent: "Understood. I'll skip test validation for this task only."

Wat de agent opslaat

Het scenario-instructions.md bestand is ingedeeld in duidelijke secties:

Afdeling Wat het bevat Voorbeeld
Gebruikersvoorkeuren (technisch) Pakketkeuzes, frameworkbeslissingen, coderingspatronen "System.Text.Json gebruiken, niet Newtonsoft"
Gebruikersvoorkeuren (uitvoeringsstijl) Hoe de agent werkt "Altijd bottom-up strategie gebruiken"
Logboek voor belangrijke beslissingen Belangrijke beslissingen en hun logica "Kies EF Core over Dapper omdat..."
Aangepaste instructies per taak Taakspecifieke overschrijvingen "Tests voor taak 3.1 overslaan"

Aanbeveling

Bewerk scenario-instructions.md ook rechtstreeks. Het is een Markdown-bestand in .github/upgrades/{scenarioId}/. De agent leest het bestand aan het begin van elke interactie.

Correcties tijdens de sessie aanbrengen

De agent verwerkt onderbrekingen zonder problemen en verliest niet de locatie waar deze zich bevindt of wat het aan het doen was.

Onderbreken en beoordelen

You: "Wait, stop — let me review that change first."
Agent: "Here's what I was about to do: [describes planned changes].
        Would you like me to proceed, or adjust the approach?"

Doorverwijzen

You: "Actually, let's do Project B before Project A — it has fewer dependencies."
Agent: "Good call. I'll reorder the tasks and start with Project B."

Ongedaan

You: "That last change broke the build. Can we revert it?"
Agent: "I'll revert the last commit (abc1234: 'Migrate auth middleware').
        Reverting now."

Zet commits ook zelf terug met behulp van standaard Git-opdrachten. De agent schrijft duidelijke, beschrijvende doorvoerberichten, zodat u precies weet wat elke doorvoering is gewijzigd.

Vragen stellen tijdens de voortgang

Als u vragen stelt, wordt de werkstroom niet ontspoord:

You: "Why did you choose to migrate the data layer before the API controllers?"
Agent: "The API controllers depend on the data layer interfaces. By migrating
        the data layer first, we avoid temporary compilation errors in the
        controllers and can validate each layer independently."

Het werk van de agent controleren

De agent biedt meerdere manieren om zijn werk te controleren.

Bronbeheer

De agent stelt voor om aan een afzonderlijke tak te werken en wijzigingen door te voeren tijdens het werken. Controleer de wijzigingen van de agent met standaard Git-opdrachten:

git log --oneline -10
git diff main..<agent-branch>

Werkstroombestanden

De agent onderhoudt verschillende bestanden in .github/upgrades/{scenarioId}/ die u volledige zichtbaarheid geven:

Bestand Wat het laat zien
tasks.md Overzicht van visuele voortgang met alle taken, statusindicatoren (✅ gereed, 🔄 in uitvoering, ⬜ in behandeling) en een voortgangsbalk
execution-log.md Volledige chronologische audittrail van elke actie die de agent heeft ondernomen, wanneer en wat er is gebeurd
assessment.md De eerste analyse van uw oplossing, inclusief afhankelijkheden, wijzigingen die fouten veroorzaken en de complexiteit van de upgrade
scenario-instructions.md Uw voorkeuren en de geleerde beslissingen van de agent
tasks/{taskId}/progress-details.md Details per taak: er zijn buildfouten opgetreden, hoe deze zijn opgelost, testresultaten en beslissingen genomen

Onderbroken werk hervatten

Sluit de chat of sluit uw IDE af. De agent verwerkt deze situatie naadloos.

De agent slaat alle toestanden op in .github/upgrades/ in uw repository. Wanneer u een nieuw gesprek start, controleert de agent de huidige status en weet onmiddellijk het volgende:

  • Welk scenario is actief.
  • Welke taken zijn voltooid, in uitvoering of in behandeling?
  • Welke artefacten bestaan (evaluatie, plan, taakbestanden).
  • Of taken verlopen zijn (vastgelopen in 🔄 de status van een vorige sessie).

Verouderde taakdetectie

Als een taak wordt uitgevoerd vanaf een vorige sessie, herkent de agent dat de taak verouderd is en biedt hij opties om door te gaan, opnieuw te starten of over te slaan.

Aanbeveling

Omdat de toestand in .github/upgrades/ binnen uw repository zit, reist deze mee met uw code. Push je branch naar een remote, haal het op een andere computer binnen en de agent gaat verder waar je was gebleven.

Werken over meerdere sessies

Grote upgrades, zoals een oplossing met 20 projecten, een complexe frameworkupgrade of een modernisering met meerdere stappen, omvatten vaak meerdere sessies gedurende dagen of weken. De agent werkt op natuurlijke wijze met meerdere sessies:

  • Permanente status: Alles is binnen .github/upgrades/. Er is geen in-memory status om te verliezen.
  • Sessie-onafhankelijkheid: Elke chatsessie is onafhankelijk. De agent hertovert de context telkens opnieuw vanuit de statusbestanden.
  • Cross-IDE support: Start in VS Code, ga verder in Visual Studio of Copilot CLI. De statusmap is het gedeelde contract.

Tips voor werk met meerdere sessies

  • Voer de statusmap door. Push .github/upgrades/ naar uw vertakking om een back-up van de map te maken en deze zichtbaar te maken voor uw team.
  • Controleer tussen sessies. Lees tasks.md en execution-log.md om uw geheugen op te frissen over wat er in de laatste sessie is gebeurd.
  • Werk voorkeuren bij terwijl u leert. Als u iets ontdekt bij het testen dat de benadering van de agent moet wijzigen, geeft u de agent aan het begin van de volgende sessie door.

Vragen om hulp

Weet u niet zeker wat de agent kan doen of waar de dingen staan? Stel:

Wat u wilt weten Wat u moet zeggen
Beschikbare upgradescenario's Wat kunt u doen? of 'Welke scenario's zijn beschikbaar?'
Huidige voortgang Wat is de huidige status? of "Toon de voortgang"
Het upgradeplan "Leg het plan uit" of "Begeleid me door de taken"
Evaluatiedetails 'Toon de evaluatie' of 'Wat heeft de evaluatie gevonden?'
Beschikbare vaardigheden "Welke vaardigheden heb je?" of 'Uw vaardigheden vermelden'
Een specifieke beslissing "Waarom hebt u X boven Y gekozen?"
Risico's en zorgen "Wat zijn de risico's met deze upgrade?"

Effectief communiceren

De kwaliteit van uw interactie heeft rechtstreeks invloed op de kwaliteit van de resultaten.

Wees specifiek over het bereik

'Werk alleen de projecten Data.Access en Data.Models bij naar .NET 10' geeft de agent een duidelijke focus. 'Alles upgraden' werkt, maar de agent neemt zelf meer beslissingen over ordenen en prioriteiten.

Context delen

De agent kent uw zakelijke beperkingen niet, tenzij u ze deelt:

  • 'We upgraden omdat Azure App Service in november stopt met de ondersteuning van .NET 8.'
  • "Dit is een productieservice met veel verkeer: nul gedragswijzigingen in de API-antwoorden."

Uitdrukken van beperkingen

Vertel de agent wat het niet zou moeten doen, niet alleen wat het zou moeten doen:

  • 'Wijzig het openbare API-oppervlak niet, we hebben externe consumenten.'
  • 'We kunnen Newtonsoft.Json nog niet upgraden: het team dat eigenaar is van gedeelde contracten is niet geüpgraded.'
  • "Raak de verouderde rapportagemodule niet aan, die afzonderlijk wordt herschreven."

Feedback geven

Positieve feedback helpt net zo veel als correcties en bevestigt dat de agent op het juiste spoor is:

  • "Deze upgrade ziet er geweldig uit: doe dezelfde benadering voor het andere opslagplaatsproject."
  • "Dat werkt, maar we geven de voorkeur aan constructorinjectie over eigenschapsinjectie in deze codebasis."

Snelzoekgids

Situation Wat u moet zeggen
Een nieuwe upgrade starten "Upgrade mijn oplossing naar .NET 10"
Vorige werk hervatten 'Doorgaan' of 'Wat is de status?'
Overschakelen naar de begeleide modus "Onderbreken" of "Overschakelen naar begeleide modus"
Overschakelen naar automatische modus "Ga door" of "Doorgaan zonder te vragen"
Een beslissing corrigeren "Gebruik eigenlijk X in plaats van Y"
Een voorkeur instellen "Altijd X doen voor deze oplossing"
Wijzigingen beoordelen 'Toon mij wat u hebt gewijzigd' of controleer het Git-logboek
Een wijziging ongedaan maken "De laatste wijziging terugzetten"
Vraag waarom "Waarom hebt u die benadering gekozen?"
Een taak overslaan "Deze taak voorlopig overslaan"
Hulp krijgen Wat kunt u doen?